/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|*                                                                            *|
|* DAG Instruction Selector for the BPF 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. Coverage indexes are emitted as 4 bytes,
  // COVERAGE_IDX_VAL handles this.
  #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
  #define COVERAGE_IDX_VAL(X) X & 255, (unsigned(X) >> 8) & 255, (unsigned(X) >> 16) & 255, (unsigned(X) >> 24) & 255
  static const uint8_t MatcherTable[] = {
 OPC_SwitchOpcode , 108|128,2, TARGET_VAL(ISD::STORE),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_Scope, 29|128,1,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_SwitchType , 81, MVT::i64,
    OPC_Scope, 21,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_RecordChild2,
     OPC_CheckChild2TypeI64,
     OPC_CheckPredicate, 11,
     OPC_CheckPredicate, 13,
     OPC_CheckPatternPredicate6,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STD_imm), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 5, 3, 4,
    56,
     OPC_CheckPredicate, 34,
     OPC_MoveParent,
     OPC_RecordChild2,
     OPC_CheckChild2TypeI64,
     OPC_CheckPredicate, 11,
     OPC_CheckPredicate, 12,
     OPC_Scope, 14,
      OPC_CheckPredicate1,
      OPC_CheckPatternPredicate6,
      OPC_CheckComplexPat0, /*#*/2,
      OPC_EmitMergeInputChains1_0,
      OPC_EmitConvertToTarget1,
      OPC_MorphNodeTo0, TARGET_VAL(BPF::STW_imm), 0|OPFL_Chain|OPFL_MemRefs,
                      3, 5, 3, 4,
     14,
      OPC_CheckPredicate2,
      OPC_CheckPatternPredicate6,
      OPC_CheckComplexPat0, /*#*/2,
      OPC_EmitMergeInputChains1_0,
      OPC_EmitConvertToTarget1,
      OPC_MorphNodeTo0, TARGET_VAL(BPF::STH_imm), 0|OPFL_Chain|OPFL_MemRefs,
                      3, 5, 3, 4,
     14,
      OPC_CheckPredicate3,
      OPC_CheckPatternPredicate6,
      OPC_CheckComplexPat0, /*#*/2,
      OPC_EmitMergeInputChains1_0,
      OPC_EmitConvertToTarget1,
      OPC_MorphNodeTo0, TARGET_VAL(BPF::STB_imm), 0|OPFL_Chain|OPFL_MemRefs,
                      3, 5, 3, 4,
     0,
    0,
   66, MVT::i32,
    OPC_MoveParent,
    OPC_RecordChild2,
    OPC_CheckChild2TypeI64,
    OPC_CheckPredicate, 11,
    OPC_Scope, 17,
     OPC_CheckPredicate, 13,
     OPC_CheckPatternPredicate7,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitNodeXForm, 0, 1,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STW_imm), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 5, 3, 4,
    40,
     OPC_CheckPredicate, 12,
     OPC_Scope, 17,
      OPC_CheckPredicate2,
      OPC_CheckPatternPredicate7,
      OPC_CheckComplexPat0, /*#*/2,
      OPC_EmitMergeInputChains1_0,
      OPC_EmitConvertToTarget1,
      OPC_EmitNodeXForm, 0, 5,
      OPC_MorphNodeTo0, TARGET_VAL(BPF::STH_imm), 0|OPFL_Chain|OPFL_MemRefs,
                      3, 6, 3, 4,
     17,
      OPC_CheckPredicate3,
      OPC_CheckPatternPredicate7,
      OPC_CheckComplexPat0, /*#*/2,
      OPC_EmitMergeInputChains1_0,
      OPC_EmitConvertToTarget1,
      OPC_EmitNodeXForm, 0, 5,
      OPC_MorphNodeTo0, TARGET_VAL(BPF::STB_imm), 0|OPFL_Chain|OPFL_MemRefs,
                      3, 6, 3, 4,
     0,
    0,
   0,
  14|128,1,
   OPC_CheckChild1TypeI64,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_CheckPredicate, 11,
   OPC_Scope, 46,
    OPC_CheckPredicate, 12,
    OPC_Scope, 13,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STW), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 1, 3, 4,
    13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STH), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 1, 3, 4,
    13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STB), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 1, 3, 4,
    0,
   13,
    OPC_CheckPredicate, 13,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   73,
    OPC_CheckPredicate, 12,
    OPC_Scope, 22,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                     MVT::i32, 2, 1, 5,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 6, 3, 4,
    22,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                     MVT::i32, 2, 1, 5,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 6, 3, 4,
    22,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_EmitNode1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                     MVT::i32, 2, 1, 5,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 6, 3, 4,
    0,
   0,
  55,
   OPC_CheckChild1TypeI32,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_CheckPredicate, 11,
   OPC_Scope, 14,
    OPC_CheckPredicate, 13,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   32,
    OPC_CheckPredicate, 12,
    OPC_Scope, 13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 1, 3, 4,
    13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/2,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
                     3, 1, 3, 4,
    0,
   0,
  0,
 14|128,1, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),
  OPC_RecordNode,
  OPC_Scope, 24,
   OPC_CheckChild1Integer, 102|128,32,
   OPC_RecordChild2,
   OPC_MoveChild2,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_MoveSibling3,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_RecordNode,
   OPC_MoveParent,
   OPC_EmitMergeInputChains1_0,
   OPC_EmitConvertToTarget1,
   OPC_EmitConvertToTarget2,
   OPC_MorphNodeTo1Chain, TARGET_VAL(BPF::LD_pseudo),
                   MVT::i64, 2, 3, 4,
  37,
   OPC_CheckChild1Integer, 95|128,32,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_RecordChild3,
   OPC_Scope, 17,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget2,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_B), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 3,
   10,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_B), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 2,
   0,
  37,
   OPC_CheckChild1Integer, 96|128,32,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_RecordChild3,
   OPC_Scope, 17,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget2,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_H), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 3,
   10,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_H), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 2,
   0,
  37,
   OPC_CheckChild1Integer, 97|128,32,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_RecordChild3,
   OPC_Scope, 17,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget2,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_ABS_W), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 3,
   10,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitCopyToReg1, BPF::R6,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LD_IND_W), 0|OPFL_Chain|OPFL_GlueInput,
                    MVT::i64, 1, 2,
   0,
  0,
 13|128,1, TARGET_VAL(ISD::ATOMIC_STORE),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_Scope, 36,
   OPC_CheckChild1TypeI64,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_CheckPredicate, 9,
   OPC_Scope, 14,
    OPC_CheckPredicate, 14,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STD), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   13,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STDREL), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   0,
  98,
   OPC_CheckChild1TypeI32,
   OPC_RecordChild2,
   OPC_CheckChild2TypeI64,
   OPC_Scope, 15,
    OPC_CheckPredicate1,
    OPC_CheckPredicate, 14,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STW32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   15,
    OPC_CheckPredicate2,
    OPC_CheckPredicate, 14,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STH32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   15,
    OPC_CheckPredicate3,
    OPC_CheckPredicate, 14,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STB32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   14,
    OPC_CheckPredicate1,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STWREL32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   14,
    OPC_CheckPredicate2,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STHREL32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   14,
    OPC_CheckPredicate3,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/2,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::STBREL32), 0|OPFL_Chain|OPFL_MemRefs,
                    3, 1, 3, 4,
   0,
  0,
 87|128,3, TARGET_VAL(ISD::LOAD),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_CheckPredicate, 35,
  OPC_SwitchType , 67|128,2, MVT::i64,
   OPC_Scope, 46,
    OPC_CheckPredicate, 27,
    OPC_Scope, 13,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    0,
   46,
    OPC_CheckPredicate, 31,
    OPC_Scope, 13,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate5,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDWSX), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate5,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHSX), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate5,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBSX), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    0,
   13,
    OPC_CheckPredicate, 32,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 2, 2, 3,
   46,
    OPC_CheckPredicate, 28,
    OPC_Scope, 13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    0,
   82,
    OPC_CheckPredicate, 27,
    OPC_Scope, 25,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    25,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    25,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    0,
   82,
    OPC_CheckPredicate, 28,
    OPC_Scope, 25,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    25,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    25,
     OPC_CheckPredicate1,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitIntegerI64, 0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::SUBREG_TO_REG),
                     MVT::i64, 3, 4, 5, 6,
    0,
   0,
  6|128,1, MVT::i32,
   OPC_Scope, 14,
    OPC_CheckPredicate, 32,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2, 2, 3,
   32,
    OPC_CheckPredicate, 27,
    OPC_Scope, 13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
    13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
    0,
   32,
    OPC_CheckPredicate, 28,
    OPC_Scope, 13,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
    13,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i32, 2, 2, 3,
    0,
   50,
    OPC_CheckPredicate, 31,
    OPC_Scope, 22,
     OPC_CheckPredicate3,
     OPC_CheckPatternPredicate5,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDBSX), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                     MVT::i32, 2, 4, 5,
    22,
     OPC_CheckPredicate2,
     OPC_CheckPatternPredicate5,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitNode1, TARGET_VAL(BPF::LDHSX), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
     OPC_EmitIntegerI32, BPF::sub_32,
     OPC_MorphNodeTo1Chain, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                     MVT::i32, 2, 4, 5,
    0,
   0,
  0,
 101|128,1, TARGET_VAL(ISD::ATOMIC_LOAD),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_Scope, 56,
   OPC_CheckPredicate, 33,
   OPC_SwitchType , 33, MVT::i64,
    OPC_CheckPredicate, 9,
    OPC_Scope, 14,
     OPC_CheckPredicate, 10,
     OPC_CheckPatternPredicate1,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    13,
     OPC_CheckPredicate4,
     OPC_CheckPatternPredicate1,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::LDDACQ), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 2, 2, 3,
    0,
   15, MVT::i32,
    OPC_CheckPredicate1,
    OPC_CheckPredicate, 10,
    OPC_CheckPatternPredicate1,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::LDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 2, 2, 3,
   0,
  18,
   OPC_CheckPredicate, 15,
   OPC_CheckPredicate2,
   OPC_CheckPredicate, 10,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  18,
   OPC_CheckPredicate, 16,
   OPC_CheckPredicate2,
   OPC_CheckPredicate, 10,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDH32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  18,
   OPC_CheckPredicate, 15,
   OPC_CheckPredicate3,
   OPC_CheckPredicate, 10,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  18,
   OPC_CheckPredicate, 16,
   OPC_CheckPredicate3,
   OPC_CheckPredicate, 10,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDB32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  17,
   OPC_CheckPredicate, 33,
   OPC_CheckPredicate1,
   OPC_CheckPredicate4,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDWACQ32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  17,
   OPC_CheckPredicate, 15,
   OPC_CheckPredicate2,
   OPC_CheckPredicate4,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHACQ32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  17,
   OPC_CheckPredicate, 16,
   OPC_CheckPredicate2,
   OPC_CheckPredicate4,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDHACQ32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  17,
   OPC_CheckPredicate, 15,
   OPC_CheckPredicate3,
   OPC_CheckPredicate4,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBACQ32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  17,
   OPC_CheckPredicate, 16,
   OPC_CheckPredicate3,
   OPC_CheckPredicate4,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate1,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::LDBACQ32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 2, 2, 3,
  0,
 74|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 112, MVT::i64,
   OPC_Scope, 14,
    OPC_CheckPredicate1,
    OPC_CheckPatternPredicate2,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   94,
    OPC_CheckPredicate, 9,
    OPC_Scope, 13,
     OPC_CheckPatternPredicate2,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate6,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate4,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate5,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate7,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    15,
     OPC_CheckPredicate, 8,
     OPC_CheckPatternPredicate0,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    0,
   0,
  79, MVT::i32,
   OPC_CheckPredicate1,
   OPC_Scope, 14,
    OPC_CheckPredicate6,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate4,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate7,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   15,
    OPC_CheckPredicate, 8,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   0,
  0,
 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_AND),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 79, MVT::i32,
   OPC_CheckPredicate1,
   OPC_Scope, 14,
    OPC_CheckPredicate6,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XANDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate4,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate7,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   15,
    OPC_CheckPredicate, 8,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   0,
  95, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_Scope, 33,
    OPC_CheckPredicate6,
    OPC_Scope, 14,
     OPC_CheckPredicate, 29,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XANDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate, 30,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    0,
   13,
    OPC_CheckPredicate4,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate5,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate7,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate, 8,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFANDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   0,
  0,
 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_OR),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 79, MVT::i32,
   OPC_CheckPredicate1,
   OPC_Scope, 14,
    OPC_CheckPredicate6,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate4,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate7,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   15,
    OPC_CheckPredicate, 8,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   0,
  95, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_Scope, 33,
    OPC_CheckPredicate6,
    OPC_Scope, 14,
     OPC_CheckPredicate, 29,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XORD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate, 30,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    0,
   13,
    OPC_CheckPredicate4,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate5,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate7,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate, 8,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   0,
  0,
 57|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 79, MVT::i32,
   OPC_CheckPredicate1,
   OPC_Scope, 14,
    OPC_CheckPredicate6,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XXORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate4,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate7,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   15,
    OPC_CheckPredicate, 8,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 2,
   0,
  95, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_Scope, 33,
    OPC_CheckPredicate6,
    OPC_Scope, 14,
     OPC_CheckPredicate, 29,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XXORD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    14,
     OPC_CheckPredicate, 30,
     OPC_CheckComplexPat0, /*#*/1,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
                     MVT::i64, 3, 3, 4, 2,
    0,
   13,
    OPC_CheckPredicate4,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate5,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   13,
    OPC_CheckPredicate7,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   14,
    OPC_CheckPredicate, 8,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFXORD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 2,
   0,
  0,
 39, TARGET_VAL(ISD::ATOMIC_SWAP),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 14, MVT::i32,
   OPC_CheckPredicate1,
   OPC_CheckPatternPredicate0,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::XCHGW32), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i32, 3, 3, 4, 2,
  14, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::XCHGD), 0|OPFL_Chain|OPFL_MemRefs,
                   MVT::i64, 3, 3, 4, 2,
  0,
 44, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_RecordChild3,
  OPC_SwitchType , 16, MVT::i32,
   OPC_CheckPredicate1,
   OPC_CheckPatternPredicate0,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_EmitCopyToReg2, BPF::W0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::CMPXCHGW32), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                   MVT::i32, 3, 4, 5, 3,
  16, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_CheckComplexPat0, /*#*/1,
   OPC_EmitMergeInputChains1_0,
   OPC_EmitCopyToReg2, BPF::R0,
   OPC_MorphNodeTo1, TARGET_VAL(BPF::CMPXCHGD), 0|OPFL_Chain|OPFL_GlueInput|OPFL_MemRefs,
                   MVT::i64, 3, 4, 5, 3,
  0,
 97|128,1, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),
  OPC_RecordMemRef,
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_RecordChild2,
  OPC_SwitchType , 109, MVT::i32,
   OPC_CheckPredicate1,
   OPC_Scope, 20,
    OPC_CheckPredicate6,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 5,
   20,
    OPC_CheckPredicate4,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 5,
   20,
    OPC_CheckPredicate5,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 5,
   20,
    OPC_CheckPredicate7,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 5,
   21,
    OPC_CheckPredicate, 8,
    OPC_CheckPatternPredicate0,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDW32), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i32, 3, 3, 4, 5,
   0,
  105, MVT::i64,
   OPC_CheckPredicate, 9,
   OPC_Scope, 19,
    OPC_CheckPredicate6,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XADDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 5,
   19,
    OPC_CheckPredicate4,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 5,
   19,
    OPC_CheckPredicate5,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 5,
   19,
    OPC_CheckPredicate7,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 5,
   20,
    OPC_CheckPredicate, 8,
    OPC_CheckComplexPat0, /*#*/1,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitNode1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 2,
    OPC_MorphNodeTo1, TARGET_VAL(BPF::XFADDD), 0|OPFL_Chain|OPFL_MemRefs,
                    MVT::i64, 3, 3, 4, 5,
   0,
  0,
 82|128,6, TARGET_VAL(BPFISD::BR_CC),
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_Scope, 37|128,3,
   OPC_CheckChild1TypeI64,
   OPC_RecordChild2,
   OPC_Scope, 64|128,1,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI64,
    OPC_Scope, 17,
     OPC_CheckPredicate, 17,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JEQ_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 18,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGT_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 19,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGE_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 20,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JNE_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 21,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGT_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 22,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGE_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 23,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULT_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 24,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULE_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 25,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLT_ri),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 26,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLE_ri),
                     3, 1, 4, 3,
    0,
   49|128,1,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI64,
    OPC_Scope, 16,
     OPC_CheckPredicate, 17,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JEQ_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 18,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGT_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 19,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGE_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 20,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JNE_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 21,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGT_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 22,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGE_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 23,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULT_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 24,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULE_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 25,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLT_rr),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 26,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLE_rr),
                     3, 1, 2, 3,
    0,
   24,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling3,
    OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
    OPC_MoveSibling4,
    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    OPC_RecordNode,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget2,
    OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSET_ri),
                    3, 1, 4, 3,
   18,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
    OPC_MoveSibling4,
    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    OPC_RecordNode,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSET_rr),
                    3, 1, 2, 3,
   0,
  37|128,3,
   OPC_CheckChild1TypeI32,
   OPC_RecordChild2,
   OPC_Scope, 64|128,1,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI32,
    OPC_Scope, 17,
     OPC_CheckPredicate, 17,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JEQ_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 18,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGT_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 19,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGE_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 20,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JNE_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 21,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGT_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 22,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGE_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 23,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULT_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 24,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULE_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 25,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLT_ri_32),
                     3, 1, 4, 3,
    17,
     OPC_CheckPredicate, 26,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLE_ri_32),
                     3, 1, 4, 3,
    0,
   49|128,1,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI32,
    OPC_Scope, 16,
     OPC_CheckPredicate, 17,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JEQ_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 18,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGT_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 19,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JUGE_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 20,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JNE_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 21,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGT_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 22,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSGE_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 23,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULT_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 24,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JULE_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 25,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLT_rr_32),
                     3, 1, 2, 3,
    16,
     OPC_CheckPredicate, 26,
     OPC_MoveSibling4,
     OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
     OPC_RecordNode,
     OPC_MoveParent,
     OPC_EmitMergeInputChains1_0,
     OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSLE_rr_32),
                     3, 1, 2, 3,
    0,
   24,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling3,
    OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
    OPC_MoveSibling4,
    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    OPC_RecordNode,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget2,
    OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSET_ri_32),
                    3, 1, 4, 3,
   18,
    OPC_MoveChild3,
    OPC_CheckOpcode, TARGET_VAL(ISD::VALUETYPE),
    OPC_MoveSibling4,
    OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
    OPC_RecordNode,
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JSET_rr_32),
                    3, 1, 2, 3,
   0,
  0,
 8|128,1, TARGET_VAL(ISD::SRL),
  OPC_Scope, 75,
   OPC_MoveChild0,
   OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP),
   OPC_RecordChild0,
   OPC_MoveParent,
   OPC_CheckTypeI64,
   OPC_Scope, 32,
    OPC_CheckChild1Integer, 48,
    OPC_CheckChild1TypeI64,
    OPC_Scope, 8,
     OPC_CheckPatternPredicate, 8,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP16),
                     MVT::i64, 1, 0,
    8,
     OPC_CheckPatternPredicate, 9,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE16),
                     MVT::i64, 1, 0,
    8,
     OPC_CheckPatternPredicate, 10,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE16),
                     MVT::i64, 1, 0,
    0,
   32,
    OPC_CheckChild1Integer, 32,
    OPC_CheckChild1TypeI64,
    OPC_Scope, 8,
     OPC_CheckPatternPredicate, 8,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP32),
                     MVT::i64, 1, 0,
    8,
     OPC_CheckPatternPredicate, 9,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE32),
                     MVT::i64, 1, 0,
    8,
     OPC_CheckPatternPredicate, 10,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE32),
                     MVT::i64, 1, 0,
    0,
   0,
  57,
   OPC_RecordChild0,
   OPC_RecordChild1,
   OPC_Scope, 32,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_SwitchType , 11, MVT::i64,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI64,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri),
                     MVT::i64, 2, 0, 2,
    11, MVT::i32,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI32,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri_32),
                     MVT::i32, 2, 0, 2,
    0,
   9,
    OPC_CheckChild1TypeI64,
    OPC_CheckTypeI64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_rr),
                    MVT::i64, 2, 0, 1,
   9,
    OPC_CheckChild1TypeI32,
    OPC_CheckTypeI32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_rr_32),
                    MVT::i32, 2, 0, 1,
   0,
  0,
 51|128,1, TARGET_VAL(BPFISD::SELECT_CC),
  OPC_RecordChild0,
  OPC_Scope, 87,
   OPC_CheckChild0TypeI64,
   OPC_RecordChild1,
   OPC_Scope, 44,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_RecordNode,
    OPC_CheckTypeI64,
    OPC_MoveParent,
    OPC_RecordChild3,
    OPC_RecordChild4,
    OPC_SwitchType , 12, MVT::i64,
     OPC_EmitConvertToTarget1,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri),
                     MVT::i64, 5, 0, 5, 6, 3, 4,
    12, MVT::i32,
     OPC_EmitConvertToTarget1,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_64_32),
                     MVT::i32, 5, 0, 5, 6, 3, 4,
    0,
   37,
    OPC_RecordChild2,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI64,
    OPC_MoveParent,
    OPC_RecordChild3,
    OPC_RecordChild4,
    OPC_SwitchType , 11, MVT::i64,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select),
                     MVT::i64, 5, 0, 1, 5, 3, 4,
    11, MVT::i32,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_64_32),
                     MVT::i32, 5, 0, 1, 5, 3, 4,
    0,
   0,
  87,
   OPC_CheckChild0TypeI32,
   OPC_RecordChild1,
   OPC_Scope, 44,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckPredicate0,
    OPC_MoveSibling2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_RecordNode,
    OPC_CheckTypeI32,
    OPC_MoveParent,
    OPC_RecordChild3,
    OPC_RecordChild4,
    OPC_SwitchType , 12, MVT::i32,
     OPC_EmitConvertToTarget1,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_32),
                     MVT::i32, 5, 0, 5, 6, 3, 4,
    12, MVT::i64,
     OPC_EmitConvertToTarget1,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_Ri_32_64),
                     MVT::i64, 5, 0, 5, 6, 3, 4,
    0,
   37,
    OPC_RecordChild2,
    OPC_MoveChild2,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_CheckTypeI32,
    OPC_MoveParent,
    OPC_RecordChild3,
    OPC_RecordChild4,
    OPC_SwitchType , 11, MVT::i32,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_32),
                     MVT::i32, 5, 0, 1, 5, 3, 4,
    11, MVT::i64,
     OPC_EmitConvertToTarget2,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::Select_32_64),
                     MVT::i64, 5, 0, 1, 5, 3, 4,
    0,
   0,
  0,
 68, TARGET_VAL(ISD::ADD),
  OPC_Scope, 11,
   OPC_RecordNode,
   OPC_CheckTypeI64,
   OPC_CheckComplexPat1, /*#*/0,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::FI_ri),
                   MVT::i64, 2, 1, 2,
  53,
   OPC_RecordChild0,
   OPC_RecordChild1,
   OPC_Scope, 30,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_Scope, 11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI64,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_ri),
                     MVT::i64, 2, 0, 2,
    11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI32,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_ri_32),
                     MVT::i32, 2, 0, 2,
    0,
   8,
    OPC_CheckTypeI64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_rr),
                    MVT::i64, 2, 0, 1,
   8,
    OPC_CheckTypeI32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADD_rr_32),
                    MVT::i32, 2, 0, 1,
   0,
  0,
 68, TARGET_VAL(ISD::OR),
  OPC_Scope, 11,
   OPC_RecordNode,
   OPC_CheckTypeI64,
   OPC_CheckComplexPat1, /*#*/0,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::FI_ri),
                   MVT::i64, 2, 1, 2,
  53,
   OPC_RecordChild0,
   OPC_RecordChild1,
   OPC_Scope, 30,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_Scope, 11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI64,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_ri),
                     MVT::i64, 2, 0, 2,
    11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI32,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_ri_32),
                     MVT::i32, 2, 0, 2,
    0,
   8,
    OPC_CheckTypeI64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_rr),
                    MVT::i64, 2, 0, 1,
   8,
    OPC_CheckTypeI32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::OR_rr_32),
                    MVT::i32, 2, 0, 1,
   0,
  0,
 21, TARGET_VAL(ISD::CALLSEQ_START),
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_MoveChild1,
  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
  OPC_MoveSibling2,
  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
  OPC_RecordNode,
  OPC_MoveParent,
  OPC_EmitMergeInputChains1_0,
  OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
                  MVT::i64, 2, 1, 2,
 22, TARGET_VAL(ISD::CALLSEQ_END),
  OPC_RecordNode,
  OPC_CaptureGlueInput,
  OPC_RecordChild1,
  OPC_MoveChild1,
  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
  OPC_MoveSibling2,
  OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
  OPC_RecordNode,
  OPC_MoveParent,
  OPC_EmitMergeInputChains1_0,
  OPC_MorphNodeTo1, TARGET_VAL(BPF::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
                  MVT::i64, 2, 1, 2,
 25, TARGET_VAL(BPFISD::MEMCPY),
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_RecordChild2,
  OPC_RecordChild3,
  OPC_MoveChild3,
  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
  OPC_MoveSibling4,
  OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
  OPC_RecordNode,
  OPC_MoveParent,
  OPC_EmitMergeInputChains1_0,
  OPC_EmitConvertToTarget3,
  OPC_EmitConvertToTarget4,
  OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::MEMCPY),
                  4, 1, 2, 5, 6,
 78, TARGET_VAL(ISD::SUB),
  OPC_Scope, 21,
   OPC_CheckChild0Integer, 0,
   OPC_RecordChild1,
   OPC_SwitchType , 6, MVT::i64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::NEG_64),
                    MVT::i64, 1, 0,
   6, MVT::i32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::NEG_32),
                    MVT::i32, 1, 0,
   0,
  53,
   OPC_RecordChild0,
   OPC_RecordChild1,
   OPC_Scope, 30,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_Scope, 11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI64,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_ri),
                     MVT::i64, 2, 0, 2,
    11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI32,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_ri_32),
                     MVT::i32, 2, 0, 2,
    0,
   8,
    OPC_CheckTypeI64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_rr),
                    MVT::i64, 2, 0, 1,
   8,
    OPC_CheckTypeI32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SUB_rr_32),
                    MVT::i32, 2, 0, 1,
   0,
  0,
 83, TARGET_VAL(ISD::AND),
  OPC_Scope, 26,
   OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15,
   OPC_RecordChild0,
   OPC_CheckTypeI64,
   OPC_EmitIntegerI64, 32,
   OPC_EmitNode1None, TARGET_VAL(BPF::SLL_ri),
                   MVT::i64, 2, 0, 1,
   OPC_EmitIntegerI64, 32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRL_ri),
                   MVT::i64, 2, 2, 3,
  53,
   OPC_RecordChild0,
   OPC_RecordChild1,
   OPC_Scope, 30,
    OPC_MoveChild1,
    OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
    OPC_Scope, 11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI64,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_ri),
                     MVT::i64, 2, 0, 2,
    11,
     OPC_CheckPredicate0,
     OPC_MoveParent,
     OPC_CheckTypeI32,
     OPC_EmitConvertToTarget1,
     OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_ri_32),
                     MVT::i32, 2, 0, 2,
    0,
   8,
    OPC_CheckTypeI64,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_rr),
                    MVT::i64, 2, 0, 1,
   8,
    OPC_CheckTypeI32,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::AND_rr_32),
                    MVT::i32, 2, 0, 1,
   0,
  0,
 57, TARGET_VAL(ISD::SHL),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 32,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_SwitchType , 11, MVT::i64,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_ri),
                    MVT::i64, 2, 0, 2,
   11, MVT::i32,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  9,
   OPC_CheckChild1TypeI64,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_rr),
                   MVT::i64, 2, 0, 1,
  9,
   OPC_CheckChild1TypeI32,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SLL_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 53, TARGET_VAL(ISD::XOR),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 30,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_ri),
                    MVT::i64, 2, 0, 2,
   11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  8,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_rr),
                   MVT::i64, 2, 0, 1,
  8,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::XOR_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 57, TARGET_VAL(ISD::SRA),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 32,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_SwitchType , 11, MVT::i64,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri),
                    MVT::i64, 2, 0, 2,
   11, MVT::i32,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  9,
   OPC_CheckChild1TypeI64,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_rr),
                   MVT::i64, 2, 0, 1,
  9,
   OPC_CheckChild1TypeI32,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 53, TARGET_VAL(ISD::MUL),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 30,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_ri),
                    MVT::i64, 2, 0, 2,
   11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  8,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_rr),
                   MVT::i64, 2, 0, 1,
  8,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MUL_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 53, TARGET_VAL(ISD::UDIV),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 30,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_ri),
                    MVT::i64, 2, 0, 2,
   11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  8,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_rr),
                   MVT::i64, 2, 0, 1,
  8,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::DIV_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 53, TARGET_VAL(ISD::UREM),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 30,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_ri),
                    MVT::i64, 2, 0, 2,
   11,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  8,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_rr),
                   MVT::i64, 2, 0, 1,
  8,
   OPC_CheckTypeI32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOD_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 57, TARGET_VAL(ISD::SDIV),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 32,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 12,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_CheckPatternPredicate3,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_ri),
                    MVT::i64, 2, 0, 2,
   12,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_CheckPatternPredicate3,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  9,
   OPC_CheckTypeI64,
   OPC_CheckPatternPredicate3,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_rr),
                   MVT::i64, 2, 0, 1,
  9,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate3,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SDIV_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 57, TARGET_VAL(ISD::SREM),
  OPC_RecordChild0,
  OPC_RecordChild1,
  OPC_Scope, 32,
   OPC_MoveChild1,
   OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
   OPC_Scope, 12,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI64,
    OPC_CheckPatternPredicate3,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_ri),
                    MVT::i64, 2, 0, 2,
   12,
    OPC_CheckPredicate0,
    OPC_MoveParent,
    OPC_CheckTypeI32,
    OPC_CheckPatternPredicate3,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_ri_32),
                    MVT::i32, 2, 0, 2,
   0,
  9,
   OPC_CheckTypeI64,
   OPC_CheckPatternPredicate3,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_rr),
                   MVT::i64, 2, 0, 1,
  9,
   OPC_CheckTypeI32,
   OPC_CheckPatternPredicate3,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SMOD_rr_32),
                   MVT::i32, 2, 0, 1,
  0,
 26, TARGET_VAL(BPFISD::Wrapper),
  OPC_RecordChild0,
  OPC_MoveChild0,
  OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetConstantPool),
   OPC_MoveParent,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
                   MVT::i64, 1, 0,
  8, TARGET_VAL(ISD::TargetJumpTable),
   OPC_MoveParent,
   OPC_CheckTypeI64,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
                   MVT::i64, 1, 0,
  0,
 52, TARGET_VAL(BPFISD::CALL),
  OPC_RecordNode,
  OPC_CaptureGlueInput,
  OPC_RecordChild1,
  OPC_Scope, 37,
   OPC_MoveChild1,
   OPC_SwitchOpcode , 8, TARGET_VAL(ISD::TargetGlobalAddress),
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1, 1,
   8, TARGET_VAL(ISD::TargetExternalSymbol),
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1, 1,
   9, TARGET_VAL(ISD::Constant),
    OPC_MoveParent,
    OPC_EmitMergeInputChains1_0,
    OPC_EmitConvertToTarget1,
    OPC_MorphNodeTo0, TARGET_VAL(BPF::JAL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                    1, 2,
   0,
  8,
   OPC_CheckChild1TypeI64,
   OPC_EmitMergeInputChains1_0,
   OPC_MorphNodeTo0, TARGET_VAL(BPF::JALX), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
                   1, 1,
  0,
 34, TARGET_VAL(ISD::Constant),
  OPC_RecordNode,
  OPC_SwitchType , 19, MVT::i64,
   OPC_Scope, 8,
    OPC_CheckPredicate0,
    OPC_EmitConvertToTarget0,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_ri),
                    MVT::i64, 1, 1,
   7,
    OPC_EmitConvertToTarget0,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::LD_imm64),
                    MVT::i64, 1, 1,
   0,
  8, MVT::i32,
   OPC_CheckPredicate0,
   OPC_EmitConvertToTarget0,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_ri_32),
                   MVT::i32, 1, 1,
  0,
 11, TARGET_VAL(ISD::BRIND),
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_CheckChild1TypeI64,
  OPC_CheckPatternPredicate, 11,
  OPC_EmitMergeInputChains1_0,
  OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JX),
                  1, 1,
 63, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
  OPC_RecordChild0,
  OPC_MoveChild1,
  OPC_Scope, 23,
   OPC_CheckValueType, MVT::i8,
   OPC_MoveParent,
   OPC_SwitchType , 7, MVT::i64,
    OPC_CheckPatternPredicate4,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_8),
                    MVT::i64, 1, 0,
   7, MVT::i32,
    OPC_CheckPatternPredicate4,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32_8),
                    MVT::i32, 1, 0,
   0,
  23,
   OPC_CheckValueType, MVT::i16,
   OPC_MoveParent,
   OPC_SwitchType , 7, MVT::i64,
    OPC_CheckPatternPredicate4,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_16),
                    MVT::i64, 1, 0,
   7, MVT::i32,
    OPC_CheckPatternPredicate4,
    OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32_16),
                    MVT::i32, 1, 0,
   0,
  10,
   OPC_CheckValueType, MVT::i32,
   OPC_MoveParent,
   OPC_CheckPatternPredicate4,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32),
                   MVT::i64, 1, 0,
  0,
 18, TARGET_VAL(ISD::ADDRSPACECAST),
  OPC_RecordNode,
  OPC_RecordChild0,
  OPC_CheckChild0TypeI64,
  OPC_CheckTypeI64,
  OPC_EmitNodeXForm, 1, 0,
  OPC_EmitNodeXForm, 2, 0,
  OPC_MorphNodeTo1None, TARGET_VAL(BPF::ADDR_SPACE_CAST),
                  MVT::i64, 3, 1, 2, 3,
 13, TARGET_VAL(ISD::BR),
  OPC_RecordNode,
  OPC_RecordChild1,
  OPC_MoveChild1,
  OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
  OPC_MoveParent,
  OPC_EmitMergeInputChains1_0,
  OPC_MorphNodeTo0Chain, TARGET_VAL(BPF::JMP),
                  1, 1,
 8, TARGET_VAL(BPFISD::RET_GLUE),
  OPC_RecordNode,
  OPC_CaptureGlueInput,
  OPC_EmitMergeInputChains1_0,
  OPC_MorphNodeTo0, TARGET_VAL(BPF::RET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
                  0,
 31, TARGET_VAL(ISD::BSWAP),
  OPC_RecordChild0,
  OPC_CheckTypeI64,
  OPC_Scope, 8,
   OPC_CheckPatternPredicate, 8,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::BSWAP64),
                   MVT::i64, 1, 0,
  8,
   OPC_CheckPatternPredicate, 9,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::BE64),
                   MVT::i64, 1, 0,
  8,
   OPC_CheckPatternPredicate, 10,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::LE64),
                   MVT::i64, 1, 0,
  0,
 7, TARGET_VAL(ISD::ZERO_EXTEND),
  OPC_RecordChild0,
  OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOV_32_64),
                  MVT::i64, 1, 0,
 10, TARGET_VAL(ISD::TRUNCATE),
  OPC_RecordChild0,
  OPC_EmitIntegerI32, BPF::sub_32,
  OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::EXTRACT_SUBREG),
                  MVT::i32, 2, 0, 1,
 44, TARGET_VAL(ISD::SIGN_EXTEND),
  OPC_RecordChild0,
  OPC_Scope, 13,
   OPC_CheckPatternPredicate4,
   OPC_EmitNode1None, TARGET_VAL(BPF::MOV_32_64),
                   MVT::i64, 1, 0,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::MOVSX_rr_32),
                   MVT::i64, 1, 1,
  26,
   OPC_CheckPatternPredicate, 12,
   OPC_EmitNode1None, TARGET_VAL(BPF::MOV_32_64),
                   MVT::i64, 1, 0,
   OPC_EmitIntegerI64, 32,
   OPC_EmitNode1None, TARGET_VAL(BPF::SLL_ri),
                   MVT::i64, 2, 1, 2,
   OPC_EmitIntegerI64, 32,
   OPC_MorphNodeTo1None, TARGET_VAL(BPF::SRA_ri),
                   MVT::i64, 2, 3, 4,
  0,
 16, TARGET_VAL(ISD::ANY_EXTEND),
  OPC_RecordChild0,
  OPC_EmitNode1None, TARGET_VAL(TargetOpcode::IMPLICIT_DEF),
                  MVT::i64, 0,
  OPC_EmitIntegerI32, BPF::sub_32,
  OPC_MorphNodeTo1None, TARGET_VAL(TargetOpcode::INSERT_SUBREG),
                  MVT::i64, 3, 1, 0, 2,
 0,
    0
  }; // Total Array size is 4860 bytes

  #undef COVERAGE_IDX_VAL
  #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->getHasAlu32());
  case 1: return (Subtarget->hasLoadAcqStoreRel());
  case 2: return (!Subtarget->getHasAlu32());
  case 3: return (Subtarget->hasSdivSmod());
  case 4: return (Subtarget->hasMovsx());
  case 5: return (Subtarget->hasLdsx());
  case 6: return (Subtarget->hasStoreImm());
  case 7: return (Subtarget->getHasAlu32()) && (Subtarget->hasStoreImm());
  case 8: return (Subtarget->hasBswap());
  case 9: return (Subtarget->isLittleEndian());
  case 10: return (!Subtarget->isLittleEndian());
  case 11: return (Subtarget->hasGotox());
  case 12: return (!Subtarget->hasMovsx());
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckNodePredicate(SDValue Op, unsigned PredNo) const override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckNodePredicate(SDValue Op, unsigned PredNo) const
#if DAGISEL_INLINE
  override
#endif
{
  switch (PredNo) {
  default: llvm_unreachable("Invalid predicate in table?");
  case 0: {
    // Predicate_i32immSExt32
    // Predicate_i64immSExt32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return isInt<32>(N->getSExtValue()); 
  }
  case 1: {
    // Predicate_atomic_cmp_swap_i32
    // Predicate_atomic_load_add_i32
    // Predicate_atomic_load_and_i32
    // Predicate_atomic_load_nonext_32
    // Predicate_atomic_load_or_i32
    // Predicate_atomic_load_sub_i32
    // Predicate_atomic_load_xor_i32
    // Predicate_atomic_store_32
    // Predicate_atomic_swap_i32
    // Predicate_extloadi32
    // Predicate_sextloadi32
    // Predicate_truncstorei32
    // Predicate_zextloadi32
    SDNode *N = Op.getNode();
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false;
return true;

  }
  case 2: {
    // Predicate_atomic_load_aext_16
    // Predicate_atomic_load_zext_16
    // Predicate_atomic_store_16
    // Predicate_extloadi16
    // Predicate_sextloadi16
    // Predicate_truncstorei16
    // Predicate_zextloadi16
    SDNode *N = Op.getNode();
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
return true;

  }
  case 3: {
    // Predicate_atomic_load_aext_8
    // Predicate_atomic_load_zext_8
    // Predicate_atomic_store_8
    // Predicate_extloadi8
    // Predicate_sextloadi8
    // Predicate_truncstorei8
    // Predicate_zextloadi8
    SDNode *N = Op.getNode();
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
return true;

  }
  case 4: {
    // Predicate_anonymous_14491
    // Predicate_anonymous_14580
    // Predicate_anonymous_14581
    // Predicate_anonymous_14582
    // Predicate_atomic_load_add_i32_acquire
    // Predicate_atomic_load_add_i64_acquire
    // Predicate_atomic_load_and_i32_acquire
    // Predicate_atomic_load_and_i64_acquire
    // Predicate_atomic_load_or_i32_acquire
    // Predicate_atomic_load_or_i64_acquire
    // Predicate_atomic_load_sub_i32_acquire
    // Predicate_atomic_load_sub_i64_acquire
    // Predicate_atomic_load_xor_i32_acquire
    // Predicate_atomic_load_xor_i64_acquire
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::Acquire) return false;
return true;

  }
  case 5: {
    // Predicate_anonymous_14487
    // Predicate_anonymous_14592
    // Predicate_anonymous_14593
    // Predicate_anonymous_14594
    // Predicate_atomic_load_add_i32_release
    // Predicate_atomic_load_add_i64_release
    // Predicate_atomic_load_and_i32_release
    // Predicate_atomic_load_and_i64_release
    // Predicate_atomic_load_or_i32_release
    // Predicate_atomic_load_or_i64_release
    // Predicate_atomic_load_sub_i32_release
    // Predicate_atomic_load_sub_i64_release
    // Predicate_atomic_load_xor_i32_release
    // Predicate_atomic_load_xor_i64_release
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::Release) return false;
return true;

  }
  case 6: {
    // Predicate_atomic_load_add_i32_monotonic
    // Predicate_atomic_load_add_i64_monotonic
    // Predicate_atomic_load_and_i32_monotonic
    // Predicate_atomic_load_and_i64_monotonic
    // Predicate_atomic_load_or_i32_monotonic
    // Predicate_atomic_load_or_i64_monotonic
    // Predicate_atomic_load_sub_i32_monotonic
    // Predicate_atomic_load_sub_i64_monotonic
    // Predicate_atomic_load_xor_i32_monotonic
    // Predicate_atomic_load_xor_i64_monotonic
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::Monotonic) return false;
return true;

  }
  case 7: {
    // Predicate_atomic_load_add_i32_acq_rel
    // Predicate_atomic_load_add_i64_acq_rel
    // Predicate_atomic_load_and_i32_acq_rel
    // Predicate_atomic_load_and_i64_acq_rel
    // Predicate_atomic_load_or_i32_acq_rel
    // Predicate_atomic_load_or_i64_acq_rel
    // Predicate_atomic_load_sub_i32_acq_rel
    // Predicate_atomic_load_sub_i64_acq_rel
    // Predicate_atomic_load_xor_i32_acq_rel
    // Predicate_atomic_load_xor_i64_acq_rel
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::AcquireRelease) return false;
return true;

  }
  case 8: {
    // Predicate_atomic_load_add_i32_seq_cst
    // Predicate_atomic_load_add_i64_seq_cst
    // Predicate_atomic_load_and_i32_seq_cst
    // Predicate_atomic_load_and_i64_seq_cst
    // Predicate_atomic_load_or_i32_seq_cst
    // Predicate_atomic_load_or_i64_seq_cst
    // Predicate_atomic_load_sub_i32_seq_cst
    // Predicate_atomic_load_sub_i64_seq_cst
    // Predicate_atomic_load_xor_i32_seq_cst
    // Predicate_atomic_load_xor_i64_seq_cst
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::SequentiallyConsistent) return false;
return true;

  }
  case 9: {
    // Predicate_atomic_cmp_swap_i64
    // Predicate_atomic_load_add_i64
    // Predicate_atomic_load_and_i64
    // Predicate_atomic_load_nonext_64
    // Predicate_atomic_load_or_i64
    // Predicate_atomic_load_sub_i64
    // Predicate_atomic_load_xor_i64
    // Predicate_atomic_store_64
    // Predicate_atomic_swap_i64
    SDNode *N = Op.getNode();
    (void)N;
if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i64) return false;
return true;

  }
  case 10: {
    // Predicate_anonymous_14490
    // Predicate_anonymous_14577
    // Predicate_anonymous_14578
    // Predicate_anonymous_14579
    SDNode *N = Op.getNode();
    (void)N;
if (isAcquireOrStronger(cast<AtomicSDNode>(N)->getMergedOrdering())) return false;
return true;

  }
  case 11: {
    // Predicate_unindexedstore
    SDNode *N = Op.getNode();
    (void)N;
if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

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

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

  }
  case 14: {
    // Predicate_anonymous_14486
    // Predicate_anonymous_14589
    // Predicate_anonymous_14590
    // Predicate_anonymous_14591
    SDNode *N = Op.getNode();
    (void)N;
if (isReleaseOrStronger(cast<AtomicSDNode>(N)->getMergedOrdering())) return false;
return true;

  }
  case 15: {
    // Predicate_atomic_load_aext
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getExtensionType() != ISD::EXTLOAD) return false;
return true;

  }
  case 16: {
    // Predicate_atomic_load_zext
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
return true;

  }
  case 17: {
    // Predicate_BPF_CC_EQ
    // Predicate_BPF_CC_EQ_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETEQ);
  }
  case 18: {
    // Predicate_BPF_CC_GTU
    // Predicate_BPF_CC_GTU_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETUGT);
  }
  case 19: {
    // Predicate_BPF_CC_GEU
    // Predicate_BPF_CC_GEU_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETUGE);
  }
  case 20: {
    // Predicate_BPF_CC_NE
    // Predicate_BPF_CC_NE_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETNE);
  }
  case 21: {
    // Predicate_BPF_CC_GT
    // Predicate_BPF_CC_GT_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETGT);
  }
  case 22: {
    // Predicate_BPF_CC_GE
    // Predicate_BPF_CC_GE_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETGE);
  }
  case 23: {
    // Predicate_BPF_CC_LTU
    // Predicate_BPF_CC_LTU_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETULT);
  }
  case 24: {
    // Predicate_BPF_CC_LEU
    // Predicate_BPF_CC_LEU_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETULE);
  }
  case 25: {
    // Predicate_BPF_CC_LT
    // Predicate_BPF_CC_LT_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETLT);
  }
  case 26: {
    // Predicate_BPF_CC_LE
    // Predicate_BPF_CC_LE_32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return (N->getZExtValue() == ISD::SETLE);
  }
  case 27: {
    // Predicate_zextload
    SDNode *N = Op.getNode();
    (void)N;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
return true;

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

  }
  case 29: {
    // Predicate_atomic_load_and_i64_monotonic_nu
    // Predicate_atomic_load_or_i64_monotonic_nu
    // Predicate_atomic_load_xor_i64_monotonic_nu
    SDNode *N = Op.getNode();
    (void)N;
 return SDValue(N, 0).use_empty(); 
  }
  case 30: {
    // Predicate_atomic_load_and_i64_monotonic_hu
    // Predicate_atomic_load_or_i64_monotonic_hu
    // Predicate_atomic_load_xor_i64_monotonic_hu
    SDNode *N = Op.getNode();
    (void)N;
 return !SDValue(N, 0).use_empty(); 
  }
  case 31: {
    // Predicate_sextload
    SDNode *N = Op.getNode();
    (void)N;
if (cast<LoadSDNode>(N)->getExtensionType() != ISD::SEXTLOAD) return false;
return true;

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

  }
  case 33: {
    // Predicate_atomic_load_nonext
    SDNode *N = Op.getNode();
    (void)N;
if (cast<AtomicSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
return true;

  }
  case 34: {
    // Predicate_i64immZExt32
    auto *N = cast<ConstantSDNode>(Op.getNode());
    (void)N;
return isUInt<32>(N->getZExtValue()); 
  }
  case 35: {
    // Predicate_unindexedload
    SDNode *N = Op.getNode();
    (void)N;
if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
return true;

  }
  }
}
#endif // GET_DAGISEL_BODY

#ifdef GET_DAGISEL_DECL
bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) override;
#endif
#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
      SDValue N, unsigned PatternNo,
      SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result)
#if DAGISEL_INLINE
  override
#endif
{
  unsigned NextRes = Result.size();
  switch (PatternNo) {
  default: llvm_unreachable("Invalid pattern # in table?");
  case 0:
    Result.resize(NextRes+2);
  return SelectAddr(N, Result[NextRes+0].first, Result[NextRes+1].first);
  case 1:
    Result.resize(NextRes+2);
  return SelectFIAddr(N, Result[NextRes+0].first, Result[NextRes+1].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: {  
    ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());

  return CurDAG->getTargetConstant(N->getZExtValue(), SDLoc(N), MVT::i64);

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

  return CurDAG->getTargetConstant(
    cast<AddrSpaceCastSDNode>(N)->getDestAddressSpace(),
    SDLoc(N), MVT::i64);

  }
  case 2: {  
    SDNode *N = V.getNode();

  return CurDAG->getTargetConstant(
    cast<AddrSpaceCastSDNode>(N)->getSrcAddressSpace(),
    SDLoc(N), MVT::i64);

  }
  }
}
#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
