/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |* *| |* DAG Instruction Selector for the LoongArch 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[] = { OPC_SwitchOpcode , 127, TARGET_VAL(ISD::MUL), OPC_Scope, 67, OPC_MoveChild0, OPC_SwitchOpcode , 32, TARGET_VAL(LoongArchISD::BSTRPICK), OPC_RecordChild0, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_MoveParent, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(LoongArchISD::BSTRPICK), OPC_RecordChild0, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULW_D_WU), 0, MVT::i64, 2, 0, 1, 26, TARGET_VAL(ISD::SIGN_EXTEND_INREG), OPC_RecordChild0, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG), OPC_RecordChild0, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULW_D_W), 0, MVT::i64, 2, 0, 1, 0, 56, OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_D), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MUL_D), 0, MVT::i32, 2, 0, 1, 0, 0, 0, 23|128,2, TARGET_VAL(LoongArchISD::BSTRPICK), OPC_Scope, 15|128,1, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::ADD), OPC_Scope, 67, OPC_RecordChild0, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::SHL), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 0, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_MoveParent, OPC_MoveParent, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, MVT::i64, 3, 1, 0, 3, 24, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_MoveParent, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, MVT::i32, 3, 1, 0, 3, 0, 68, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::SHL), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 0, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_MoveParent, OPC_RecordChild1, OPC_MoveParent, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, MVT::i64, 3, 0, 2, 3, 25, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_RecordChild1, OPC_MoveParent, OPC_CheckChild1Integer, 62, OPC_CheckChild1Type, MVT::i64, OPC_CheckChild2Integer, 0, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_WU), 0, MVT::i32, 3, 0, 2, 3, 0, 0, 2|128,1, OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 60, OPC_CheckPredicate, 1, OPC_SwitchType , 26, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_W), 0, MVT::i64, 3, 0, 3, 4, 26, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_W), 0, MVT::i32, 3, 0, 3, 4, 0, 60, OPC_CheckPredicate, 2, OPC_SwitchType , 26, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 2, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_D), 0, MVT::i64, 3, 0, 3, 4, 26, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 2, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRPICK_D), 0, MVT::i32, 3, 0, 3, 4, 0, 0, 0, 36|128,17, TARGET_VAL(ISD::LOAD), OPC_RecordMemRef, OPC_RecordNode, OPC_Scope, 54|128,10, OPC_MoveChild1, OPC_SwitchOpcode , 89|128,6, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 80|128,3, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 17|128,3, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 107|128,1, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i64, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 42, OPC_CheckPredicate, 11, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 11, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 25|128,1, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i32, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 42, OPC_CheckPredicate, 11, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 0, 0, 0, 54, OPC_CheckPredicate, 13, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i64, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 0, 1|128,3, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i64, OPC_Scope, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 16, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 2, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 8, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 18, OPC_CheckPredicate, 11, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 16, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 1, 0, 0, 82|128,3, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 17|128,3, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 107|128,1, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i64, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 42, OPC_CheckPredicate, 11, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 20, OPC_CheckPredicate, 11, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 25|128,1, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i32, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 20, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 42, OPC_CheckPredicate, 11, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 0, 0, 0, 54, OPC_CheckPredicate, 13, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckType, MVT::i64, OPC_Scope, 20, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 10, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDPTR_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 0, 0, 29|128,3, OPC_RecordChild1, OPC_CheckPredicate, 5, OPC_Scope, 44, OPC_CheckPredicate, 6, OPC_CheckPredicate, 7, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 44, OPC_CheckPredicate, 8, OPC_CheckPredicate, 7, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 44, OPC_CheckPredicate, 6, OPC_CheckPredicate, 9, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 44, OPC_CheckPredicate, 8, OPC_CheckPredicate, 9, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 42, OPC_CheckPredicate, 10, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 90, OPC_CheckPredicate, 11, OPC_Scope, 42, OPC_CheckPredicate, 7, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_BU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 42, OPC_CheckPredicate, 9, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_HU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 0, 23, OPC_CheckPredicate, 6, OPC_CheckPredicate, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 23, OPC_CheckPredicate, 8, OPC_CheckPredicate, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 23, OPC_CheckPredicate, 11, OPC_CheckPredicate, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 21, OPC_CheckPredicate, 10, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 0, 111|128,2, OPC_MoveChild1, OPC_SwitchOpcode , 126|128,1, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 101, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 43, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 16, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 4, 16, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 4, 0, 43, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 16, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 4, 16, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 4, 0, 0, 73, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 30, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 2, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 1, 0, 30, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 2, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 1, 0, 0, 73, OPC_CheckType, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 30, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 2, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 1, 0, 30, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 2, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLDX_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 1, 0, 0, 0, 103, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 43, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 16, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 4, 16, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 4, 0, 43, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 16, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 3, 4, 16, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 3, 4, 0, 0, 0, 87, OPC_RecordChild1, OPC_CheckPredicate, 5, OPC_CheckPredicate, 10, OPC_SwitchType , 38, MVT::f32, OPC_Scope, 17, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 2, 3, 17, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_S), 0|OPFL_Chain|OPFL_MemRefs, MVT::f32, 2, 2, 3, 0, 38, MVT::f64, OPC_Scope, 17, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 2, 3, 17, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FLD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::f64, 2, 2, 3, 0, 0, 0, 70|128,10, TARGET_VAL(ISD::STORE), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 65|128,4, OPC_CheckChild1Type, MVT::i64, OPC_Scope, 96|128,3, OPC_MoveChild2, OPC_SwitchOpcode , 58|128,2, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 25|128,1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 93, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 61, OPC_CheckPredicate, 15, OPC_Scope, 18, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 52, OPC_CheckPredicate, 13, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 20, OPC_CheckPredicate, 15, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 0, 25|128,1, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 55, OPC_CheckPredicate, 15, OPC_Scope, 16, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 16, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 16, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 0, 16, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 55, OPC_CheckPredicate, 15, OPC_Scope, 16, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 16, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 16, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 16, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 0, 27|128,1, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 93, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 61, OPC_CheckPredicate, 15, OPC_Scope, 18, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 52, OPC_CheckPredicate, 13, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 20, OPC_CheckPredicate, 15, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::STPTR_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 0, 0, 90, OPC_RecordChild2, OPC_CheckPredicate, 14, OPC_Scope, 64, OPC_CheckPredicate, 15, OPC_Scope, 19, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 19, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 19, OPC_CheckPredicate, 18, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 19, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 0, 118|128,1, OPC_CheckChild1Type, MVT::i32, OPC_Scope, 41|128,1, OPC_MoveChild2, OPC_SwitchOpcode , 80, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 42, OPC_CheckPredicate, 15, OPC_Scope, 18, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 80, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_CheckType, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_Scope, 42, OPC_CheckPredicate, 15, OPC_Scope, 18, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 18, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 18, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 0, 70, OPC_RecordChild2, OPC_CheckPredicate, 14, OPC_Scope, 44, OPC_CheckPredicate, 15, OPC_Scope, 19, OPC_CheckPredicate, 16, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 19, OPC_CheckPredicate, 17, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 19, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 0, 1|128,2, OPC_CheckChild1Type, MVT::f32, OPC_Scope, 79|128,1, OPC_MoveChild2, OPC_SwitchOpcode , 10|128,1, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 57, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 21, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 21, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 37, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 6, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 37, OPC_CheckType, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 8, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 0, 59, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 21, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 21, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 0, 43, OPC_RecordChild2, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_Scope, 17, OPC_CheckPatternPredicate, 6, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 17, OPC_CheckPatternPredicate, 8, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_S), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 0, 1|128,2, OPC_CheckChild1Type, MVT::f64, OPC_Scope, 79|128,1, OPC_MoveChild2, OPC_SwitchOpcode , 10|128,1, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 57, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 21, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 21, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 37, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 7, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 37, OPC_CheckType, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 9, OPC_Scope, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 3, 12, OPC_CheckComplexPat, /*CP*/1, /*#*/3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FSTX_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 2, 0, 0, 59, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 21, MVT::i64, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 21, MVT::i32, OPC_MoveParent, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 4, 5, 0, 0, 43, OPC_RecordChild2, OPC_CheckPredicate, 14, OPC_CheckPredicate, 19, OPC_Scope, 17, OPC_CheckPatternPredicate, 7, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 17, OPC_CheckPatternPredicate, 9, OPC_CheckComplexPat, /*CP*/0, /*#*/2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::FST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 1, 3, 4, 0, 0, 0, 40|128,4, TARGET_VAL(ISD::ATOMIC_LOAD), OPC_RecordMemRef, OPC_RecordNode, OPC_Scope, 113|128,2, OPC_MoveChild1, OPC_SwitchOpcode , 51|128,1, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 81, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 81, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 0, 0, 51|128,1, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 81, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 18, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 3, 4, 0, 81, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 18, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 3, 4, 0, 0, 0, 47|128,1, OPC_RecordChild1, OPC_Scope, 42, OPC_CheckPredicate, 7, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_B), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 42, OPC_CheckPredicate, 9, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_H), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 42, OPC_CheckPredicate, 12, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 42, OPC_CheckPredicate, 20, OPC_SwitchType , 17, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 3, 17, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LD_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 3, 0, 0, 0, 87|128,4, TARGET_VAL(ISD::ATOMIC_STORE), OPC_RecordMemRef, OPC_RecordNode, OPC_Scope, 91|128,2, OPC_MoveChild1, OPC_SwitchOpcode , 40|128,1, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 86, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 20, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 0, 65, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 0, 0, 40|128,1, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 86, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 20, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 0, 65, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_Scope, 18, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 18, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 20, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 3, 4, 5, 0, 0, 0, 116|128,1, OPC_RecordChild1, OPC_Scope, 31|128,1, OPC_RecordChild2, OPC_Scope, 88, OPC_CheckChild2Type, MVT::i64, OPC_Scope, 19, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 19, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 4, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 21, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 21, OPC_CheckPredicate, 20, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_D), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 0, 66, OPC_CheckChild2Type, MVT::i32, OPC_Scope, 19, OPC_CheckPredicate, 7, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_B), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 19, OPC_CheckPredicate, 9, OPC_CheckPatternPredicate, 5, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_H), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 21, OPC_CheckPredicate, 12, OPC_CheckPredicate, 21, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ST_W), 0|OPFL_Chain|OPFL_MemRefs, 3, 2, 3, 4, 0, 0, 39, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_Scope, 15, OPC_CheckPredicate, 12, OPC_CheckPredicate, 22, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoAtomicStoreW), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 1, 2, 15, OPC_CheckPredicate, 20, OPC_CheckPredicate, 22, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoAtomicStoreD), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 1, 2, 0, 39, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_Scope, 15, OPC_CheckPredicate, 12, OPC_CheckPredicate, 22, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoAtomicStoreW), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 1, 2, 15, OPC_CheckPredicate, 20, OPC_CheckPredicate, 22, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::PseudoAtomicStoreD), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 1, 2, 0, 0, 0, 104|128,2, TARGET_VAL(ISD::ADD), OPC_Scope, 9|128,1, OPC_RecordChild0, OPC_Scope, 46, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 15, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 2, 3, 15, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 2, 3, 0, 86, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::SHL), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 0, OPC_SwitchType , 34, MVT::i64, OPC_MoveParent, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 13, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, MVT::i64, 3, 1, 0, 3, 13, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, MVT::i64, 3, 1, 0, 3, 0, 34, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 13, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, MVT::i32, 3, 1, 0, 3, 13, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, MVT::i32, 3, 1, 0, 3, 0, 0, 0, 88, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::SHL), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 0, OPC_SwitchType , 35, MVT::i64, OPC_MoveParent, OPC_MoveParent, OPC_RecordChild1, OPC_CheckType, MVT::i64, OPC_Scope, 13, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, MVT::i64, 3, 0, 2, 3, 13, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, MVT::i64, 3, 0, 2, 3, 0, 35, MVT::i32, OPC_MoveParent, OPC_MoveParent, OPC_RecordChild1, OPC_CheckType, MVT::i32, OPC_Scope, 13, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_W), 0, MVT::i32, 3, 0, 2, 3, 13, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ALSL_D), 0, MVT::i32, 3, 0, 2, 3, 0, 0, 0|128,1, OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 69, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_SwitchType , 28, MVT::i64, OPC_Scope, 12, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 2, 12, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 0, 2, 0, 28, MVT::i32, OPC_Scope, 12, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 0, 2, 12, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i32, 2, 0, 2, 0, 0, 26, OPC_CheckType, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_D), 0, MVT::i64, 2, 0, 1, 0, 26, OPC_CheckType, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_D), 0, MVT::i32, 2, 0, 1, 0, 0, 0, 65|128,1, TARGET_VAL(ISD::OR), OPC_Scope, 85, OPC_RecordChild0, OPC_Scope, 46, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckPredicate, 4, OPC_SwitchType , 15, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/0, /*#*/0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 2, 3, 15, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/0, /*#*/0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 2, 3, 0, 34, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_MoveParent, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, MVT::i32, 2, 0, 1, 0, 0, 35, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_MoveParent, OPC_RecordChild1, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, MVT::i64, 2, 1, 0, 10, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORN), 0, MVT::i32, 2, 1, 0, 0, 68, OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 37, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 23, OPC_MoveParent, OPC_SwitchType , 12, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORI), 0, MVT::i64, 2, 0, 2, 12, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ORI), 0, MVT::i32, 2, 0, 2, 0, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, MVT::i64, 2, 0, 1, 12, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, MVT::i32, 2, 0, 1, 0, 0, 112, TARGET_VAL(ISD::INTRINSIC_VOID), OPC_RecordNode, OPC_Scope, 31, OPC_CheckChild1Integer, 14|128,75, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_RecordChild3, OPC_RecordChild4, OPC_MoveChild4, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::CACOP), 0|OPFL_Chain, 3, 4, 2, 5, 22, OPC_CheckChild1Integer, 70|128,75, OPC_RecordChild2, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::LDPTE), 0|OPFL_Chain, 2, 1, 3, 21, OPC_CheckChild1Integer, 16|128,75, OPC_RecordChild2, OPC_RecordChild3, OPC_RecordChild4, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::CACOP), 0|OPFL_Chain, 3, 4, 2, 5, 15, OPC_CheckChild1Integer, 10|128,75, OPC_RecordChild2, OPC_RecordChild3, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ASRTLE_D), 0|OPFL_Chain, 2, 1, 2, 15, OPC_CheckChild1Integer, 8|128,75, OPC_RecordChild2, OPC_RecordChild3, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ASRTGT_D), 0|OPFL_Chain, 2, 1, 2, 0, 94|128,25, TARGET_VAL(ISD::BRCOND), OPC_RecordNode, OPC_Scope, 47|128,25, OPC_MoveChild1, OPC_SwitchOpcode , 105|128,10, TARGET_VAL(ISD::XOR), OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::SETCC), OPC_RecordChild0, OPC_Scope, 47|128,5, OPC_CheckChild0Type, MVT::f32, OPC_RecordChild1, OPC_Scope, 61, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETONE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETO, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETULT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETULE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUO, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETLT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 0, 47|128,5, OPC_CheckChild0Type, MVT::f64, OPC_RecordChild1, OPC_Scope, 61, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETONE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETO, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETULT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETULE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETUO, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 61, OPC_CheckChild2CondCode, ISD::SETLT, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCEQZ), 0|OPFL_Chain, 2, 4, 3, 0, 0, 0, 59|128,14, TARGET_VAL(ISD::SETCC), OPC_RecordChild0, OPC_Scope, 10|128,2, OPC_CheckChild0Type, MVT::i64, OPC_CheckType, MVT::i64, OPC_Scope, 44, OPC_CheckChild1Integer, 0, OPC_Scope, 19, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQZ), 0|OPFL_Chain, 2, 1, 2, 19, OPC_CheckChild2CondCode, ISD::SETNE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ), 0|OPFL_Chain, 2, 1, 2, 0, 85|128,1, OPC_RecordChild1, OPC_Scope, 20, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETNE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETLT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETGE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETULT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETUGE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETGT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETLE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETUGT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETULE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU), 0|OPFL_Chain, 3, 2, 1, 3, 0, 0, 10|128,2, OPC_CheckChild0Type, MVT::i32, OPC_CheckType, MVT::i32, OPC_Scope, 44, OPC_CheckChild1Integer, 0, OPC_Scope, 19, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQZ), 0|OPFL_Chain, 2, 1, 2, 19, OPC_CheckChild2CondCode, ISD::SETNE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ), 0|OPFL_Chain, 2, 1, 2, 0, 85|128,1, OPC_RecordChild1, OPC_Scope, 20, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BEQ), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETNE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNE), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETLT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETGE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETULT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETUGE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU), 0|OPFL_Chain, 3, 1, 2, 3, 20, OPC_CheckChild2CondCode, ISD::SETGT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLT), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETLE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGE), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETUGT, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BLTU), 0|OPFL_Chain, 3, 2, 1, 3, 20, OPC_CheckChild2CondCode, ISD::SETULE, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BGEU), 0|OPFL_Chain, 3, 2, 1, 3, 0, 0, 14|128,5, OPC_CheckChild0Type, MVT::f32, OPC_RecordChild1, OPC_Scope, 58, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETLT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 0, 14|128,5, OPC_CheckChild0Type, MVT::f64, OPC_RecordChild1, OPC_Scope, 58, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 58, OPC_CheckChild2CondCode, ISD::SETLT, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 25, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 1, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BCNEZ), 0|OPFL_Chain, 2, 4, 3, 0, 0, 0, 0, 41, OPC_RecordChild1, OPC_Scope, 18, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ), 0|OPFL_Chain, 2, 1, 2, 18, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BNEZ), 0|OPFL_Chain, 2, 1, 2, 0, 0, 17|128,1, TARGET_VAL(ISD::XOR), OPC_Scope, 35, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::OR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveParent, OPC_CheckChild1Integer, 3, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, MVT::i32, 2, 0, 1, 0, 106, OPC_RecordChild0, OPC_Scope, 34, OPC_CheckChild1Integer, 3, OPC_SwitchType , 13, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, MVT::i64, 2, 0, 1, 13, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::NOR), 0, MVT::i32, 2, 0, 1, 0, 67, OPC_RecordChild1, OPC_Scope, 37, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 23, OPC_MoveParent, OPC_SwitchType , 12, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i64, 2, 0, 2, 12, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i32, 2, 0, 2, 0, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR), 0, MVT::i64, 2, 0, 1, 12, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XOR), 0, MVT::i32, 2, 0, 1, 0, 0, 0, 15|128,1, TARGET_VAL(ISD::AND), OPC_Scope, 35, OPC_RecordChild0, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_MoveParent, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, MVT::i32, 2, 0, 1, 0, 35, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_MoveParent, OPC_RecordChild1, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, MVT::i64, 2, 1, 0, 10, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDN), 0, MVT::i32, 2, 1, 0, 0, 68, OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 37, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 23, OPC_MoveParent, OPC_SwitchType , 12, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDI), 0, MVT::i64, 2, 0, 2, 12, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ANDI), 0, MVT::i32, 2, 0, 2, 0, 12, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND), 0, MVT::i64, 2, 0, 1, 12, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AND), 0, MVT::i32, 2, 0, 1, 0, 0, 122, TARGET_VAL(ISD::CTLZ), OPC_Scope, 63, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_D), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_W), 0, MVT::i64, 1, 0, 0, 25, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_D), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_W), 0, MVT::i32, 1, 0, 0, 0, 55, OPC_RecordChild0, OPC_SwitchType , 24, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_D), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_W), 0, MVT::i64, 1, 0, 0, 24, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_D), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_W), 0, MVT::i32, 1, 0, 0, 0, 0, 122, TARGET_VAL(ISD::CTTZ), OPC_Scope, 63, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_SwitchType , 25, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_D), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_W), 0, MVT::i64, 1, 0, 0, 25, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_D), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_W), 0, MVT::i32, 1, 0, 0, 0, 55, OPC_RecordChild0, OPC_SwitchType , 24, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_D), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_W), 0, MVT::i64, 1, 0, 0, 24, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_D), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_W), 0, MVT::i32, 1, 0, 0, 0, 0, 70, TARGET_VAL(LoongArchISD::CLZ_W), OPC_Scope, 37, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_W), 0, MVT::i64, 1, 0, 12, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLO_W), 0, MVT::i32, 1, 0, 0, 29, OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_W), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CLZ_W), 0, MVT::i32, 1, 0, 0, 0, 70, TARGET_VAL(LoongArchISD::CTZ_W), OPC_Scope, 37, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::XOR), OPC_RecordChild0, OPC_CheckChild1Integer, 3, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_W), 0, MVT::i64, 1, 0, 12, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTO_W), 0, MVT::i32, 1, 0, 0, 29, OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_W), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CTZ_W), 0, MVT::i32, 1, 0, 0, 0, 7|128,1, TARGET_VAL(LoongArchISD::BSTRINS), OPC_RecordChild0, OPC_RecordChild1, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 62, OPC_CheckPredicate, 1, OPC_SwitchType , 27, MVT::i64, OPC_MoveParent, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 2, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_W), 0, MVT::i64, 4, 0, 1, 4, 5, 27, MVT::i32, OPC_MoveParent, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 2, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_W), 0, MVT::i32, 4, 0, 1, 4, 5, 0, 62, OPC_CheckPredicate, 2, OPC_SwitchType , 27, MVT::i64, OPC_MoveParent, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 2, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 2, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_D), 0, MVT::i64, 4, 0, 1, 4, 5, 27, MVT::i32, OPC_MoveParent, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 2, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 2, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BSTRINS_D), 0, MVT::i32, 4, 0, 1, 4, 5, 0, 0, 34|128,3, TARGET_VAL(ISD::INTRINSIC_W_CHAIN), OPC_RecordNode, OPC_Scope, 28, OPC_CheckChild1Integer, 98|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicSwap32), 0|OPFL_Chain, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 74|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadAdd32), 0|OPFL_Chain, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 86|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadSub32), 0|OPFL_Chain, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 82|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadNand32), 0|OPFL_Chain, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 30, OPC_CheckChild1Integer, 90|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadUMax32), 0|OPFL_Chain, 3, MVT::i64, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 30, OPC_CheckChild1Integer, 94|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadUMin32), 0|OPFL_Chain, 3, MVT::i64, MVT::i64, MVT::i64, 4, 1, 2, 3, 4, 30, OPC_CheckChild1Integer, 100|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_RecordChild6, OPC_MoveChild6, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedCmpXchg32), 0|OPFL_Chain, MVT::i64, MVT::i64, 5, 1, 2, 3, 4, 5, 32, OPC_CheckChild1Integer, 76|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_RecordChild6, OPC_MoveChild6, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadMax32), 0|OPFL_Chain, 3, MVT::i64, MVT::i64, MVT::i64, 5, 1, 2, 3, 4, 5, 32, OPC_CheckChild1Integer, 78|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_RecordChild6, OPC_MoveChild6, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadMin32), 0|OPFL_Chain, 3, MVT::i64, MVT::i64, MVT::i64, 5, 1, 2, 3, 4, 5, 28, OPC_CheckChild1Integer, 96|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicSwap32), 0|OPFL_Chain, MVT::i32, MVT::i32, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 72|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadAdd32), 0|OPFL_Chain, MVT::i32, MVT::i32, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 84|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadSub32), 0|OPFL_Chain, MVT::i32, MVT::i32, 4, 1, 2, 3, 4, 28, OPC_CheckChild1Integer, 80|128,75, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_RecordChild3, OPC_RecordChild4, OPC_RecordChild5, OPC_MoveChild5, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoMaskedAtomicLoadNand32), 0|OPFL_Chain, MVT::i32, MVT::i32, 4, 1, 2, 3, 4, 23, OPC_CheckChild1Integer, 68|128,75, OPC_RecordChild2, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::LDDIR), 0|OPFL_Chain, MVT::i64, 2, 1, 3, 0, 88|128,1, TARGET_VAL(ISD::SIGN_EXTEND_INREG), OPC_Scope, 6|128,1, OPC_MoveChild0, OPC_SwitchOpcode , 45, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 24, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 3, OPC_MoveParent, OPC_MoveParent, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 2, 15, OPC_MoveParent, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADD_W), 0, MVT::i64, 2, 0, 1, 0, 28, TARGET_VAL(ISD::ROTR), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_CheckType, MVT::i64, OPC_MoveParent, OPC_MoveParent, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i64, 2, 0, 2, 29, TARGET_VAL(LoongArchISD::ROTL_W), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_MoveParent, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 0, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i64, 2, 0, 3, 17, TARGET_VAL(ISD::SUB), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveParent, OPC_MoveChild1, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_W), 0, MVT::i64, 2, 0, 1, 0, 77, OPC_RecordChild0, OPC_MoveChild1, OPC_Scope, 27, OPC_CheckValueType, MVT::i8, OPC_MoveParent, OPC_SwitchType , 9, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_B), 0, MVT::i64, 1, 0, 9, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_B), 0, MVT::i32, 1, 0, 0, 27, OPC_CheckValueType, MVT::i16, OPC_MoveParent, OPC_SwitchType , 9, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_H), 0, MVT::i64, 1, 0, 9, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::EXT_W_H), 0, MVT::i32, 1, 0, 0, 16, OPC_CheckValueType, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 1, 0, 0, 85, TARGET_VAL(ISD::BRIND), OPC_RecordNode, OPC_Scope, 45, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::ADD), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 24, OPC_MoveParent, OPC_SwitchType , 13, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoBRIND), 0|OPFL_Chain, 2, 1, 3, 13, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoBRIND), 0|OPFL_Chain, 2, 1, 3, 0, 35, OPC_RecordChild1, OPC_Scope, 15, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoBRIND), 0|OPFL_Chain, 2, 1, 2, 15, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoBRIND), 0|OPFL_Chain, 2, 1, 2, 0, 0, 21, TARGET_VAL(ISD::CALLSEQ_START), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput, 2, 1, 2, 22, TARGET_VAL(ISD::CALLSEQ_END), OPC_RecordNode, OPC_CaptureGlueInput, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput, 2, 1, 2, 39, TARGET_VAL(ISD::ATOMIC_FENCE), OPC_RecordNode, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant), OPC_MoveParent, OPC_Scope, 12, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, 1, 1, 12, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, 1, 1, 0, 111|128,12, TARGET_VAL(ISD::SETCC), OPC_RecordChild0, OPC_Scope, 52|128,3, OPC_CheckChild0Type, MVT::i64, OPC_Scope, 38, OPC_CheckChild1Integer, 0, OPC_CheckType, MVT::i64, OPC_Scope, 15, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_CheckPatternPredicate, 4, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i64, 2, 0, 1, 15, OPC_CheckChild2CondCode, ISD::SETNE, OPC_CheckPatternPredicate, 4, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 1, 0, 0, 7|128,3, OPC_RecordChild1, OPC_Scope, 42|128,1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 37, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 14, OPC_CheckChild2CondCode, ISD::SETLT, OPC_CheckPatternPredicate, 4, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTI), 0, MVT::i64, 2, 0, 2, 14, OPC_CheckChild2CondCode, ISD::SETULT, OPC_CheckPatternPredicate, 4, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i64, 2, 0, 2, 0, 125, OPC_CheckPredicate, 25, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_Scope, 58, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_Scope, 26, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 3, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i64, 2, 4, 5, 26, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 0, 3, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i64, 2, 4, 5, 0, 58, OPC_CheckChild2CondCode, ISD::SETNE, OPC_Scope, 26, OPC_CheckPatternPredicate, 1, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 3, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 2, 5, 26, OPC_CheckPatternPredicate, 0, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 3, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 0, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 2, 5, 0, 0, 0, 14, OPC_CheckChild2CondCode, ISD::SETLT, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, MVT::i64, 2, 0, 1, 14, OPC_CheckChild2CondCode, ISD::SETULT, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 0, 1, 14, OPC_CheckChild2CondCode, ISD::SETUGT, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 1, 0, 14, OPC_CheckChild2CondCode, ISD::SETGT, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, MVT::i64, 2, 1, 0, 25, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, MVT::i64, 2, 0, 1, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i64, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETNE, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETUGE, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 0, 1, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i64, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETULE, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i64, 2, 1, 0, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i64, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETGE, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, MVT::i64, 2, 0, 1, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i64, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETLE, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, MVT::i64, 2, 1, 0, OPC_EmitInteger, MVT::i64, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i64, 2, 2, 3, 0, 0, 52|128,3, OPC_CheckChild0Type, MVT::i32, OPC_Scope, 38, OPC_CheckChild1Integer, 0, OPC_CheckType, MVT::i32, OPC_Scope, 15, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_CheckPatternPredicate, 5, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i32, 2, 0, 1, 15, OPC_CheckChild2CondCode, ISD::SETNE, OPC_CheckPatternPredicate, 5, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 1, 0, 0, 7|128,3, OPC_RecordChild1, OPC_Scope, 42|128,1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 37, OPC_CheckPredicate, 3, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 14, OPC_CheckChild2CondCode, ISD::SETLT, OPC_CheckPatternPredicate, 5, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTI), 0, MVT::i32, 2, 0, 2, 14, OPC_CheckChild2CondCode, ISD::SETULT, OPC_CheckPatternPredicate, 5, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i32, 2, 0, 2, 0, 125, OPC_CheckPredicate, 25, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_Scope, 58, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_Scope, 26, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 0, 3, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i32, 2, 4, 5, 26, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i32, 2, 0, 3, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i32, 2, 4, 5, 0, 58, OPC_CheckChild2CondCode, ISD::SETNE, OPC_Scope, 26, OPC_CheckPatternPredicate, 2, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 3, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 0, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 2, 5, 26, OPC_CheckPatternPredicate, 3, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 1, 3, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i32, 2, 0, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 2, 5, 0, 0, 0, 14, OPC_CheckChild2CondCode, ISD::SETLT, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, MVT::i32, 2, 0, 1, 14, OPC_CheckChild2CondCode, ISD::SETULT, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 0, 1, 14, OPC_CheckChild2CondCode, ISD::SETUGT, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 1, 0, 14, OPC_CheckChild2CondCode, ISD::SETGT, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLT), 0, MVT::i32, 2, 1, 0, 25, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, MVT::i32, 2, 0, 1, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTUI), 0, MVT::i32, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETNE, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::XOR), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETUGE, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 0, 1, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i32, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETULE, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::SLTU), 0, MVT::i32, 2, 1, 0, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i32, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETGE, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, MVT::i32, 2, 0, 1, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i32, 2, 2, 3, 25, OPC_CheckChild2CondCode, ISD::SETLE, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::SLT), 0, MVT::i32, 2, 1, 0, OPC_EmitInteger, MVT::i32, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::XORI), 0, MVT::i32, 2, 2, 3, 0, 0, 126|128,2, OPC_CheckChild0Type, MVT::f32, OPC_RecordChild1, OPC_Scope, 28, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETLE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETLT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 0, 1, 0, 0, 126|128,2, OPC_CheckChild0Type, MVT::f64, OPC_RecordChild1, OPC_Scope, 28, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETLE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i32, 2, 0, 1, 0, 28, OPC_CheckChild2CondCode, ISD::SETLT, OPC_SwitchType , 10, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 0, 1, 10, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 0, 1, 0, 0, 0, 19|128,1, TARGET_VAL(ISD::ROTR), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 84, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 38, OPC_CheckPredicate, 1, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i32, 2, 0, 2, 0, 38, OPC_CheckPredicate, 2, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_D), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_D), 0, MVT::i32, 2, 0, 2, 0, 0, 28, OPC_CheckChild1Type, MVT::i64, OPC_CheckType, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_D), 0, MVT::i64, 2, 0, 1, 0, 28, OPC_CheckChild1Type, MVT::i32, OPC_CheckType, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_D), 0, MVT::i32, 2, 0, 1, 0, 0, 24, TARGET_VAL(LoongArchISD::ROTL_W), OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 1, OPC_MoveParent, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_EmitNodeXForm, 0, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i64, 2, 0, 3, 31|128,1, TARGET_VAL(ISD::SHL), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 84, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 38, OPC_CheckPredicate, 1, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_W), 0, MVT::i32, 2, 0, 2, 0, 38, OPC_CheckPredicate, 2, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_D), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLLI_D), 0, MVT::i32, 2, 0, 2, 0, 0, 34, OPC_CheckChild1Type, MVT::i64, OPC_CheckType, MVT::i64, OPC_Scope, 13, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_W), 0, MVT::i64, 2, 0, 2, 13, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_D), 0, MVT::i64, 2, 0, 2, 0, 34, OPC_CheckChild1Type, MVT::i32, OPC_CheckType, MVT::i32, OPC_Scope, 13, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_W), 0, MVT::i32, 2, 0, 2, 13, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_D), 0, MVT::i32, 2, 0, 2, 0, 0, 31|128,1, TARGET_VAL(ISD::SRA), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 84, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 38, OPC_CheckPredicate, 1, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_W), 0, MVT::i32, 2, 0, 2, 0, 38, OPC_CheckPredicate, 2, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_D), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRAI_D), 0, MVT::i32, 2, 0, 2, 0, 0, 34, OPC_CheckChild1Type, MVT::i64, OPC_CheckType, MVT::i64, OPC_Scope, 13, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_W), 0, MVT::i64, 2, 0, 2, 13, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_D), 0, MVT::i64, 2, 0, 2, 0, 34, OPC_CheckChild1Type, MVT::i32, OPC_CheckType, MVT::i32, OPC_Scope, 13, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_W), 0, MVT::i32, 2, 0, 2, 13, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_D), 0, MVT::i32, 2, 0, 2, 0, 0, 31|128,1, TARGET_VAL(ISD::SRL), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 84, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_Scope, 38, OPC_CheckPredicate, 1, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 1, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 2, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_W), 0, MVT::i32, 2, 0, 2, 0, 38, OPC_CheckPredicate, 2, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_D), 0, MVT::i64, 2, 0, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRLI_D), 0, MVT::i32, 2, 0, 2, 0, 0, 34, OPC_CheckChild1Type, MVT::i64, OPC_CheckType, MVT::i64, OPC_Scope, 13, OPC_CheckPatternPredicate, 1, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_W), 0, MVT::i64, 2, 0, 2, 13, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_D), 0, MVT::i64, 2, 0, 2, 0, 34, OPC_CheckChild1Type, MVT::i32, OPC_CheckType, MVT::i32, OPC_Scope, 13, OPC_CheckPatternPredicate, 2, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_W), 0, MVT::i32, 2, 0, 2, 13, OPC_CheckPatternPredicate, 3, OPC_CheckComplexPat, /*CP*/2, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_D), 0, MVT::i32, 2, 0, 2, 0, 0, 38, TARGET_VAL(LoongArchISD::DBAR), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 26, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, 1, 2, 12, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::DBAR), 0|OPFL_Chain, 1, 2, 0, 38, TARGET_VAL(LoongArchISD::IBAR), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 26, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IBAR), 0|OPFL_Chain, 1, 2, 12, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IBAR), 0|OPFL_Chain, 1, 2, 0, 38, TARGET_VAL(LoongArchISD::BREAK), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 26, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BREAK), 0|OPFL_Chain, 1, 2, 12, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BREAK), 0|OPFL_Chain, 1, 2, 0, 38, TARGET_VAL(LoongArchISD::SYSCALL), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 26, OPC_SwitchType , 12, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::SYSCALL), 0|OPFL_Chain, 1, 2, 12, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::SYSCALL), 0|OPFL_Chain, 1, 2, 0, 44, TARGET_VAL(LoongArchISD::CSRRD), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 27, OPC_SwitchType , 15, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRRD), 0|OPFL_Chain, MVT::i64, 1, 2, 15, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRRD), 0|OPFL_Chain, MVT::i32, 1, 2, 0, 47, TARGET_VAL(LoongArchISD::CSRWR), OPC_RecordNode, OPC_RecordChild1, OPC_RecordChild2, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 27, OPC_SwitchType , 16, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRWR), 0|OPFL_Chain, MVT::i64, 2, 1, 3, 16, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRWR), 0|OPFL_Chain, MVT::i32, 2, 1, 3, 0, 50, TARGET_VAL(LoongArchISD::CSRXCHG), OPC_RecordNode, OPC_RecordChild1, OPC_RecordChild2, OPC_RecordChild3, OPC_MoveChild3, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 27, OPC_SwitchType , 17, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRXCHG), 0|OPFL_Chain, MVT::i64, 3, 1, 2, 4, 17, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CSRXCHG), 0|OPFL_Chain, MVT::i32, 3, 1, 2, 4, 0, 46, TARGET_VAL(LoongArchISD::MOVGR2FCSR), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 28, OPC_SwitchType , 16, MVT::i64, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::WRFCSR), 0|OPFL_Chain, 2, 3, 2, 16, MVT::i32, OPC_MoveParent, OPC_RecordChild2, OPC_CheckChild2Type, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_EmitConvertToTarget, 1, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::WRFCSR), 0|OPFL_Chain, 2, 3, 2, 0, 41, TARGET_VAL(LoongArchISD::MOVFCSR2GR), OPC_RecordChild0, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::Constant), OPC_CheckPredicate, 28, OPC_SwitchType , 14, MVT::i64, OPC_MoveParent, OPC_CheckType, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitConvertToTarget, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::RDFCSR), 0, MVT::i64, 1, 1, 14, MVT::i32, OPC_MoveParent, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitConvertToTarget, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::RDFCSR), 0, MVT::i32, 1, 1, 0, 15, TARGET_VAL(LoongArchISD::SLL_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/3, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SLL_W), 0, MVT::i64, 2, 0, 2, 15, TARGET_VAL(LoongArchISD::SRA_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/3, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRA_W), 0, MVT::i64, 2, 0, 2, 15, TARGET_VAL(LoongArchISD::SRL_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_CheckComplexPat, /*CP*/3, /*#*/1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SRL_W), 0, MVT::i64, 2, 0, 2, 91, TARGET_VAL(LoongArchISD::CALL), OPC_RecordNode, OPC_CaptureGlueInput, OPC_RecordChild1, OPC_Scope, 61, OPC_MoveChild1, OPC_SwitchOpcode , 26, TARGET_VAL(ISD::TargetGlobalAddress), OPC_SwitchType , 10, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 10, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 26, TARGET_VAL(ISD::TargetExternalSymbol), OPC_SwitchType , 10, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 10, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 0, 11, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALLIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 11, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoCALLIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 91, TARGET_VAL(LoongArchISD::TAIL), OPC_RecordNode, OPC_CaptureGlueInput, OPC_RecordChild1, OPC_Scope, 61, OPC_MoveChild1, OPC_SwitchOpcode , 26, TARGET_VAL(ISD::TargetGlobalAddress), OPC_SwitchType , 10, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 10, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 26, TARGET_VAL(ISD::TargetExternalSymbol), OPC_SwitchType , 10, MVT::i64, OPC_MoveParent, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 10, MVT::i32, OPC_MoveParent, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 0, 11, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 11, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1, 1, 1, 0, 5|128,1, TARGET_VAL(ISD::BSWAP), OPC_Scope, 56, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::BITREVERSE), OPC_RecordChild0, OPC_MoveParent, OPC_SwitchType , 22, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_8B), 0, MVT::i64, 1, 0, 0, 22, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_8B), 0, MVT::i32, 1, 0, 0, 0, 73, OPC_RecordChild0, OPC_SwitchType , 33, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_D), 0, MVT::i64, 1, 0, 20, OPC_CheckPatternPredicate, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::REVB_2H), 0, MVT::i64, 1, 0, OPC_EmitInteger, MVT::i64, 32, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i64, 2, 1, 2, 0, 33, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_D), 0, MVT::i32, 1, 0, 20, OPC_CheckPatternPredicate, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::REVB_2H), 0, MVT::i32, 1, 0, OPC_EmitInteger, MVT::i32, 32, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTRI_W), 0, MVT::i32, 2, 1, 2, 0, 0, 0, 111, TARGET_VAL(ISD::BITREVERSE), OPC_Scope, 56, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::BSWAP), OPC_RecordChild0, OPC_MoveParent, OPC_SwitchType , 22, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_8B), 0, MVT::i64, 1, 0, 0, 22, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_8B), 0, MVT::i32, 1, 0, 0, 0, 51, OPC_RecordChild0, OPC_SwitchType , 22, MVT::i64, OPC_Scope, 9, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_W), 0, MVT::i64, 1, 0, 9, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_D), 0, MVT::i64, 1, 0, 0, 22, MVT::i32, OPC_Scope, 9, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_W), 0, MVT::i32, 1, 0, 9, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_D), 0, MVT::i32, 1, 0, 0, 0, 0, 37|128,3, TARGET_VAL(ISD::ATOMIC_LOAD_NAND), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 77|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 99, OPC_CheckPredicate, 20, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 77|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 99, OPC_CheckPredicate, 20, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 21|128,2, TARGET_VAL(ISD::ATOMIC_SWAP), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 5|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMSWAP_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMSWAP_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 5|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMSWAP_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMSWAP_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicSwap32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 17|128,2, TARGET_VAL(ISD::ATOMIC_LOAD_ADD), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 3|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 111, OPC_CheckPredicate, 12, OPC_Scope, 11, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 3|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 111, OPC_CheckPredicate, 12, OPC_Scope, 11, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAdd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 21|128,2, TARGET_VAL(ISD::ATOMIC_LOAD_AND), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 5|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMAND_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMAND_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 5|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMAND_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMAND_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadAnd32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 21|128,2, TARGET_VAL(ISD::ATOMIC_LOAD_OR), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 5|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMOR_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMOR_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 5|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMOR_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMOR_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadOr32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 21|128,2, TARGET_VAL(ISD::ATOMIC_LOAD_XOR), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 5|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMXOR_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMXOR_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 0, 5|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMXOR_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMXOR_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 99, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadXor32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 0, 75, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 33, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_DU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 0, 33, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_DU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 0, 0, 75, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 33, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_DU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 0, 33, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_WU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_DU), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 0, 0, 75, TARGET_VAL(ISD::ATOMIC_LOAD_MIN), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 33, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 0, 33, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMIN_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 0, 0, 75, TARGET_VAL(ISD::ATOMIC_LOAD_MAX), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 33, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 2, 1, 0, 33, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 13, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 13, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMMAX_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 2, 1, 0, 0, 85, TARGET_VAL(ISD::ATOMIC_CMP_SWAP), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 38, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_RecordChild3, OPC_Scope, 15, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 15, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 0, 38, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_RecordChild3, OPC_Scope, 15, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 15, OPC_CheckPredicate, 12, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 0, 0, 61|128,2, TARGET_VAL(ISD::ATOMIC_LOAD_SUB), OPC_RecordMemRef, OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 25|128,1, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_Scope, 122, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 1, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, MVT::i64, 3, 1, 2, 3, 22, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_W), 0, MVT::i64, 2, 3, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 4, 1, 0, 24, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_D), 0, MVT::i64, 2, 3, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i64, 2, 4, 1, 0, 25|128,1, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_Scope, 122, OPC_CheckPredicate, 12, OPC_Scope, 18, OPC_CheckPredicate, 29, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 4, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 30, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 8, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 31, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 10, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 32, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 12, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 18, OPC_CheckPredicate, 33, OPC_CheckPatternPredicate, 2, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 14, OPC_MorphNodeTo2, TARGET_VAL(LoongArch::PseudoAtomicLoadSub32), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, MVT::i32, 3, 1, 2, 3, 22, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_W), 0, MVT::i32, 2, 3, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_W), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 4, 1, 0, 24, OPC_CheckPredicate, 20, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::SUB_D), 0, MVT::i32, 2, 3, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::AMADD_DB_D), 0|OPFL_Chain|OPFL_MemRefs, MVT::i32, 2, 4, 1, 0, 0, 7, TARGET_VAL(ISD::TRAP), OPC_RecordNode, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoUNIMP), 0|OPFL_Chain, 0, 14, TARGET_VAL(ISD::BR), OPC_RecordNode, OPC_RecordChild1, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock), OPC_MoveParent, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoBR), 0|OPFL_Chain, 1, 1, 8, TARGET_VAL(LoongArchISD::RET), OPC_RecordNode, OPC_CaptureGlueInput, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::PseudoRET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0, 0, 56, TARGET_VAL(ISD::SUB), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_D), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::SUB_D), 0, MVT::i32, 2, 0, 1, 0, 0, 56, TARGET_VAL(ISD::MULHS), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_D), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_D), 0, MVT::i32, 2, 0, 1, 0, 0, 56, TARGET_VAL(ISD::MULHU), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_WU), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_DU), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_WU), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MULH_DU), 0, MVT::i32, 2, 0, 1, 0, 0, 12, TARGET_VAL(LoongArchISD::ROTR_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::ROTR_W), 0, MVT::i64, 2, 0, 1, 29, TARGET_VAL(ISD::DEBUGTRAP), OPC_RecordNode, OPC_Scope, 12, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i64, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BREAK), 0|OPFL_Chain, 1, 1, 12, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_EmitInteger, MVT::i32, 0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::BREAK), 0|OPFL_Chain, 1, 1, 0, 29, TARGET_VAL(LoongArchISD::REVB_2H), OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_2H), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_2H), 0, MVT::i32, 1, 0, 0, 29, TARGET_VAL(LoongArchISD::BITREV_4B), OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_4B), 0, MVT::i32, 1, 0, 0, 29, TARGET_VAL(LoongArchISD::REVB_2W), OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_2W), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::REVB_2W), 0, MVT::i32, 1, 0, 0, 29, TARGET_VAL(LoongArchISD::BITREV_W), OPC_RecordChild0, OPC_SwitchType , 11, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_W), 0, MVT::i64, 1, 0, 11, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::BITREV_W), 0, MVT::i32, 1, 0, 0, 12, TARGET_VAL(LoongArchISD::CRC_W_B_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_B_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRC_W_H_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_H_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRC_W_W_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_W_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRC_W_D_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRC_W_D_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRCC_W_B_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_B_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRCC_W_H_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_H_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRCC_W_W_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_W_W), 0, MVT::i64, 2, 0, 1, 12, TARGET_VAL(LoongArchISD::CRCC_W_D_W), OPC_RecordChild0, OPC_RecordChild1, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CRCC_W_D_W), 0, MVT::i64, 2, 0, 1, 84|128,6, TARGET_VAL(ISD::STRICT_FSETCC), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 38|128,3, OPC_CheckChild1Type, MVT::f32, OPC_RecordChild2, OPC_MoveChild3, OPC_Scope, 31, OPC_CheckCondCode, ISD::SETOEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETONE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUNE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 0, 38|128,3, OPC_CheckChild1Type, MVT::f64, OPC_RecordChild2, OPC_MoveChild3, OPC_Scope, 31, OPC_CheckCondCode, ISD::SETOEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETONE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_COR_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUNE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 0, 0, 84|128,5, TARGET_VAL(ISD::STRICT_FSETCCS), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 102|128,2, OPC_CheckChild1Type, MVT::f32, OPC_RecordChild2, OPC_MoveChild3, OPC_Scope, 31, OPC_CheckCondCode, ISD::SETOEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SEQ_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SEQ_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETONE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SNE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SNE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SOR_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SOR_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUEQ_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUEQ_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUNE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUNE_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUNE_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUN_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUN_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 6, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_S), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 8, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_S), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 0, 102|128,2, OPC_CheckChild1Type, MVT::f64, OPC_RecordChild2, OPC_MoveChild3, OPC_Scope, 31, OPC_CheckCondCode, ISD::SETOEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SEQ_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SEQ_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETOLE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETONE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SNE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SNE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SOR_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SOR_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUEQ, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUEQ_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUEQ_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETULE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SULE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUNE, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUNE_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUNE_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETUO, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUN_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SUN_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 31, OPC_CheckCondCode, ISD::SETLT, OPC_MoveParent, OPC_SwitchType , 11, MVT::i64, OPC_CheckPatternPredicate, 7, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_D), 0|OPFL_Chain, MVT::i64, 2, 1, 2, 11, MVT::i32, OPC_CheckPatternPredicate, 9, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCMP_SLT_D), 0|OPFL_Chain, MVT::i32, 2, 1, 2, 0, 0, 0, 10, TARGET_VAL(LoongArchISD::MOVFR2GR_S_LA64), OPC_RecordChild0, OPC_CheckPatternPredicate, 10, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_S), 0, MVT::i64, 1, 0, 85, TARGET_VAL(ISD::BITCAST), OPC_RecordChild0, OPC_Scope, 13, OPC_CheckChild0Type, MVT::f32, OPC_CheckType, MVT::i32, OPC_CheckPatternPredicate, 11, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_S), 0, MVT::i32, 1, 0, 26, OPC_CheckChild0Type, MVT::f64, OPC_SwitchType , 9, MVT::i64, OPC_CheckPatternPredicate, 12, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_D), 0, MVT::i64, 1, 0, 9, MVT::i32, OPC_CheckPatternPredicate, 13, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVFR2GR_D), 0, MVT::i32, 1, 0, 0, 26, OPC_CheckChild0Type, MVT::i32, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 11, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 13, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, 0, 13, OPC_CheckChild0Type, MVT::i64, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 12, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, 0, 32, TARGET_VAL(LoongArchISD::IOCSRRD_B), OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 12, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_B), 0|OPFL_Chain, MVT::i64, 1, 1, 12, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_B), 0|OPFL_Chain, MVT::i32, 1, 1, 0, 32, TARGET_VAL(LoongArchISD::IOCSRRD_H), OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 12, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_H), 0|OPFL_Chain, MVT::i64, 1, 1, 12, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_H), 0|OPFL_Chain, MVT::i32, 1, 1, 0, 32, TARGET_VAL(LoongArchISD::IOCSRRD_W), OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 12, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_W), 0|OPFL_Chain, MVT::i64, 1, 1, 12, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_W), 0|OPFL_Chain, MVT::i32, 1, 1, 0, 32, TARGET_VAL(LoongArchISD::IOCSRWR_B), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 13, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_B), 0|OPFL_Chain, 2, 1, 2, 13, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_B), 0|OPFL_Chain, 2, 1, 2, 0, 32, TARGET_VAL(LoongArchISD::IOCSRWR_H), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 13, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_H), 0|OPFL_Chain, 2, 1, 2, 13, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_H), 0|OPFL_Chain, 2, 1, 2, 0, 32, TARGET_VAL(LoongArchISD::IOCSRWR_W), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 13, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_W), 0|OPFL_Chain, 2, 1, 2, 13, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_W), 0|OPFL_Chain, 2, 1, 2, 0, 32, TARGET_VAL(LoongArchISD::CPUCFG), OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 12, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 4, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CPUCFG), 0|OPFL_Chain, MVT::i64, 1, 1, 12, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 5, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::CPUCFG), 0|OPFL_Chain, MVT::i32, 1, 1, 0, 32, TARGET_VAL(LoongArchISD::IOCSRRD_D), OPC_RecordNode, OPC_RecordChild1, OPC_SwitchType , 12, MVT::i64, OPC_CheckChild1Type, MVT::i64, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_D), 0|OPFL_Chain, MVT::i64, 1, 1, 12, MVT::i32, OPC_CheckChild1Type, MVT::i32, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::IOCSRRD_D), 0|OPFL_Chain, MVT::i32, 1, 1, 0, 32, TARGET_VAL(LoongArchISD::IOCSRWR_D), OPC_RecordNode, OPC_RecordChild1, OPC_Scope, 13, OPC_CheckChild1Type, MVT::i64, OPC_RecordChild2, OPC_CheckPatternPredicate, 0, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_D), 0|OPFL_Chain, 2, 1, 2, 13, OPC_CheckChild1Type, MVT::i32, OPC_RecordChild2, OPC_CheckPatternPredicate, 3, OPC_EmitMergeInputChains1_0, OPC_MorphNodeTo0, TARGET_VAL(LoongArch::IOCSRWR_D), 0|OPFL_Chain, 2, 1, 2, 0, 23|128,10, TARGET_VAL(ISD::SELECT), OPC_Scope, 67, OPC_RecordChild0, OPC_SwitchType , 30, MVT::i64, OPC_CheckChild0Type, MVT::i64, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckPatternPredicate, 4, OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ), 0, MVT::i64, 2, 1, 0, OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ), 0, MVT::i64, 2, 2, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, MVT::i64, 2, 3, 4, 30, MVT::i32, OPC_CheckChild0Type, MVT::i32, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckPatternPredicate, 5, OPC_EmitNode1, TARGET_VAL(LoongArch::MASKEQZ), 0, MVT::i32, 2, 1, 0, OPC_EmitNode1, TARGET_VAL(LoongArch::MASKNEZ), 0, MVT::i32, 2, 2, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::OR), 0, MVT::i32, 2, 3, 4, 0, 9|128,9, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::SETCC), OPC_RecordChild0, OPC_Scope, 63|128,4, OPC_CheckChild0Type, MVT::f32, OPC_RecordChild1, OPC_Scope, 56, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_S), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 3, 2, 4, 0, 0, 63|128,4, OPC_CheckChild0Type, MVT::f64, OPC_RecordChild1, OPC_Scope, 56, OPC_CheckChild2CondCode, ISD::SETOEQ, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CEQ_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETOLT, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLT_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETOLE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CLE_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETONE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CNE_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETO, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_COR_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUEQ, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUEQ_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETULT, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULT_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETULE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CULE_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUNE, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUNE_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 56, OPC_CheckChild2CondCode, ISD::SETUO, OPC_SwitchType , 24, MVT::i64, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i64, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 24, MVT::i32, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_EmitNode1, TARGET_VAL(LoongArch::FCMP_CUN_D), 0, MVT::i32, 2, 0, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 3, 2, 4, 0, 0, 0, 69, OPC_RecordChild0, OPC_Scope, 32, OPC_CheckChild0Type, MVT::i64, OPC_RecordChild1, OPC_RecordChild2, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 6, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 2, 1, 0, 11, MVT::f64, OPC_CheckPatternPredicate, 7, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 2, 1, 0, 0, 32, OPC_CheckChild0Type, MVT::i32, OPC_RecordChild1, OPC_RecordChild2, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 8, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_S), 0, MVT::f32, 3, 2, 1, 0, 11, MVT::f64, OPC_CheckPatternPredicate, 9, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSEL_D), 0, MVT::f64, 3, 2, 1, 0, 0, 0, 0, 56, TARGET_VAL(ISD::SDIV), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_D), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_D), 0, MVT::i32, 2, 0, 1, 0, 0, 56, TARGET_VAL(ISD::UDIV), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_WU), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_DU), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_WU), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::DIV_DU), 0, MVT::i32, 2, 0, 1, 0, 0, 56, TARGET_VAL(ISD::SREM), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_W), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_D), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_W), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_D), 0, MVT::i32, 2, 0, 1, 0, 0, 56, TARGET_VAL(ISD::UREM), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 24, MVT::i64, OPC_Scope, 10, OPC_CheckPatternPredicate, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_WU), 0, MVT::i64, 2, 0, 1, 10, OPC_CheckPatternPredicate, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_DU), 0, MVT::i64, 2, 0, 1, 0, 24, MVT::i32, OPC_Scope, 10, OPC_CheckPatternPredicate, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_WU), 0, MVT::i32, 2, 0, 1, 10, OPC_CheckPatternPredicate, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOD_DU), 0, MVT::i32, 2, 0, 1, 0, 0, 98, TARGET_VAL(ISD::FDIV), OPC_Scope, 66, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::ConstantFP), OPC_CheckPredicate, 34, OPC_MoveParent, OPC_Scope, 30, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::FSQRT), OPC_RecordChild0, OPC_MoveParent, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRSQRT_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRSQRT_D), 0, MVT::f64, 1, 0, 0, 25, OPC_RecordChild1, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRECIP_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRECIP_D), 0, MVT::f64, 1, 0, 0, 0, 28, OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FDIV_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FDIV_D), 0, MVT::f64, 2, 0, 1, 0, 0, 123|128,1, TARGET_VAL(ISD::FMA), OPC_Scope, 43, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_RecordChild1, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_CheckPredicate, 35, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_S), 0, MVT::f32, 3, 0, 1, 2, 11, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_D), 0, MVT::f64, 3, 0, 1, 2, 0, 67, OPC_RecordChild0, OPC_Scope, 42, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_CheckPredicate, 35, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_S), 0, MVT::f32, 3, 1, 0, 2, 11, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_D), 0, MVT::f64, 3, 1, 0, 2, 0, 20, OPC_RecordChild1, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMSUB_S), 0, MVT::f32, 3, 0, 1, 2, 0, 21, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_S), 0, MVT::f32, 3, 0, 1, 2, 21, OPC_RecordChild0, OPC_RecordChild1, OPC_MoveChild2, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMSUB_D), 0, MVT::f64, 3, 0, 1, 2, 21, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_RecordChild1, OPC_RecordChild2, OPC_CheckType, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_D), 0, MVT::f64, 3, 0, 1, 2, 70, OPC_RecordChild0, OPC_Scope, 35, OPC_MoveChild1, OPC_CheckOpcode, TARGET_VAL(ISD::FNEG), OPC_RecordChild0, OPC_MoveParent, OPC_RecordChild2, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_S), 0, MVT::f32, 3, 1, 0, 2, 11, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMSUB_D), 0, MVT::f64, 3, 1, 0, 2, 0, 30, OPC_RecordChild1, OPC_RecordChild2, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMADD_S), 0, MVT::f32, 3, 0, 1, 2, 11, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMADD_D), 0, MVT::f64, 3, 0, 1, 2, 0, 0, 0, 41|128,1, TARGET_VAL(ISD::SINT_TO_FP), OPC_RecordChild0, OPC_Scope, 84, OPC_CheckChild0Type, MVT::i64, OPC_SwitchType , 39, MVT::f32, OPC_Scope, 19, OPC_CheckPatternPredicate, 10, OPC_CheckComplexPat, /*CP*/4, /*#*/0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 2, 16, OPC_CheckPatternPredicate, 12, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_L), 0, MVT::f32, 1, 1, 0, 37, MVT::f64, OPC_CheckPatternPredicate, 12, OPC_Scope, 17, OPC_CheckComplexPat, /*CP*/4, /*#*/0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_W), 0, MVT::f64, 1, 2, 14, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_L), 0, MVT::f64, 1, 1, 0, 0, 80, OPC_CheckChild0Type, MVT::i32, OPC_SwitchType , 36, MVT::f32, OPC_Scope, 16, OPC_CheckPatternPredicate, 11, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 1, 16, OPC_CheckPatternPredicate, 13, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_L), 0, MVT::f32, 1, 1, 0, 36, MVT::f64, OPC_Scope, 16, OPC_CheckPatternPredicate, 13, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_L), 0, MVT::f64, 1, 1, 16, OPC_CheckPatternPredicate, 16, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_W), 0, MVT::f64, 1, 1, 0, 0, 0, 24, TARGET_VAL(ISD::UINT_TO_FP), OPC_RecordChild0, OPC_CheckChild0Type, MVT::i64, OPC_CheckType, MVT::f32, OPC_CheckPatternPredicate, 10, OPC_CheckComplexPat, /*CP*/4, /*#*/0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 2, 65, TARGET_VAL(ISD::FNEG), OPC_Scope, 36, OPC_MoveChild0, OPC_CheckOpcode, TARGET_VAL(ISD::FMA), OPC_RecordChild0, OPC_RecordChild1, OPC_RecordChild2, OPC_MoveParent, OPC_SwitchType , 11, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_S), 0, MVT::f32, 3, 0, 1, 2, 11, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNMADD_D), 0, MVT::f64, 3, 0, 1, 2, 0, 25, OPC_RecordChild0, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, MVT::f64, 1, 0, 0, 0, 121|128,3, TARGET_VAL(ISD::ConstantFP), OPC_Scope, 64, OPC_CheckPredicate, 36, OPC_SwitchType , 28, MVT::f32, OPC_Scope, 12, OPC_CheckPatternPredicate, 6, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, 12, OPC_CheckPatternPredicate, 8, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, 0, 28, MVT::f64, OPC_Scope, 12, OPC_CheckPatternPredicate, 12, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, 12, OPC_CheckPatternPredicate, 13, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, 0, 0, 92, OPC_CheckPredicate, 37, OPC_SwitchType , 42, MVT::f32, OPC_Scope, 19, OPC_CheckPatternPredicate, 6, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_S), 0, MVT::f32, 1, 1, 19, OPC_CheckPatternPredicate, 8, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_S), 0, MVT::f32, 1, 1, 0, 42, MVT::f64, OPC_Scope, 19, OPC_CheckPatternPredicate, 12, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, MVT::f64, 1, 1, 19, OPC_CheckPatternPredicate, 13, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, MVT::f64, 1, 1, 0, 0, 54, OPC_CheckPredicate, 36, OPC_CheckType, MVT::f64, OPC_Scope, 23, OPC_CheckPatternPredicate, 17, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W_64), 0, MVT::f64, 1, 0, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FRH_W), 0, MVT::f64, 2, 1, 2, 23, OPC_CheckPatternPredicate, 16, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W_64), 0, MVT::f64, 1, 0, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FRH_W), 0, MVT::f64, 2, 1, 2, 0, 8|128,1, OPC_CheckPredicate, 34, OPC_SwitchType , 64, MVT::f32, OPC_Scope, 30, OPC_CheckPatternPredicate, 6, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitInteger, MVT::i64, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 3, 30, OPC_CheckPatternPredicate, 8, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitInteger, MVT::i32, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 3, 0, 64, MVT::f64, OPC_Scope, 30, OPC_CheckPatternPredicate, 12, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitInteger, MVT::i64, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i64, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_L), 0, MVT::f64, 1, 3, 30, OPC_CheckPatternPredicate, 13, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitInteger, MVT::i32, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_D), 0, MVT::i32, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_D), 0, MVT::f64, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FFINT_D_L), 0, MVT::f64, 1, 3, 0, 0, 68, OPC_CheckPredicate, 37, OPC_CheckType, MVT::f64, OPC_Scope, 30, OPC_CheckPatternPredicate, 17, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W_64), 0, MVT::f64, 1, 0, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FRH_W), 0, MVT::f64, 2, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, MVT::f64, 1, 3, 30, OPC_CheckPatternPredicate, 16, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W_64), 0, MVT::f64, 1, 0, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FRH_W), 0, MVT::f64, 2, 1, 2, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FNEG_D), 0, MVT::f64, 1, 3, 0, 82, OPC_CheckPredicate, 34, OPC_CheckType, MVT::f64, OPC_Scope, 37, OPC_CheckPatternPredicate, 17, OPC_EmitRegister, MVT::i64, LoongArch::R0, OPC_EmitInteger, MVT::i64, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i64, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_D_S), 0, MVT::f64, 1, 4, 37, OPC_CheckPatternPredicate, 16, OPC_EmitRegister, MVT::i32, LoongArch::R0, OPC_EmitInteger, MVT::i32, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::ADDI_W), 0, MVT::i32, 2, 0, 1, OPC_EmitNode1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 2, OPC_EmitNode1, TARGET_VAL(LoongArch::FFINT_S_W), 0, MVT::f32, 1, 3, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_D_S), 0, MVT::f64, 1, 4, 0, 0, 28, TARGET_VAL(ISD::FADD), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FADD_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FADD_D), 0, MVT::f64, 2, 0, 1, 0, 28, TARGET_VAL(ISD::FSUB), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSUB_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSUB_D), 0, MVT::f64, 2, 0, 1, 0, 28, TARGET_VAL(ISD::FMUL), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMUL_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMUL_D), 0, MVT::f64, 2, 0, 1, 0, 76, TARGET_VAL(ISD::FCOPYSIGN), OPC_RecordChild0, OPC_RecordChild1, OPC_Scope, 35, OPC_CheckChild1Type, MVT::f32, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_S), 0, MVT::f32, 2, 0, 1, 17, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_EmitNode1, TARGET_VAL(LoongArch::FCVT_D_S), 0, MVT::f64, 1, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_D), 0, MVT::f64, 2, 0, 2, 0, 35, OPC_CheckChild1Type, MVT::f64, OPC_SwitchType , 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_D), 0, MVT::f64, 2, 0, 1, 17, MVT::f32, OPC_CheckPatternPredicate, 15, OPC_EmitNode1, TARGET_VAL(LoongArch::FCVT_S_D), 0, MVT::f32, 1, 1, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCOPYSIGN_S), 0, MVT::f32, 2, 0, 2, 0, 0, 28, TARGET_VAL(ISD::FMAXNUM_IEEE), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_D), 0, MVT::f64, 2, 0, 1, 0, 28, TARGET_VAL(ISD::FMINNUM_IEEE), OPC_RecordChild0, OPC_RecordChild1, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMIN_S), 0, MVT::f32, 2, 0, 1, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMIN_D), 0, MVT::f64, 2, 0, 1, 0, 25, TARGET_VAL(ISD::FABS), OPC_RecordChild0, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FABS_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FABS_D), 0, MVT::f64, 1, 0, 0, 25, TARGET_VAL(ISD::FSQRT), OPC_RecordChild0, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSQRT_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FSQRT_D), 0, MVT::f64, 1, 0, 0, 27, TARGET_VAL(ISD::FCANONICALIZE), OPC_RecordChild0, OPC_SwitchType , 10, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_S), 0, MVT::f32, 2, 0, 0, 10, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FMAX_D), 0, MVT::f64, 2, 0, 0, 0, 57, TARGET_VAL(LoongArchISD::FTINT), OPC_RecordChild0, OPC_Scope, 26, OPC_CheckChild0Type, MVT::f32, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 14, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_W_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_L_S), 0, MVT::f64, 1, 0, 0, 26, OPC_CheckChild0Type, MVT::f64, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_W_D), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FTINTRZ_L_D), 0, MVT::f64, 1, 0, 0, 0, 25, TARGET_VAL(ISD::FRINT), OPC_RecordChild0, OPC_SwitchType , 9, MVT::f32, OPC_CheckPatternPredicate, 18, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRINT_S), 0, MVT::f32, 1, 0, 9, MVT::f64, OPC_CheckPatternPredicate, 19, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FRINT_D), 0, MVT::f64, 1, 0, 0, 10, TARGET_VAL(ISD::FP_ROUND), OPC_RecordChild0, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_S_D), 0, MVT::f32, 1, 0, 10, TARGET_VAL(ISD::FP_EXTEND), OPC_RecordChild0, OPC_CheckPatternPredicate, 15, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::FCVT_D_S), 0, MVT::f64, 1, 0, 10, TARGET_VAL(LoongArchISD::MOVGR2FR_W_LA64), OPC_RecordChild0, OPC_CheckPatternPredicate, 10, OPC_MorphNodeTo1, TARGET_VAL(LoongArch::MOVGR2FR_W), 0, MVT::f32, 1, 0, 0, 0 }; // Total Array size is 22169 bytes #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->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit")); case 1: return (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit")); case 2: return (!Subtarget->is64Bit()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 3: return (Subtarget->is64Bit()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 4: return (MF->getSubtarget().checkFeatures("+64bit")); case 5: return (!(MF->getSubtarget().checkFeatures("+64bit"))); case 6: return (Subtarget->hasBasicF()) && (MF->getSubtarget().checkFeatures("+64bit")); case 7: return (Subtarget->hasBasicD()) && (MF->getSubtarget().checkFeatures("+64bit")); case 8: return (Subtarget->hasBasicF()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 9: return (Subtarget->hasBasicD()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 10: return (Subtarget->hasBasicF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit")); case 11: return (Subtarget->hasBasicF()) && (!Subtarget->is64Bit()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 12: return (Subtarget->hasBasicD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit")); case 13: return (Subtarget->hasBasicD()) && (Subtarget->is64Bit()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 14: return (Subtarget->hasBasicF()); case 15: return (Subtarget->hasBasicD()); case 16: return (Subtarget->hasBasicD()) && (!Subtarget->is64Bit()) && (!(MF->getSubtarget().checkFeatures("+64bit"))); case 17: return (Subtarget->hasBasicD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit")); case 18: return (Subtarget->hasBasicF()) && (Subtarget->is64Bit()); case 19: return (Subtarget->hasBasicD()) && (Subtarget->is64Bit()); } } #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_uimm2_plus1 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<2>(Imm - 1); } case 1: { // Predicate_uimm5 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<5>(Imm); } case 2: { // Predicate_uimm6 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<6>(Imm); } case 3: { // Predicate_simm12 int64_t Imm = cast(Node)->getSExtValue(); return isInt<12>(Imm); } case 4: { // Predicate_AddLike SDNode *N = Node; (void)N; return N->getOpcode() == ISD::ADD || isOrEquivalentToAdd(N); } case 5: { // Predicate_unindexedload SDNode *N = Node; (void)N; if (cast(N)->getAddressingMode() != ISD::UNINDEXED) return false; return true; } case 6: { // Predicate_sextload SDNode *N = Node; (void)N; if (cast(N)->getExtensionType() != ISD::SEXTLOAD) return false; return true; } case 7: { // Predicate_sextloadi8 // Predicate_extloadi8 // Predicate_zextloadi8 // Predicate_atomic_load_8 // Predicate_atomic_store_8 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i8) return false; return true; } case 8: { // Predicate_extload SDNode *N = Node; (void)N; if (cast(N)->getExtensionType() != ISD::EXTLOAD) return false; return true; } case 9: { // Predicate_sextloadi16 // Predicate_extloadi16 // Predicate_zextloadi16 // Predicate_atomic_load_16 // Predicate_atomic_store_16 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i16) return false; return true; } case 10: { // Predicate_load SDNode *N = Node; (void)N; if (cast(N)->getExtensionType() != ISD::NON_EXTLOAD) return false; return true; } case 11: { // Predicate_zextload SDNode *N = Node; (void)N; if (cast(N)->getExtensionType() != ISD::ZEXTLOAD) return false; return true; } case 12: { // Predicate_sextloadi32 // Predicate_extloadi32 // Predicate_zextloadi32 // Predicate_atomic_load_32 // Predicate_atomic_store_32 // Predicate_atomic_load_nand_32 // Predicate_atomic_swap_32 // Predicate_atomic_load_add_32 // Predicate_atomic_load_and_32 // Predicate_atomic_load_or_32 // Predicate_atomic_load_xor_32 // Predicate_atomic_load_umin_32 // Predicate_atomic_load_umax_32 // Predicate_atomic_load_min_32 // Predicate_atomic_load_max_32 // Predicate_atomic_cmp_swap_32 // Predicate_atomic_load_sub_32 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i32) return false; return true; } case 13: { // Predicate_simm14_lsl2 int64_t Imm = cast(Node)->getSExtValue(); return isShiftedInt<14,2>(Imm); } case 14: { // Predicate_unindexedstore SDNode *N = Node; (void)N; if (cast(N)->getAddressingMode() != ISD::UNINDEXED) return false; return true; } case 15: { // Predicate_truncstore SDNode *N = Node; (void)N; if (!cast(N)->isTruncatingStore()) return false; return true; } case 16: { // Predicate_truncstorei8 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i8) return false; if (!cast(N)->isTruncatingStore()) return false; return true; } case 17: { // Predicate_truncstorei16 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i16) return false; if (!cast(N)->isTruncatingStore()) return false; return true; } case 18: { // Predicate_truncstorei32 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i32) return false; if (!cast(N)->isTruncatingStore()) return false; return true; } case 19: { // Predicate_store SDNode *N = Node; (void)N; if (cast(N)->isTruncatingStore()) return false; return true; } case 20: { // Predicate_atomic_load_64 // Predicate_atomic_store_64 // Predicate_atomic_load_nand_64 // Predicate_atomic_swap_64 // Predicate_atomic_load_add_64 // Predicate_atomic_load_and_64 // Predicate_atomic_load_or_64 // Predicate_atomic_load_xor_64 // Predicate_atomic_load_umin_64 // Predicate_atomic_load_umax_64 // Predicate_atomic_load_min_64 // Predicate_atomic_load_max_64 // Predicate_atomic_cmp_swap_64 // Predicate_atomic_load_sub_64 SDNode *N = Node; (void)N; if (cast(N)->getMemoryVT() != MVT::i64) return false; return true; } case 21: { // Predicate_atomic_store_unordered_monotonic_32 // Predicate_atomic_store_unordered_monotonic_64 SDNode *N = Node; (void)N; AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); return !isReleaseOrStronger(Ordering); } case 22: { // Predicate_atomic_store_release_seqcst_32 // Predicate_atomic_store_release_seqcst_64 SDNode *N = Node; (void)N; AtomicOrdering Ordering = cast(N)->getSuccessOrdering(); return isReleaseOrStronger(Ordering); } case 23: { // Predicate_uimm12 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<12>(Imm); } case 24: { // Predicate_simm16_lsl2 int64_t Imm = cast(Node)->getSExtValue(); return isInt<16>(Imm>>2); } case 25: { // Predicate_simm12_plus1 int64_t Imm = cast(Node)->getSExtValue(); return (isInt<12>(Imm) && Imm != -2048) || Imm == 2048; } case 26: { // Predicate_uimm15 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<15>(Imm); } case 27: { // Predicate_uimm14 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<14>(Imm); } case 28: { // Predicate_uimm2 int64_t Imm = cast(Node)->getSExtValue(); return isUInt<2>(Imm); } case 29: { // Predicate_atomic_load_nand_64_monotonic // Predicate_atomic_load_nand_32_monotonic // Predicate_atomic_swap_32_monotonic // Predicate_atomic_load_add_32_monotonic // Predicate_atomic_load_and_32_monotonic // Predicate_atomic_load_or_32_monotonic // Predicate_atomic_load_xor_32_monotonic // Predicate_atomic_load_sub_32_monotonic SDNode *N = Node; (void)N; if (cast(N)->getMergedOrdering() != AtomicOrdering::Monotonic) return false; return true; } case 30: { // Predicate_atomic_load_nand_64_acquire // Predicate_atomic_load_nand_32_acquire // Predicate_atomic_swap_32_acquire // Predicate_atomic_load_add_32_acquire // Predicate_atomic_load_and_32_acquire // Predicate_atomic_load_or_32_acquire // Predicate_atomic_load_xor_32_acquire // Predicate_atomic_load_sub_32_acquire SDNode *N = Node; (void)N; if (cast(N)->getMergedOrdering() != AtomicOrdering::Acquire) return false; return true; } case 31: { // Predicate_atomic_load_nand_64_release // Predicate_atomic_load_nand_32_release // Predicate_atomic_swap_32_release // Predicate_atomic_load_add_32_release // Predicate_atomic_load_and_32_release // Predicate_atomic_load_or_32_release // Predicate_atomic_load_xor_32_release // Predicate_atomic_load_sub_32_release SDNode *N = Node; (void)N; if (cast(N)->getMergedOrdering() != AtomicOrdering::Release) return false; return true; } case 32: { // Predicate_atomic_load_nand_64_acq_rel // Predicate_atomic_load_nand_32_acq_rel // Predicate_atomic_swap_32_acq_rel // Predicate_atomic_load_add_32_acq_rel // Predicate_atomic_load_and_32_acq_rel // Predicate_atomic_load_or_32_acq_rel // Predicate_atomic_load_xor_32_acq_rel // Predicate_atomic_load_sub_32_acq_rel SDNode *N = Node; (void)N; if (cast(N)->getMergedOrdering() != AtomicOrdering::AcquireRelease) return false; return true; } case 33: { // Predicate_atomic_load_nand_64_seq_cst // Predicate_atomic_load_nand_32_seq_cst // Predicate_atomic_swap_32_seq_cst // Predicate_atomic_load_add_32_seq_cst // Predicate_atomic_load_and_32_seq_cst // Predicate_atomic_load_or_32_seq_cst // Predicate_atomic_load_xor_32_seq_cst // Predicate_atomic_load_sub_32_seq_cst SDNode *N = Node; (void)N; if (cast(N)->getMergedOrdering() != AtomicOrdering::SequentiallyConsistent) return false; return true; } case 34: { // Predicate_fpimm1 auto *N = cast(Node); (void)N; return N->isExactlyValue(+1.0); } case 35: { // Predicate_fma_nsz SDNode *N = Node; (void)N; return N->getFlags().hasNoSignedZeros(); } case 36: { // Predicate_fpimm0 auto *N = cast(Node); (void)N; return N->isExactlyValue(+0.0); } case 37: { // Predicate_fpimm0neg auto *N = cast(Node); (void)N; return N->isExactlyValue(-0.0); } } } #endif // GET_DAGISEL_BODY #ifdef GET_DAGISEL_DECL bool CheckComplexPattern(SDNode *Root, SDNode *Parent, SDValue N, unsigned PatternNo, SmallVectorImpl> &Result) override; #endif #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent, SDValue N, unsigned PatternNo, SmallVectorImpl> &Result) #if DAGISEL_INLINE override #endif { unsigned NextRes = Result.size(); switch (PatternNo) { default: llvm_unreachable("Invalid pattern # in table?"); case 0: Result.resize(NextRes+1); return SelectBaseAddr(N, Result[NextRes+0].first); case 1: Result.resize(NextRes+1); return selectNonFIBaseAddr(N, Result[NextRes+0].first); case 2: Result.resize(NextRes+1); return selectShiftMaskGRLen(N, Result[NextRes+0].first); case 3: Result.resize(NextRes+1); return selectShiftMask32(N, Result[NextRes+0].first); case 4: Result.resize(NextRes+1); return selectSExti32(N, Result[NextRes+0].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(V.getNode()); return CurDAG->getTargetConstant(32 - N->getZExtValue(), SDLoc(N), N->getValueType(0)); } case 1: { ConstantSDNode *N = cast(V.getNode()); return CurDAG->getTargetConstant(-N->getSExtValue(), SDLoc(N), N->getValueType(0)); } } } #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