| /*===- 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<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<2>(Imm - 1); |
| } |
| case 1: { |
| // Predicate_uimm5 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<5>(Imm); |
| } |
| case 2: { |
| // Predicate_uimm6 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<6>(Imm); |
| } |
| case 3: { |
| // Predicate_simm12 |
| int64_t Imm = cast<ConstantSDNode>(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<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false; |
| return true; |
| |
| } |
| case 6: { |
| // Predicate_sextload |
| SDNode *N = Node; |
| (void)N; |
| if (cast<LoadSDNode>(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<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false; |
| return true; |
| |
| } |
| case 8: { |
| // Predicate_extload |
| SDNode *N = Node; |
| (void)N; |
| if (cast<LoadSDNode>(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<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false; |
| return true; |
| |
| } |
| case 10: { |
| // Predicate_load |
| SDNode *N = Node; |
| (void)N; |
| if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false; |
| return true; |
| |
| } |
| case 11: { |
| // Predicate_zextload |
| SDNode *N = Node; |
| (void)N; |
| if (cast<LoadSDNode>(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<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false; |
| return true; |
| |
| } |
| case 13: { |
| // Predicate_simm14_lsl2 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isShiftedInt<14,2>(Imm); |
| } |
| case 14: { |
| // Predicate_unindexedstore |
| SDNode *N = Node; |
| (void)N; |
| if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false; |
| return true; |
| |
| } |
| case 15: { |
| // Predicate_truncstore |
| SDNode *N = Node; |
| (void)N; |
| if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false; |
| return true; |
| |
| } |
| case 16: { |
| // Predicate_truncstorei8 |
| SDNode *N = Node; |
| (void)N; |
| if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false; |
| if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false; |
| return true; |
| |
| } |
| case 17: { |
| // Predicate_truncstorei16 |
| SDNode *N = Node; |
| (void)N; |
| if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false; |
| if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false; |
| return true; |
| |
| } |
| case 18: { |
| // Predicate_truncstorei32 |
| SDNode *N = Node; |
| (void)N; |
| if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i32) return false; |
| if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false; |
| return true; |
| |
| } |
| case 19: { |
| // Predicate_store |
| SDNode *N = Node; |
| (void)N; |
| if (cast<StoreSDNode>(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<MemSDNode>(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<AtomicSDNode>(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<AtomicSDNode>(N)->getSuccessOrdering(); |
| return isReleaseOrStronger(Ordering); |
| |
| } |
| case 23: { |
| // Predicate_uimm12 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<12>(Imm); |
| } |
| case 24: { |
| // Predicate_simm16_lsl2 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isInt<16>(Imm>>2); |
| } |
| case 25: { |
| // Predicate_simm12_plus1 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return (isInt<12>(Imm) && Imm != -2048) || Imm == 2048; |
| } |
| case 26: { |
| // Predicate_uimm15 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<15>(Imm); |
| } |
| case 27: { |
| // Predicate_uimm14 |
| int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue(); |
| return isUInt<14>(Imm); |
| } |
| case 28: { |
| // Predicate_uimm2 |
| int64_t Imm = cast<ConstantSDNode>(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<AtomicSDNode>(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<AtomicSDNode>(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<AtomicSDNode>(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<AtomicSDNode>(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<AtomicSDNode>(N)->getMergedOrdering() != AtomicOrdering::SequentiallyConsistent) return false; |
| return true; |
| |
| } |
| case 34: { |
| // Predicate_fpimm1 |
| auto *N = cast<ConstantFPSDNode>(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<ConstantFPSDNode>(Node); |
| (void)N; |
| return N->isExactlyValue(+0.0); |
| } |
| case 37: { |
| // Predicate_fpimm0neg |
| auto *N = cast<ConstantFPSDNode>(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<std::pair<SDValue, SDNode *>> &Result) override; |
| #endif |
| #if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE |
| bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent, |
| SDValue N, unsigned PatternNo, |
| SmallVectorImpl<std::pair<SDValue, SDNode *>> &Result) |
| #if DAGISEL_INLINE |
| override |
| #endif |
| { |
| unsigned NextRes = Result.size(); |
| switch (PatternNo) { |
| default: llvm_unreachable("Invalid pattern # in table?"); |
| case 0: |
| Result.resize(NextRes+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<ConstantSDNode>(V.getNode()); |
| |
| return CurDAG->getTargetConstant(32 - N->getZExtValue(), SDLoc(N), |
| N->getValueType(0)); |
| |
| } |
| case 1: { |
| ConstantSDNode *N = cast<ConstantSDNode>(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 |