llvm-10.0: add configs/common and configs/linux for riscv64
Bug: b/217573066
Signed-off-by: Rebecca Chang Swee Fun <rebecca.chang@starfivetech.com>
Change-Id: Ice4e65ca943f8dd98cb858d67725d88996937d9a
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/64670
Kokoro-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/third_party/llvm-10.0/BUILD.gn b/third_party/llvm-10.0/BUILD.gn
index 94dbaa2..6c40b2c 100644
--- a/third_party/llvm-10.0/BUILD.gn
+++ b/third_party/llvm-10.0/BUILD.gn
@@ -87,6 +87,7 @@
"llvm/lib/Target/ARM/",
"llvm/lib/Target/Mips/",
"llvm/lib/Target/PowerPC/",
+ "llvm/lib/Target/RISCV/",
"llvm/lib/Target/X86/",
"configs/common/include/",
"configs/common/lib/IR/",
@@ -94,6 +95,7 @@
"configs/common/lib/Target/ARM/",
"configs/common/lib/Target/Mips/",
"configs/common/lib/Target/PowerPC/",
+ "configs/common/lib/Target/RISCV/",
"configs/common/lib/Target/X86/",
"configs/common/lib/Transforms/InstCombine/",
]
@@ -152,6 +154,8 @@
deps += [ ":swiftshader_llvm_mips" ]
} else if (current_cpu == "ppc64") {
deps += [ ":swiftshader_llvm_ppc" ]
+ } else if (current_cpu == "riscv64") {
+ deps += [ ":swiftshader_llvm_riscv64" ]
} else if (current_cpu == "x86" || current_cpu == "x64") {
deps += [ ":swiftshader_llvm_x86" ]
} else {
@@ -1314,3 +1318,39 @@
"llvm/lib/Target/X86/X86WinEHState.cpp",
]
}
+
+swiftshader_llvm_source_set("swiftshader_llvm_riscv64") {
+ sources = [
+ "llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp",
+ "llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp",
+ "llvm/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp",
+ "llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp",
+ "llvm/lib/Target/RISCV/RISCVCallLowering.cpp",
+ "llvm/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp",
+ "llvm/lib/Target/RISCV/RISCVFrameLowering.cpp",
+ "llvm/lib/Target/RISCV/RISCVInstrInfo.cpp",
+ "llvm/lib/Target/RISCV/RISCVInstructionSelector.cpp",
+ "llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp",
+ "llvm/lib/Target/RISCV/RISCVISelLowering.cpp",
+ "llvm/lib/Target/RISCV/RISCVLegalizerInfo.cpp",
+ "llvm/lib/Target/RISCV/RISCVMCInstLower.cpp",
+ "llvm/lib/Target/RISCV/RISCVMergeBaseOffset.cpp",
+ "llvm/lib/Target/RISCV/RISCVRegisterBankInfo.cpp",
+ "llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp",
+ "llvm/lib/Target/RISCV/RISCVSubtarget.cpp",
+ "llvm/lib/Target/RISCV/RISCVTargetMachine.cpp",
+ "llvm/lib/Target/RISCV/RISCVTargetObjectFile.cpp",
+ "llvm/lib/Target/RISCV/RISCVTargetTransformInfo.cpp",
+ "llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp",
+ "llvm/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp",
+ "llvm/lib/Target/RISCV/Utils/RISCVMatInt.cpp",
+ ]
+}
diff --git a/third_party/llvm-10.0/CMakeLists.txt b/third_party/llvm-10.0/CMakeLists.txt
index 4da7922..30e4d90 100644
--- a/third_party/llvm-10.0/CMakeLists.txt
+++ b/third_party/llvm-10.0/CMakeLists.txt
@@ -1126,6 +1126,40 @@
${LLVM_DIR}/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp
${LLVM_DIR}/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp
)
+elseif(ARCH STREQUAL "riscv64")
+ list(APPEND LLVM_LIST
+ ${LLVM_DIR}/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVELFStreamer.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVInstPrinter.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVMCAsmInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/MCTargetDesc/RISCVTargetStreamer.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVAsmPrinter.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVCallLowering.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVExpandPseudoInsts.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVFrameLowering.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVInstrInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVInstructionSelector.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVISelLowering.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVLegalizerInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVMCInstLower.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVMergeBaseOffset.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVRegisterBankInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVRegisterInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVSubtarget.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVTargetMachine.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVTargetObjectFile.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/RISCVTargetTransformInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/Utils/RISCVBaseInfo.cpp
+ ${LLVM_DIR}/lib/Target/RISCV/Utils/RISCVMatInt.cpp
+ )
endif()
if(REACTOR_EMIT_DEBUG_INFO)
@@ -1157,6 +1191,7 @@
${LLVM_DIR}/lib/Target/ARM
${LLVM_DIR}/lib/Target/Mips
${LLVM_DIR}/lib/Target/PowerPC
+ ${LLVM_DIR}/lib/Target/RISCV
${LLVM_DIR}/lib/Target/X86
${LLVM_CONFIG_DIR}/common/include
${LLVM_CONFIG_DIR}/common/lib/IR
@@ -1164,6 +1199,7 @@
${LLVM_CONFIG_DIR}/common/lib/Target/ARM
${LLVM_CONFIG_DIR}/common/lib/Target/Mips
${LLVM_CONFIG_DIR}/common/lib/Target/PowerPC
+ ${LLVM_CONFIG_DIR}/common/lib/Target/RISCV
${LLVM_CONFIG_DIR}/common/lib/Target/X86
${LLVM_CONFIG_DIR}/common/lib/Transforms/InstCombine
)
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmMatcher.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmMatcher.inc
new file mode 100644
index 0000000..086c441
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmMatcher.inc
@@ -0,0 +1,2861 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Assembly Matcher Source Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_ASSEMBLER_HEADER
+#undef GET_ASSEMBLER_HEADER
+ // This should be included into the middle of the declaration of
+ // your subclasses implementation of MCTargetAsmParser.
+ FeatureBitset ComputeAvailableFeatures(const FeatureBitset& FB) const;
+ void convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode,
+ const OperandVector &Operands);
+ void convertToMapAndConstraints(unsigned Kind,
+ const OperandVector &Operands) override;
+ unsigned MatchInstructionImpl(const OperandVector &Operands,
+ MCInst &Inst,
+ uint64_t &ErrorInfo,
+ FeatureBitset &MissingFeatures,
+ bool matchingInlineAsm,
+ unsigned VariantID = 0);
+ unsigned MatchInstructionImpl(const OperandVector &Operands,
+ MCInst &Inst,
+ uint64_t &ErrorInfo,
+ bool matchingInlineAsm,
+ unsigned VariantID = 0) {
+ FeatureBitset MissingFeatures;
+ return MatchInstructionImpl(Operands, Inst, ErrorInfo, MissingFeatures,
+ matchingInlineAsm, VariantID);
+ }
+
+ OperandMatchResultTy MatchOperandParserImpl(
+ OperandVector &Operands,
+ StringRef Mnemonic,
+ bool ParseForAllFeatures = false);
+ OperandMatchResultTy tryCustomParseOperand(
+ OperandVector &Operands,
+ unsigned MCK);
+
+#endif // GET_ASSEMBLER_HEADER_INFO
+
+
+#ifdef GET_OPERAND_DIAGNOSTIC_TYPES
+#undef GET_OPERAND_DIAGNOSTIC_TYPES
+
+ Match_InvalidBareSymbol,
+ Match_InvalidCLUIImm,
+ Match_InvalidCSRSystemRegister,
+ Match_InvalidCallSymbol,
+ Match_InvalidFRMArg,
+ Match_InvalidFenceArg,
+ Match_InvalidImmXLenLI,
+ Match_InvalidImmZero,
+ Match_InvalidSImm10Lsb0000NonZero,
+ Match_InvalidSImm12,
+ Match_InvalidSImm12Lsb0,
+ Match_InvalidSImm13Lsb0,
+ Match_InvalidSImm21Lsb0JAL,
+ Match_InvalidSImm6,
+ Match_InvalidSImm6NonZero,
+ Match_InvalidSImm9Lsb0,
+ Match_InvalidTPRelAddSymbol,
+ Match_InvalidUImm10Lsb00NonZero,
+ Match_InvalidUImm20AUIPC,
+ Match_InvalidUImm20LUI,
+ Match_InvalidUImm5,
+ Match_InvalidUImm7Lsb00,
+ Match_InvalidUImm8Lsb00,
+ Match_InvalidUImm8Lsb000,
+ Match_InvalidUImm9Lsb000,
+ Match_InvalidUImmLog2XLen,
+ Match_InvalidUImmLog2XLenNonZero,
+ END_OPERAND_DIAGNOSTIC_TYPES
+#endif // GET_OPERAND_DIAGNOSTIC_TYPES
+
+
+#ifdef GET_REGISTER_MATCHER
+#undef GET_REGISTER_MATCHER
+
+// Bits for subtarget features that participate in instruction matching.
+enum SubtargetFeatureBits : uint8_t {
+ Feature_HasStdExtMBit = 5,
+ Feature_HasStdExtABit = 1,
+ Feature_HasStdExtFBit = 4,
+ Feature_HasStdExtDBit = 3,
+ Feature_HasStdExtCBit = 2,
+ Feature_HasRVCHintsBit = 0,
+ Feature_IsRV64Bit = 8,
+ Feature_IsRV32Bit = 6,
+ Feature_IsRV32EBit = 7,
+};
+
+static unsigned MatchRegisterName(StringRef Name) {
+ switch (Name.size()) {
+ default: break;
+ case 2: // 30 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case 'f': // 20 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 33; // "f0"
+ case '1': // 2 strings to match.
+ return 34; // "f1"
+ case '2': // 2 strings to match.
+ return 35; // "f2"
+ case '3': // 2 strings to match.
+ return 36; // "f3"
+ case '4': // 2 strings to match.
+ return 37; // "f4"
+ case '5': // 2 strings to match.
+ return 38; // "f5"
+ case '6': // 2 strings to match.
+ return 39; // "f6"
+ case '7': // 2 strings to match.
+ return 40; // "f7"
+ case '8': // 2 strings to match.
+ return 41; // "f8"
+ case '9': // 2 strings to match.
+ return 42; // "f9"
+ }
+ break;
+ case 'x': // 10 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 1; // "x0"
+ case '1': // 1 string to match.
+ return 2; // "x1"
+ case '2': // 1 string to match.
+ return 3; // "x2"
+ case '3': // 1 string to match.
+ return 4; // "x3"
+ case '4': // 1 string to match.
+ return 5; // "x4"
+ case '5': // 1 string to match.
+ return 6; // "x5"
+ case '6': // 1 string to match.
+ return 7; // "x6"
+ case '7': // 1 string to match.
+ return 8; // "x7"
+ case '8': // 1 string to match.
+ return 9; // "x8"
+ case '9': // 1 string to match.
+ return 10; // "x9"
+ }
+ break;
+ }
+ break;
+ case 3: // 66 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case 'f': // 44 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '1': // 20 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 43; // "f10"
+ case '1': // 2 strings to match.
+ return 44; // "f11"
+ case '2': // 2 strings to match.
+ return 45; // "f12"
+ case '3': // 2 strings to match.
+ return 46; // "f13"
+ case '4': // 2 strings to match.
+ return 47; // "f14"
+ case '5': // 2 strings to match.
+ return 48; // "f15"
+ case '6': // 2 strings to match.
+ return 49; // "f16"
+ case '7': // 2 strings to match.
+ return 50; // "f17"
+ case '8': // 2 strings to match.
+ return 51; // "f18"
+ case '9': // 2 strings to match.
+ return 52; // "f19"
+ }
+ break;
+ case '2': // 20 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 53; // "f20"
+ case '1': // 2 strings to match.
+ return 54; // "f21"
+ case '2': // 2 strings to match.
+ return 55; // "f22"
+ case '3': // 2 strings to match.
+ return 56; // "f23"
+ case '4': // 2 strings to match.
+ return 57; // "f24"
+ case '5': // 2 strings to match.
+ return 58; // "f25"
+ case '6': // 2 strings to match.
+ return 59; // "f26"
+ case '7': // 2 strings to match.
+ return 60; // "f27"
+ case '8': // 2 strings to match.
+ return 61; // "f28"
+ case '9': // 2 strings to match.
+ return 62; // "f29"
+ }
+ break;
+ case '3': // 4 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 63; // "f30"
+ case '1': // 2 strings to match.
+ return 64; // "f31"
+ }
+ break;
+ }
+ break;
+ case 'x': // 22 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '1': // 10 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 11; // "x10"
+ case '1': // 1 string to match.
+ return 12; // "x11"
+ case '2': // 1 string to match.
+ return 13; // "x12"
+ case '3': // 1 string to match.
+ return 14; // "x13"
+ case '4': // 1 string to match.
+ return 15; // "x14"
+ case '5': // 1 string to match.
+ return 16; // "x15"
+ case '6': // 1 string to match.
+ return 17; // "x16"
+ case '7': // 1 string to match.
+ return 18; // "x17"
+ case '8': // 1 string to match.
+ return 19; // "x18"
+ case '9': // 1 string to match.
+ return 20; // "x19"
+ }
+ break;
+ case '2': // 10 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 21; // "x20"
+ case '1': // 1 string to match.
+ return 22; // "x21"
+ case '2': // 1 string to match.
+ return 23; // "x22"
+ case '3': // 1 string to match.
+ return 24; // "x23"
+ case '4': // 1 string to match.
+ return 25; // "x24"
+ case '5': // 1 string to match.
+ return 26; // "x25"
+ case '6': // 1 string to match.
+ return 27; // "x26"
+ case '7': // 1 string to match.
+ return 28; // "x27"
+ case '8': // 1 string to match.
+ return 29; // "x28"
+ case '9': // 1 string to match.
+ return 30; // "x29"
+ }
+ break;
+ case '3': // 2 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 31; // "x30"
+ case '1': // 1 string to match.
+ return 32; // "x31"
+ }
+ break;
+ }
+ break;
+ }
+ break;
+ }
+ return 0;
+}
+
+static unsigned MatchRegisterAltName(StringRef Name) {
+ switch (Name.size()) {
+ default: break;
+ case 2: // 30 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case 'a': // 8 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 11; // "a0"
+ case '1': // 1 string to match.
+ return 12; // "a1"
+ case '2': // 1 string to match.
+ return 13; // "a2"
+ case '3': // 1 string to match.
+ return 14; // "a3"
+ case '4': // 1 string to match.
+ return 15; // "a4"
+ case '5': // 1 string to match.
+ return 16; // "a5"
+ case '6': // 1 string to match.
+ return 17; // "a6"
+ case '7': // 1 string to match.
+ return 18; // "a7"
+ }
+ break;
+ case 'f': // 1 string to match.
+ if (Name[1] != 'p')
+ break;
+ return 9; // "fp"
+ case 'g': // 1 string to match.
+ if (Name[1] != 'p')
+ break;
+ return 4; // "gp"
+ case 'r': // 1 string to match.
+ if (Name[1] != 'a')
+ break;
+ return 2; // "ra"
+ case 's': // 11 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 9; // "s0"
+ case '1': // 1 string to match.
+ return 10; // "s1"
+ case '2': // 1 string to match.
+ return 19; // "s2"
+ case '3': // 1 string to match.
+ return 20; // "s3"
+ case '4': // 1 string to match.
+ return 21; // "s4"
+ case '5': // 1 string to match.
+ return 22; // "s5"
+ case '6': // 1 string to match.
+ return 23; // "s6"
+ case '7': // 1 string to match.
+ return 24; // "s7"
+ case '8': // 1 string to match.
+ return 25; // "s8"
+ case '9': // 1 string to match.
+ return 26; // "s9"
+ case 'p': // 1 string to match.
+ return 3; // "sp"
+ }
+ break;
+ case 't': // 8 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 6; // "t0"
+ case '1': // 1 string to match.
+ return 7; // "t1"
+ case '2': // 1 string to match.
+ return 8; // "t2"
+ case '3': // 1 string to match.
+ return 29; // "t3"
+ case '4': // 1 string to match.
+ return 30; // "t4"
+ case '5': // 1 string to match.
+ return 31; // "t5"
+ case '6': // 1 string to match.
+ return 32; // "t6"
+ case 'p': // 1 string to match.
+ return 5; // "tp"
+ }
+ break;
+ }
+ break;
+ case 3: // 58 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case 'f': // 56 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case 'a': // 16 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 43; // "fa0"
+ case '1': // 2 strings to match.
+ return 44; // "fa1"
+ case '2': // 2 strings to match.
+ return 45; // "fa2"
+ case '3': // 2 strings to match.
+ return 46; // "fa3"
+ case '4': // 2 strings to match.
+ return 47; // "fa4"
+ case '5': // 2 strings to match.
+ return 48; // "fa5"
+ case '6': // 2 strings to match.
+ return 49; // "fa6"
+ case '7': // 2 strings to match.
+ return 50; // "fa7"
+ }
+ break;
+ case 's': // 20 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 41; // "fs0"
+ case '1': // 2 strings to match.
+ return 42; // "fs1"
+ case '2': // 2 strings to match.
+ return 51; // "fs2"
+ case '3': // 2 strings to match.
+ return 52; // "fs3"
+ case '4': // 2 strings to match.
+ return 53; // "fs4"
+ case '5': // 2 strings to match.
+ return 54; // "fs5"
+ case '6': // 2 strings to match.
+ return 55; // "fs6"
+ case '7': // 2 strings to match.
+ return 56; // "fs7"
+ case '8': // 2 strings to match.
+ return 57; // "fs8"
+ case '9': // 2 strings to match.
+ return 58; // "fs9"
+ }
+ break;
+ case 't': // 20 strings to match.
+ switch (Name[2]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 33; // "ft0"
+ case '1': // 2 strings to match.
+ return 34; // "ft1"
+ case '2': // 2 strings to match.
+ return 35; // "ft2"
+ case '3': // 2 strings to match.
+ return 36; // "ft3"
+ case '4': // 2 strings to match.
+ return 37; // "ft4"
+ case '5': // 2 strings to match.
+ return 38; // "ft5"
+ case '6': // 2 strings to match.
+ return 39; // "ft6"
+ case '7': // 2 strings to match.
+ return 40; // "ft7"
+ case '8': // 2 strings to match.
+ return 61; // "ft8"
+ case '9': // 2 strings to match.
+ return 62; // "ft9"
+ }
+ break;
+ }
+ break;
+ case 's': // 2 strings to match.
+ if (Name[1] != '1')
+ break;
+ switch (Name[2]) {
+ default: break;
+ case '0': // 1 string to match.
+ return 27; // "s10"
+ case '1': // 1 string to match.
+ return 28; // "s11"
+ }
+ break;
+ }
+ break;
+ case 4: // 9 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case 'f': // 8 strings to match.
+ switch (Name[1]) {
+ default: break;
+ case 's': // 4 strings to match.
+ if (Name[2] != '1')
+ break;
+ switch (Name[3]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 59; // "fs10"
+ case '1': // 2 strings to match.
+ return 60; // "fs11"
+ }
+ break;
+ case 't': // 4 strings to match.
+ if (Name[2] != '1')
+ break;
+ switch (Name[3]) {
+ default: break;
+ case '0': // 2 strings to match.
+ return 63; // "ft10"
+ case '1': // 2 strings to match.
+ return 64; // "ft11"
+ }
+ break;
+ }
+ break;
+ case 'z': // 1 string to match.
+ if (memcmp(Name.data()+1, "ero", 3) != 0)
+ break;
+ return 1; // "zero"
+ }
+ break;
+ }
+ return 0;
+}
+
+#endif // GET_REGISTER_MATCHER
+
+
+#ifdef GET_SUBTARGET_FEATURE_NAME
+#undef GET_SUBTARGET_FEATURE_NAME
+
+// User-level names for subtarget features that participate in
+// instruction matching.
+static const char *getSubtargetFeatureName(uint64_t Val) {
+ switch(Val) {
+ case Feature_HasStdExtMBit: return "'M' (Integer Multiplication and Division)";
+ case Feature_HasStdExtABit: return "'A' (Atomic Instructions)";
+ case Feature_HasStdExtFBit: return "'F' (Single-Precision Floating-Point)";
+ case Feature_HasStdExtDBit: return "'D' (Double-Precision Floating-Point)";
+ case Feature_HasStdExtCBit: return "'C' (Compressed Instructions)";
+ case Feature_HasRVCHintsBit: return "RVC Hint Instructions";
+ case Feature_IsRV64Bit: return "RV64I Base Instruction Set";
+ case Feature_IsRV32Bit: return "RV32I Base Instruction Set";
+ case Feature_IsRV32EBit: return "";
+ default: return "(unknown)";
+ }
+}
+
+#endif // GET_SUBTARGET_FEATURE_NAME
+
+
+#ifdef GET_MATCHER_IMPLEMENTATION
+#undef GET_MATCHER_IMPLEMENTATION
+
+static void applyMnemonicAliases(StringRef &Mnemonic, const FeatureBitset &Features, unsigned VariantID) {
+ switch (VariantID) {
+ case 0:
+ switch (Mnemonic.size()) {
+ default: break;
+ case 4: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "move", 4) != 0)
+ break;
+ Mnemonic = "mv"; // "move"
+ return;
+ case 5: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "scall", 5) != 0)
+ break;
+ Mnemonic = "ecall"; // "scall"
+ return;
+ case 6: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "sbreak", 6) != 0)
+ break;
+ Mnemonic = "ebreak"; // "sbreak"
+ return;
+ case 7: // 2 strings to match.
+ if (memcmp(Mnemonic.data()+0, "fmv.", 4) != 0)
+ break;
+ switch (Mnemonic[4]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(Mnemonic.data()+5, ".x", 2) != 0)
+ break;
+ if (Features.test(Feature_HasStdExtFBit)) // "fmv.s.x"
+ Mnemonic = "fmv.w.x";
+ return;
+ case 'x': // 1 string to match.
+ if (memcmp(Mnemonic.data()+5, ".s", 2) != 0)
+ break;
+ if (Features.test(Feature_HasStdExtFBit)) // "fmv.x.s"
+ Mnemonic = "fmv.x.w";
+ return;
+ }
+ break;
+ }
+ break;
+ }
+ switch (Mnemonic.size()) {
+ default: break;
+ case 4: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "move", 4) != 0)
+ break;
+ Mnemonic = "mv"; // "move"
+ return;
+ case 5: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "scall", 5) != 0)
+ break;
+ Mnemonic = "ecall"; // "scall"
+ return;
+ case 6: // 1 string to match.
+ if (memcmp(Mnemonic.data()+0, "sbreak", 6) != 0)
+ break;
+ Mnemonic = "ebreak"; // "sbreak"
+ return;
+ case 7: // 2 strings to match.
+ if (memcmp(Mnemonic.data()+0, "fmv.", 4) != 0)
+ break;
+ switch (Mnemonic[4]) {
+ default: break;
+ case 's': // 1 string to match.
+ if (memcmp(Mnemonic.data()+5, ".x", 2) != 0)
+ break;
+ if (Features.test(Feature_HasStdExtFBit)) // "fmv.s.x"
+ Mnemonic = "fmv.w.x";
+ return;
+ case 'x': // 1 string to match.
+ if (memcmp(Mnemonic.data()+5, ".s", 2) != 0)
+ break;
+ if (Features.test(Feature_HasStdExtFBit)) // "fmv.x.s"
+ Mnemonic = "fmv.x.w";
+ return;
+ }
+ break;
+ }
+}
+
+enum {
+ Tie0_1_1,
+};
+
+static const uint8_t TiedAsmOperandTable[][3] = {
+ /* Tie0_1_1 */ { 0, 1, 1 },
+};
+
+namespace {
+enum OperatorConversionKind {
+ CVT_Done,
+ CVT_Reg,
+ CVT_Tied,
+ CVT_95_Reg,
+ CVT_95_addImmOperands,
+ CVT_95_addRegOperands,
+ CVT_regX0,
+ CVT_imm_95_0,
+ CVT_95_addCSRSystemRegisterOperands,
+ CVT_imm_95_7,
+ CVT_95_addFRMArgOperands,
+ CVT_imm_95_15,
+ CVT_95_addFenceArgOperands,
+ CVT_imm_95_3,
+ CVT_imm_95_1,
+ CVT_imm_95_2,
+ CVT_regX1,
+ CVT_imm_95__MINUS_1,
+ CVT_imm_95_3072,
+ CVT_imm_95_3200,
+ CVT_imm_95_3074,
+ CVT_imm_95_3202,
+ CVT_imm_95_3073,
+ CVT_imm_95_3201,
+ CVT_NUM_CONVERTERS
+};
+
+enum InstructionConversionKind {
+ Convert__Reg1_0__Reg1_1__Reg1_2,
+ Convert__Reg1_0__Reg1_1__SImm121_2,
+ Convert__Reg1_0__Reg1_1__Reg1_2__TPRelAddSymbol1_3,
+ Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1,
+ Convert__Reg1_0__UImm20AUIPC1_1,
+ Convert__Reg1_0__Reg1_1__SImm13Lsb01_2,
+ Convert__Reg1_0__regX0__SImm13Lsb01_1,
+ Convert__Reg1_1__Reg1_0__SImm13Lsb01_2,
+ Convert__regX0__Reg1_0__SImm13Lsb01_1,
+ Convert__Reg1_0__Tie0_1_1__Reg1_1,
+ Convert__Reg1_0__Tie0_1_1__ImmZero1_1,
+ Convert__Reg1_0__Tie0_1_1__SImm6NonZero1_1,
+ Convert__Reg1_0__Tie0_1_1__SImm10Lsb0000NonZero1_1,
+ Convert__Reg1_0__Reg1_1__UImm10Lsb00NonZero1_2,
+ Convert__Reg1_0__Tie0_1_1__SImm61_1,
+ Convert__Reg1_0__SImm9Lsb01_1,
+ Convert_NoOperands,
+ Convert__Reg1_0__Reg1_2__imm_95_0,
+ Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1,
+ Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1,
+ Convert__Reg1_0__Reg1_3__UImm7Lsb001_1,
+ Convert__Reg1_0__Reg1_3__UImm8Lsb001_1,
+ Convert__SImm12Lsb01_0,
+ Convert__Reg1_0,
+ Convert__Reg1_0__SImm61_1,
+ Convert__Reg1_0__CLUIImm1_1,
+ Convert__Reg1_0__Reg1_1,
+ Convert__SImm6NonZero1_0,
+ Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1,
+ Convert__Reg1_0__Tie0_1_1,
+ Convert__CallSymbol1_0,
+ Convert__Reg1_0__CallSymbol1_1,
+ Convert__regX0__CSRSystemRegister1_0__Reg1_1,
+ Convert__regX0__CSRSystemRegister1_0__UImm51_1,
+ Convert__Reg1_0__CSRSystemRegister1_1__regX0,
+ Convert__Reg1_0__CSRSystemRegister1_1__Reg1_2,
+ Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2,
+ Convert__Reg1_0__Reg1_1__Reg1_1,
+ Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7,
+ Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3,
+ Convert__Reg1_0__Reg1_1__imm_95_7,
+ Convert__Reg1_0__Reg1_1__FRMArg1_2,
+ Convert__imm_95_15__imm_95_15,
+ Convert__FenceArg1_0__FenceArg1_1,
+ Convert__Reg1_0__Reg1_2__Reg1_1,
+ Convert__Reg1_0__Reg1_2__BareSymbol1_1,
+ Convert__Reg1_0__Reg1_3__SImm121_1,
+ Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7,
+ Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4,
+ Convert__Reg1_0__imm_95_3__regX0,
+ Convert__Reg1_0__imm_95_1__regX0,
+ Convert__Reg1_0__imm_95_2__regX0,
+ Convert__regX0__imm_95_3__Reg1_0,
+ Convert__Reg1_0__imm_95_3__Reg1_1,
+ Convert__regX0__imm_95_1__Reg1_0,
+ Convert__Reg1_0__imm_95_1__Reg1_1,
+ Convert__regX0__imm_95_1__UImm51_0,
+ Convert__Reg1_0__imm_95_1__UImm51_1,
+ Convert__regX0__imm_95_2__Reg1_0,
+ Convert__Reg1_0__imm_95_2__Reg1_1,
+ Convert__regX0__imm_95_2__UImm51_0,
+ Convert__Reg1_0__imm_95_2__UImm51_1,
+ Convert__regX0__SImm21Lsb0JAL1_0,
+ Convert__regX1__SImm21Lsb0JAL1_0,
+ Convert__Reg1_0__SImm21Lsb0JAL1_1,
+ Convert__regX1__Reg1_0__imm_95_0,
+ Convert__Reg1_0__Reg1_1__imm_95_0,
+ Convert__regX1__Reg1_0__SImm121_1,
+ Convert__regX1__Reg1_2__SImm121_0,
+ Convert__regX0__Reg1_0__imm_95_0,
+ Convert__regX0__Reg1_0__SImm121_1,
+ Convert__regX0__Reg1_2__SImm121_0,
+ Convert__Reg1_0__BareSymbol1_1,
+ Convert__Reg1_0__ImmXLenLI1_1,
+ Convert__Reg1_0__AtomicMemOpOperand1_1,
+ Convert__Reg1_0__UImm20LUI1_1,
+ Convert__imm_95_0__imm_95_0,
+ Convert__Reg1_0__regX0__Reg1_1,
+ Convert__regX0__regX0__imm_95_0,
+ Convert__Reg1_0__Reg1_1__imm_95__MINUS_1,
+ Convert__Reg1_0__imm_95_3072__regX0,
+ Convert__Reg1_0__imm_95_3200__regX0,
+ Convert__Reg1_0__imm_95_3074__regX0,
+ Convert__Reg1_0__imm_95_3202__regX0,
+ Convert__Reg1_0__imm_95_3073__regX0,
+ Convert__Reg1_0__imm_95_3201__regX0,
+ Convert__regX0__regX1__imm_95_0,
+ Convert__Reg1_0__Reg1_1__imm_95_1,
+ Convert__regX0__regX0,
+ Convert__Reg1_0__regX0,
+ Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2,
+ Convert__Reg1_0__Reg1_1__UImm51_2,
+ Convert__Reg1_0__Reg1_1__regX0,
+ CVT_NUM_SIGNATURES
+};
+
+} // end anonymous namespace
+
+static const uint8_t ConversionTable[CVT_NUM_SIGNATURES][11] = {
+ // Convert__Reg1_0__Reg1_1__Reg1_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__SImm121_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_2__TPRelAddSymbol1_3
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addImmOperands, 4, CVT_Done },
+ // Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1
+ { CVT_95_Reg, 1, CVT_95_addRegOperands, 3, CVT_95_Reg, 2, CVT_Done },
+ // Convert__Reg1_0__UImm20AUIPC1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__SImm13Lsb01_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__regX0__SImm13Lsb01_1
+ { CVT_95_Reg, 1, CVT_regX0, 0, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_1__Reg1_0__SImm13Lsb01_2
+ { CVT_95_Reg, 2, CVT_95_Reg, 1, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__regX0__Reg1_0__SImm13Lsb01_1
+ { CVT_regX0, 0, CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__Reg1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_Reg, 2, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__ImmZero1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__SImm6NonZero1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__SImm10Lsb0000NonZero1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__UImm10Lsb00NonZero1_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__SImm61_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__SImm9Lsb01_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert_NoOperands
+ { CVT_Done },
+ // Convert__Reg1_0__Reg1_2__imm_95_0
+ { CVT_95_Reg, 1, CVT_95_Reg, 3, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 4, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 4, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_3__UImm7Lsb001_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 4, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_3__UImm8Lsb001_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 4, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__SImm12Lsb01_0
+ { CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0
+ { CVT_95_Reg, 1, CVT_Done },
+ // Convert__Reg1_0__SImm61_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__CLUIImm1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_Done },
+ // Convert__SImm6NonZero1_0
+ { CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Tie0_1_1
+ { CVT_95_Reg, 1, CVT_Tied, Tie0_1_1, CVT_Done },
+ // Convert__CallSymbol1_0
+ { CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__CallSymbol1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX0__CSRSystemRegister1_0__Reg1_1
+ { CVT_regX0, 0, CVT_95_addCSRSystemRegisterOperands, 1, CVT_95_Reg, 2, CVT_Done },
+ // Convert__regX0__CSRSystemRegister1_0__UImm51_1
+ { CVT_regX0, 0, CVT_95_addCSRSystemRegisterOperands, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__CSRSystemRegister1_1__regX0
+ { CVT_95_Reg, 1, CVT_95_addCSRSystemRegisterOperands, 2, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__CSRSystemRegister1_1__Reg1_2
+ { CVT_95_Reg, 1, CVT_95_addCSRSystemRegisterOperands, 2, CVT_95_Reg, 3, CVT_Done },
+ // Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2
+ { CVT_95_Reg, 1, CVT_95_addCSRSystemRegisterOperands, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_imm_95_7, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_addFRMArgOperands, 4, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__imm_95_7
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_imm_95_7, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__FRMArg1_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addFRMArgOperands, 3, CVT_Done },
+ // Convert__imm_95_15__imm_95_15
+ { CVT_imm_95_15, 0, CVT_imm_95_15, 0, CVT_Done },
+ // Convert__FenceArg1_0__FenceArg1_1
+ { CVT_95_addFenceArgOperands, 1, CVT_95_addFenceArgOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_2__Reg1_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 3, CVT_95_Reg, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_2__BareSymbol1_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 3, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_3__SImm121_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 4, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_Reg, 4, CVT_imm_95_7, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_Reg, 3, CVT_95_Reg, 4, CVT_95_addFRMArgOperands, 5, CVT_Done },
+ // Convert__Reg1_0__imm_95_3__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_1__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_1, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_2__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_2, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__regX0__imm_95_3__Reg1_0
+ { CVT_regX0, 0, CVT_imm_95_3, 0, CVT_95_Reg, 1, CVT_Done },
+ // Convert__Reg1_0__imm_95_3__Reg1_1
+ { CVT_95_Reg, 1, CVT_imm_95_3, 0, CVT_95_Reg, 2, CVT_Done },
+ // Convert__regX0__imm_95_1__Reg1_0
+ { CVT_regX0, 0, CVT_imm_95_1, 0, CVT_95_Reg, 1, CVT_Done },
+ // Convert__Reg1_0__imm_95_1__Reg1_1
+ { CVT_95_Reg, 1, CVT_imm_95_1, 0, CVT_95_Reg, 2, CVT_Done },
+ // Convert__regX0__imm_95_1__UImm51_0
+ { CVT_regX0, 0, CVT_imm_95_1, 0, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__imm_95_1__UImm51_1
+ { CVT_95_Reg, 1, CVT_imm_95_1, 0, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX0__imm_95_2__Reg1_0
+ { CVT_regX0, 0, CVT_imm_95_2, 0, CVT_95_Reg, 1, CVT_Done },
+ // Convert__Reg1_0__imm_95_2__Reg1_1
+ { CVT_95_Reg, 1, CVT_imm_95_2, 0, CVT_95_Reg, 2, CVT_Done },
+ // Convert__regX0__imm_95_2__UImm51_0
+ { CVT_regX0, 0, CVT_imm_95_2, 0, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__imm_95_2__UImm51_1
+ { CVT_95_Reg, 1, CVT_imm_95_2, 0, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX0__SImm21Lsb0JAL1_0
+ { CVT_regX0, 0, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__regX1__SImm21Lsb0JAL1_0
+ { CVT_regX1, 0, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__SImm21Lsb0JAL1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX1__Reg1_0__imm_95_0
+ { CVT_regX1, 0, CVT_95_Reg, 1, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__imm_95_0
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__regX1__Reg1_0__SImm121_1
+ { CVT_regX1, 0, CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX1__Reg1_2__SImm121_0
+ { CVT_regX1, 0, CVT_95_Reg, 3, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__regX0__Reg1_0__imm_95_0
+ { CVT_regX0, 0, CVT_95_Reg, 1, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__regX0__Reg1_0__SImm121_1
+ { CVT_regX0, 0, CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__regX0__Reg1_2__SImm121_0
+ { CVT_regX0, 0, CVT_95_Reg, 3, CVT_95_addImmOperands, 1, CVT_Done },
+ // Convert__Reg1_0__BareSymbol1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__ImmXLenLI1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__Reg1_0__AtomicMemOpOperand1_1
+ { CVT_95_Reg, 1, CVT_95_addRegOperands, 2, CVT_Done },
+ // Convert__Reg1_0__UImm20LUI1_1
+ { CVT_95_Reg, 1, CVT_95_addImmOperands, 2, CVT_Done },
+ // Convert__imm_95_0__imm_95_0
+ { CVT_imm_95_0, 0, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__Reg1_0__regX0__Reg1_1
+ { CVT_95_Reg, 1, CVT_regX0, 0, CVT_95_Reg, 2, CVT_Done },
+ // Convert__regX0__regX0__imm_95_0
+ { CVT_regX0, 0, CVT_regX0, 0, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__imm_95__MINUS_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_imm_95__MINUS_1, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3072__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3072, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3200__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3200, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3074__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3074, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3202__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3202, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3073__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3073, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__imm_95_3201__regX0
+ { CVT_95_Reg, 1, CVT_imm_95_3201, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__regX0__regX1__imm_95_0
+ { CVT_regX0, 0, CVT_regX1, 0, CVT_imm_95_0, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__imm_95_1
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_imm_95_1, 0, CVT_Done },
+ // Convert__regX0__regX0
+ { CVT_regX0, 0, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__regX0
+ { CVT_95_Reg, 1, CVT_regX0, 0, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__UImm51_2
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_95_addImmOperands, 3, CVT_Done },
+ // Convert__Reg1_0__Reg1_1__regX0
+ { CVT_95_Reg, 1, CVT_95_Reg, 2, CVT_regX0, 0, CVT_Done },
+};
+
+void RISCVAsmParser::
+convertToMCInst(unsigned Kind, MCInst &Inst, unsigned Opcode,
+ const OperandVector &Operands) {
+ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!");
+ const uint8_t *Converter = ConversionTable[Kind];
+ unsigned OpIdx;
+ Inst.setOpcode(Opcode);
+ for (const uint8_t *p = Converter; *p; p+= 2) {
+ OpIdx = *(p + 1);
+ switch (*p) {
+ default: llvm_unreachable("invalid conversion entry!");
+ case CVT_Reg:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addRegOperands(Inst, 1);
+ break;
+ case CVT_Tied: {
+ assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -
+ std::begin(TiedAsmOperandTable)) &&
+ "Tied operand not found");
+ unsigned TiedResOpnd = TiedAsmOperandTable[OpIdx][0];
+ if (TiedResOpnd != (uint8_t) -1)
+ Inst.addOperand(Inst.getOperand(TiedResOpnd));
+ break;
+ }
+ case CVT_95_Reg:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addRegOperands(Inst, 1);
+ break;
+ case CVT_95_addImmOperands:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addImmOperands(Inst, 1);
+ break;
+ case CVT_95_addRegOperands:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addRegOperands(Inst, 1);
+ break;
+ case CVT_regX0:
+ Inst.addOperand(MCOperand::createReg(RISCV::X0));
+ break;
+ case CVT_imm_95_0:
+ Inst.addOperand(MCOperand::createImm(0));
+ break;
+ case CVT_95_addCSRSystemRegisterOperands:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addCSRSystemRegisterOperands(Inst, 1);
+ break;
+ case CVT_imm_95_7:
+ Inst.addOperand(MCOperand::createImm(7));
+ break;
+ case CVT_95_addFRMArgOperands:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addFRMArgOperands(Inst, 1);
+ break;
+ case CVT_imm_95_15:
+ Inst.addOperand(MCOperand::createImm(15));
+ break;
+ case CVT_95_addFenceArgOperands:
+ static_cast<RISCVOperand&>(*Operands[OpIdx]).addFenceArgOperands(Inst, 1);
+ break;
+ case CVT_imm_95_3:
+ Inst.addOperand(MCOperand::createImm(3));
+ break;
+ case CVT_imm_95_1:
+ Inst.addOperand(MCOperand::createImm(1));
+ break;
+ case CVT_imm_95_2:
+ Inst.addOperand(MCOperand::createImm(2));
+ break;
+ case CVT_regX1:
+ Inst.addOperand(MCOperand::createReg(RISCV::X1));
+ break;
+ case CVT_imm_95__MINUS_1:
+ Inst.addOperand(MCOperand::createImm(-1));
+ break;
+ case CVT_imm_95_3072:
+ Inst.addOperand(MCOperand::createImm(3072));
+ break;
+ case CVT_imm_95_3200:
+ Inst.addOperand(MCOperand::createImm(3200));
+ break;
+ case CVT_imm_95_3074:
+ Inst.addOperand(MCOperand::createImm(3074));
+ break;
+ case CVT_imm_95_3202:
+ Inst.addOperand(MCOperand::createImm(3202));
+ break;
+ case CVT_imm_95_3073:
+ Inst.addOperand(MCOperand::createImm(3073));
+ break;
+ case CVT_imm_95_3201:
+ Inst.addOperand(MCOperand::createImm(3201));
+ break;
+ }
+ }
+}
+
+void RISCVAsmParser::
+convertToMapAndConstraints(unsigned Kind,
+ const OperandVector &Operands) {
+ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!");
+ unsigned NumMCOperands = 0;
+ const uint8_t *Converter = ConversionTable[Kind];
+ for (const uint8_t *p = Converter; *p; p+= 2) {
+ switch (*p) {
+ default: llvm_unreachable("invalid conversion entry!");
+ case CVT_Reg:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("r");
+ ++NumMCOperands;
+ break;
+ case CVT_Tied:
+ ++NumMCOperands;
+ break;
+ case CVT_95_Reg:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("r");
+ NumMCOperands += 1;
+ break;
+ case CVT_95_addImmOperands:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ NumMCOperands += 1;
+ break;
+ case CVT_95_addRegOperands:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ NumMCOperands += 1;
+ break;
+ case CVT_regX0:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_0:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_95_addCSRSystemRegisterOperands:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ NumMCOperands += 1;
+ break;
+ case CVT_imm_95_7:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_95_addFRMArgOperands:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ NumMCOperands += 1;
+ break;
+ case CVT_imm_95_15:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_95_addFenceArgOperands:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ NumMCOperands += 1;
+ break;
+ case CVT_imm_95_3:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_1:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_2:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_regX1:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("m");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95__MINUS_1:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3072:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3200:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3074:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3202:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3073:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ case CVT_imm_95_3201:
+ Operands[*(p + 1)]->setMCOperandNum(NumMCOperands);
+ Operands[*(p + 1)]->setConstraint("");
+ ++NumMCOperands;
+ break;
+ }
+ }
+}
+
+namespace {
+
+/// MatchClassKind - The kinds of classes which participate in
+/// instruction matching.
+enum MatchClassKind {
+ InvalidMatchClass = 0,
+ OptionalMatchClass = 1,
+ MCK__40_, // '('
+ MCK__41_, // ')'
+ MCK_LAST_TOKEN = MCK__41_,
+ MCK_GPRX0, // register class 'GPRX0'
+ MCK_SP, // register class 'SP'
+ MCK_Reg7, // derived register class
+ MCK_FPR32C, // register class 'FPR32C'
+ MCK_FPR64C, // register class 'FPR64C'
+ MCK_GPRC, // register class 'GPRC'
+ MCK_GPRTC, // register class 'GPRTC'
+ MCK_GPRNoX0X2, // register class 'GPRNoX0X2'
+ MCK_GPRNoX0, // register class 'GPRNoX0'
+ MCK_FPR32, // register class 'FPR32'
+ MCK_FPR64, // register class 'FPR64'
+ MCK_GPR, // register class 'GPR'
+ MCK_LAST_REGISTER = MCK_GPR,
+ MCK_AtomicMemOpOperand, // user defined class 'AtomicMemOpOperand'
+ MCK_BareSymbol, // user defined class 'BareSymbol'
+ MCK_CLUIImm, // user defined class 'CLUIImmAsmOperand'
+ MCK_CSRSystemRegister, // user defined class 'CSRSystemRegister'
+ MCK_CallSymbol, // user defined class 'CallSymbol'
+ MCK_FRMArg, // user defined class 'FRMArg'
+ MCK_FenceArg, // user defined class 'FenceArg'
+ MCK_Imm, // user defined class 'ImmAsmOperand'
+ MCK_ImmZero, // user defined class 'ImmZeroAsmOperand'
+ MCK_SImm21Lsb0JAL, // user defined class 'Simm21Lsb0JALAsmOperand'
+ MCK_TPRelAddSymbol, // user defined class 'TPRelAddSymbol'
+ MCK_UImmLog2XLen, // user defined class 'UImmLog2XLenAsmOperand'
+ MCK_UImmLog2XLenNonZero, // user defined class 'UImmLog2XLenNonZeroAsmOperand'
+ MCK_UImm5, // user defined class 'anonymous_2450'
+ MCK_SImm12, // user defined class 'anonymous_2451'
+ MCK_SImm13Lsb0, // user defined class 'anonymous_2452'
+ MCK_UImm20LUI, // user defined class 'anonymous_2453'
+ MCK_UImm20AUIPC, // user defined class 'anonymous_2454'
+ MCK_ImmXLenLI, // user defined class 'anonymous_2455'
+ MCK_SImm6, // user defined class 'anonymous_3109'
+ MCK_SImm6NonZero, // user defined class 'anonymous_3110'
+ MCK_UImm7Lsb00, // user defined class 'anonymous_3111'
+ MCK_UImm8Lsb00, // user defined class 'anonymous_3112'
+ MCK_UImm8Lsb000, // user defined class 'anonymous_3113'
+ MCK_SImm9Lsb0, // user defined class 'anonymous_3114'
+ MCK_UImm9Lsb000, // user defined class 'anonymous_3115'
+ MCK_UImm10Lsb00NonZero, // user defined class 'anonymous_3116'
+ MCK_SImm10Lsb0000NonZero, // user defined class 'anonymous_3117'
+ MCK_SImm12Lsb0, // user defined class 'anonymous_3118'
+ NumMatchClassKinds
+};
+
+} // end anonymous namespace
+
+static unsigned getDiagKindFromRegisterClass(MatchClassKind RegisterClass) {
+ return MCTargetAsmParser::Match_InvalidOperand;
+}
+
+static MatchClassKind matchTokenString(StringRef Name) {
+ switch (Name.size()) {
+ default: break;
+ case 1: // 2 strings to match.
+ switch (Name[0]) {
+ default: break;
+ case '(': // 1 string to match.
+ return MCK__40_; // "("
+ case ')': // 1 string to match.
+ return MCK__41_; // ")"
+ }
+ break;
+ }
+ return InvalidMatchClass;
+}
+
+/// isSubclass - Compute whether \p A is a subclass of \p B.
+static bool isSubclass(MatchClassKind A, MatchClassKind B) {
+ if (A == B)
+ return true;
+
+ switch (A) {
+ default:
+ return false;
+
+ case MCK_GPRX0:
+ return B == MCK_GPR;
+
+ case MCK_SP:
+ switch (B) {
+ default: return false;
+ case MCK_GPRNoX0: return true;
+ case MCK_GPR: return true;
+ }
+
+ case MCK_Reg7:
+ switch (B) {
+ default: return false;
+ case MCK_GPRC: return true;
+ case MCK_GPRTC: return true;
+ case MCK_GPRNoX0X2: return true;
+ case MCK_GPRNoX0: return true;
+ case MCK_GPR: return true;
+ }
+
+ case MCK_FPR32C:
+ return B == MCK_FPR32;
+
+ case MCK_FPR64C:
+ return B == MCK_FPR64;
+
+ case MCK_GPRC:
+ switch (B) {
+ default: return false;
+ case MCK_GPRNoX0X2: return true;
+ case MCK_GPRNoX0: return true;
+ case MCK_GPR: return true;
+ }
+
+ case MCK_GPRTC:
+ switch (B) {
+ default: return false;
+ case MCK_GPRNoX0X2: return true;
+ case MCK_GPRNoX0: return true;
+ case MCK_GPR: return true;
+ }
+
+ case MCK_GPRNoX0X2:
+ switch (B) {
+ default: return false;
+ case MCK_GPRNoX0: return true;
+ case MCK_GPR: return true;
+ }
+
+ case MCK_GPRNoX0:
+ return B == MCK_GPR;
+ }
+}
+
+static unsigned validateOperandClass(MCParsedAsmOperand &GOp, MatchClassKind Kind) {
+ RISCVOperand &Operand = (RISCVOperand&)GOp;
+ if (Kind == InvalidMatchClass)
+ return MCTargetAsmParser::Match_InvalidOperand;
+
+ if (Operand.isToken() && Kind <= MCK_LAST_TOKEN)
+ return isSubclass(matchTokenString(Operand.getToken()), Kind) ?
+ MCTargetAsmParser::Match_Success :
+ MCTargetAsmParser::Match_InvalidOperand;
+
+ switch (Kind) {
+ default: break;
+ // 'AtomicMemOpOperand' class
+ case MCK_AtomicMemOpOperand: {
+ DiagnosticPredicate DP(Operand.isGPR());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ break;
+ }
+ // 'BareSymbol' class
+ case MCK_BareSymbol: {
+ DiagnosticPredicate DP(Operand.isBareSymbol());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidBareSymbol;
+ break;
+ }
+ // 'CLUIImm' class
+ case MCK_CLUIImm: {
+ DiagnosticPredicate DP(Operand.isCLUIImm());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidCLUIImm;
+ break;
+ }
+ // 'CSRSystemRegister' class
+ case MCK_CSRSystemRegister: {
+ DiagnosticPredicate DP(Operand.isCSRSystemRegister());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidCSRSystemRegister;
+ break;
+ }
+ // 'CallSymbol' class
+ case MCK_CallSymbol: {
+ DiagnosticPredicate DP(Operand.isCallSymbol());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidCallSymbol;
+ break;
+ }
+ // 'FRMArg' class
+ case MCK_FRMArg: {
+ DiagnosticPredicate DP(Operand.isFRMArg());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidFRMArg;
+ break;
+ }
+ // 'FenceArg' class
+ case MCK_FenceArg: {
+ DiagnosticPredicate DP(Operand.isFenceArg());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidFenceArg;
+ break;
+ }
+ // 'Imm' class
+ case MCK_Imm: {
+ DiagnosticPredicate DP(Operand.isImm());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ break;
+ }
+ // 'ImmZero' class
+ case MCK_ImmZero: {
+ DiagnosticPredicate DP(Operand.isImmZero());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidImmZero;
+ break;
+ }
+ // 'SImm21Lsb0JAL' class
+ case MCK_SImm21Lsb0JAL: {
+ DiagnosticPredicate DP(Operand.isSImm21Lsb0JAL());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm21Lsb0JAL;
+ break;
+ }
+ // 'TPRelAddSymbol' class
+ case MCK_TPRelAddSymbol: {
+ DiagnosticPredicate DP(Operand.isTPRelAddSymbol());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidTPRelAddSymbol;
+ break;
+ }
+ // 'UImmLog2XLen' class
+ case MCK_UImmLog2XLen: {
+ DiagnosticPredicate DP(Operand.isUImmLog2XLen());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImmLog2XLen;
+ break;
+ }
+ // 'UImmLog2XLenNonZero' class
+ case MCK_UImmLog2XLenNonZero: {
+ DiagnosticPredicate DP(Operand.isUImmLog2XLenNonZero());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImmLog2XLenNonZero;
+ break;
+ }
+ // 'UImm5' class
+ case MCK_UImm5: {
+ DiagnosticPredicate DP(Operand.isUImm5());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm5;
+ break;
+ }
+ // 'SImm12' class
+ case MCK_SImm12: {
+ DiagnosticPredicate DP(Operand.isSImm12());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm12;
+ break;
+ }
+ // 'SImm13Lsb0' class
+ case MCK_SImm13Lsb0: {
+ DiagnosticPredicate DP(Operand.isSImm13Lsb0());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm13Lsb0;
+ break;
+ }
+ // 'UImm20LUI' class
+ case MCK_UImm20LUI: {
+ DiagnosticPredicate DP(Operand.isUImm20LUI());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm20LUI;
+ break;
+ }
+ // 'UImm20AUIPC' class
+ case MCK_UImm20AUIPC: {
+ DiagnosticPredicate DP(Operand.isUImm20AUIPC());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm20AUIPC;
+ break;
+ }
+ // 'ImmXLenLI' class
+ case MCK_ImmXLenLI: {
+ DiagnosticPredicate DP(Operand.isImmXLenLI());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidImmXLenLI;
+ break;
+ }
+ // 'SImm6' class
+ case MCK_SImm6: {
+ DiagnosticPredicate DP(Operand.isSImm6());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm6;
+ break;
+ }
+ // 'SImm6NonZero' class
+ case MCK_SImm6NonZero: {
+ DiagnosticPredicate DP(Operand.isSImm6NonZero());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm6NonZero;
+ break;
+ }
+ // 'UImm7Lsb00' class
+ case MCK_UImm7Lsb00: {
+ DiagnosticPredicate DP(Operand.isUImm7Lsb00());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm7Lsb00;
+ break;
+ }
+ // 'UImm8Lsb00' class
+ case MCK_UImm8Lsb00: {
+ DiagnosticPredicate DP(Operand.isUImm8Lsb00());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm8Lsb00;
+ break;
+ }
+ // 'UImm8Lsb000' class
+ case MCK_UImm8Lsb000: {
+ DiagnosticPredicate DP(Operand.isUImm8Lsb000());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm8Lsb000;
+ break;
+ }
+ // 'SImm9Lsb0' class
+ case MCK_SImm9Lsb0: {
+ DiagnosticPredicate DP(Operand.isSImm9Lsb0());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm9Lsb0;
+ break;
+ }
+ // 'UImm9Lsb000' class
+ case MCK_UImm9Lsb000: {
+ DiagnosticPredicate DP(Operand.isUImm9Lsb000());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm9Lsb000;
+ break;
+ }
+ // 'UImm10Lsb00NonZero' class
+ case MCK_UImm10Lsb00NonZero: {
+ DiagnosticPredicate DP(Operand.isUImm10Lsb00NonZero());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidUImm10Lsb00NonZero;
+ break;
+ }
+ // 'SImm10Lsb0000NonZero' class
+ case MCK_SImm10Lsb0000NonZero: {
+ DiagnosticPredicate DP(Operand.isSImm10Lsb0000NonZero());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm10Lsb0000NonZero;
+ break;
+ }
+ // 'SImm12Lsb0' class
+ case MCK_SImm12Lsb0: {
+ DiagnosticPredicate DP(Operand.isSImm12Lsb0());
+ if (DP.isMatch())
+ return MCTargetAsmParser::Match_Success;
+ if (DP.isNearMatch())
+ return RISCVAsmParser::Match_InvalidSImm12Lsb0;
+ break;
+ }
+ } // end switch (Kind)
+
+ if (Operand.isReg()) {
+ MatchClassKind OpKind;
+ switch (Operand.getReg()) {
+ default: OpKind = InvalidMatchClass; break;
+ case RISCV::X0: OpKind = MCK_GPRX0; break;
+ case RISCV::X1: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X2: OpKind = MCK_SP; break;
+ case RISCV::X3: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X4: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X5: OpKind = MCK_GPRTC; break;
+ case RISCV::X6: OpKind = MCK_GPRTC; break;
+ case RISCV::X7: OpKind = MCK_GPRTC; break;
+ case RISCV::X8: OpKind = MCK_GPRC; break;
+ case RISCV::X9: OpKind = MCK_GPRC; break;
+ case RISCV::X10: OpKind = MCK_Reg7; break;
+ case RISCV::X11: OpKind = MCK_Reg7; break;
+ case RISCV::X12: OpKind = MCK_Reg7; break;
+ case RISCV::X13: OpKind = MCK_Reg7; break;
+ case RISCV::X14: OpKind = MCK_Reg7; break;
+ case RISCV::X15: OpKind = MCK_Reg7; break;
+ case RISCV::X16: OpKind = MCK_GPRTC; break;
+ case RISCV::X17: OpKind = MCK_GPRTC; break;
+ case RISCV::X18: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X19: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X20: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X21: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X22: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X23: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X24: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X25: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X26: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X27: OpKind = MCK_GPRNoX0X2; break;
+ case RISCV::X28: OpKind = MCK_GPRTC; break;
+ case RISCV::X29: OpKind = MCK_GPRTC; break;
+ case RISCV::X30: OpKind = MCK_GPRTC; break;
+ case RISCV::X31: OpKind = MCK_GPRTC; break;
+ case RISCV::F0_F: OpKind = MCK_FPR32; break;
+ case RISCV::F1_F: OpKind = MCK_FPR32; break;
+ case RISCV::F2_F: OpKind = MCK_FPR32; break;
+ case RISCV::F3_F: OpKind = MCK_FPR32; break;
+ case RISCV::F4_F: OpKind = MCK_FPR32; break;
+ case RISCV::F5_F: OpKind = MCK_FPR32; break;
+ case RISCV::F6_F: OpKind = MCK_FPR32; break;
+ case RISCV::F7_F: OpKind = MCK_FPR32; break;
+ case RISCV::F8_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F9_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F10_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F11_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F12_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F13_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F14_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F15_F: OpKind = MCK_FPR32C; break;
+ case RISCV::F16_F: OpKind = MCK_FPR32; break;
+ case RISCV::F17_F: OpKind = MCK_FPR32; break;
+ case RISCV::F18_F: OpKind = MCK_FPR32; break;
+ case RISCV::F19_F: OpKind = MCK_FPR32; break;
+ case RISCV::F20_F: OpKind = MCK_FPR32; break;
+ case RISCV::F21_F: OpKind = MCK_FPR32; break;
+ case RISCV::F22_F: OpKind = MCK_FPR32; break;
+ case RISCV::F23_F: OpKind = MCK_FPR32; break;
+ case RISCV::F24_F: OpKind = MCK_FPR32; break;
+ case RISCV::F25_F: OpKind = MCK_FPR32; break;
+ case RISCV::F26_F: OpKind = MCK_FPR32; break;
+ case RISCV::F27_F: OpKind = MCK_FPR32; break;
+ case RISCV::F28_F: OpKind = MCK_FPR32; break;
+ case RISCV::F29_F: OpKind = MCK_FPR32; break;
+ case RISCV::F30_F: OpKind = MCK_FPR32; break;
+ case RISCV::F31_F: OpKind = MCK_FPR32; break;
+ case RISCV::F0_D: OpKind = MCK_FPR64; break;
+ case RISCV::F1_D: OpKind = MCK_FPR64; break;
+ case RISCV::F2_D: OpKind = MCK_FPR64; break;
+ case RISCV::F3_D: OpKind = MCK_FPR64; break;
+ case RISCV::F4_D: OpKind = MCK_FPR64; break;
+ case RISCV::F5_D: OpKind = MCK_FPR64; break;
+ case RISCV::F6_D: OpKind = MCK_FPR64; break;
+ case RISCV::F7_D: OpKind = MCK_FPR64; break;
+ case RISCV::F8_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F9_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F10_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F11_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F12_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F13_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F14_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F15_D: OpKind = MCK_FPR64C; break;
+ case RISCV::F16_D: OpKind = MCK_FPR64; break;
+ case RISCV::F17_D: OpKind = MCK_FPR64; break;
+ case RISCV::F18_D: OpKind = MCK_FPR64; break;
+ case RISCV::F19_D: OpKind = MCK_FPR64; break;
+ case RISCV::F20_D: OpKind = MCK_FPR64; break;
+ case RISCV::F21_D: OpKind = MCK_FPR64; break;
+ case RISCV::F22_D: OpKind = MCK_FPR64; break;
+ case RISCV::F23_D: OpKind = MCK_FPR64; break;
+ case RISCV::F24_D: OpKind = MCK_FPR64; break;
+ case RISCV::F25_D: OpKind = MCK_FPR64; break;
+ case RISCV::F26_D: OpKind = MCK_FPR64; break;
+ case RISCV::F27_D: OpKind = MCK_FPR64; break;
+ case RISCV::F28_D: OpKind = MCK_FPR64; break;
+ case RISCV::F29_D: OpKind = MCK_FPR64; break;
+ case RISCV::F30_D: OpKind = MCK_FPR64; break;
+ case RISCV::F31_D: OpKind = MCK_FPR64; break;
+ }
+ return isSubclass(OpKind, Kind) ? (unsigned)MCTargetAsmParser::Match_Success :
+ getDiagKindFromRegisterClass(Kind);
+ }
+
+ if (Kind > MCK_LAST_TOKEN && Kind <= MCK_LAST_REGISTER)
+ return getDiagKindFromRegisterClass(Kind);
+
+ return MCTargetAsmParser::Match_InvalidOperand;
+}
+
+#ifndef NDEBUG
+const char *getMatchClassName(MatchClassKind Kind) {
+ switch (Kind) {
+ case InvalidMatchClass: return "InvalidMatchClass";
+ case OptionalMatchClass: return "OptionalMatchClass";
+ case MCK__40_: return "MCK__40_";
+ case MCK__41_: return "MCK__41_";
+ case MCK_GPRX0: return "MCK_GPRX0";
+ case MCK_SP: return "MCK_SP";
+ case MCK_Reg7: return "MCK_Reg7";
+ case MCK_FPR32C: return "MCK_FPR32C";
+ case MCK_FPR64C: return "MCK_FPR64C";
+ case MCK_GPRC: return "MCK_GPRC";
+ case MCK_GPRTC: return "MCK_GPRTC";
+ case MCK_GPRNoX0X2: return "MCK_GPRNoX0X2";
+ case MCK_GPRNoX0: return "MCK_GPRNoX0";
+ case MCK_FPR32: return "MCK_FPR32";
+ case MCK_FPR64: return "MCK_FPR64";
+ case MCK_GPR: return "MCK_GPR";
+ case MCK_AtomicMemOpOperand: return "MCK_AtomicMemOpOperand";
+ case MCK_BareSymbol: return "MCK_BareSymbol";
+ case MCK_CLUIImm: return "MCK_CLUIImm";
+ case MCK_CSRSystemRegister: return "MCK_CSRSystemRegister";
+ case MCK_CallSymbol: return "MCK_CallSymbol";
+ case MCK_FRMArg: return "MCK_FRMArg";
+ case MCK_FenceArg: return "MCK_FenceArg";
+ case MCK_Imm: return "MCK_Imm";
+ case MCK_ImmZero: return "MCK_ImmZero";
+ case MCK_SImm21Lsb0JAL: return "MCK_SImm21Lsb0JAL";
+ case MCK_TPRelAddSymbol: return "MCK_TPRelAddSymbol";
+ case MCK_UImmLog2XLen: return "MCK_UImmLog2XLen";
+ case MCK_UImmLog2XLenNonZero: return "MCK_UImmLog2XLenNonZero";
+ case MCK_UImm5: return "MCK_UImm5";
+ case MCK_SImm12: return "MCK_SImm12";
+ case MCK_SImm13Lsb0: return "MCK_SImm13Lsb0";
+ case MCK_UImm20LUI: return "MCK_UImm20LUI";
+ case MCK_UImm20AUIPC: return "MCK_UImm20AUIPC";
+ case MCK_ImmXLenLI: return "MCK_ImmXLenLI";
+ case MCK_SImm6: return "MCK_SImm6";
+ case MCK_SImm6NonZero: return "MCK_SImm6NonZero";
+ case MCK_UImm7Lsb00: return "MCK_UImm7Lsb00";
+ case MCK_UImm8Lsb00: return "MCK_UImm8Lsb00";
+ case MCK_UImm8Lsb000: return "MCK_UImm8Lsb000";
+ case MCK_SImm9Lsb0: return "MCK_SImm9Lsb0";
+ case MCK_UImm9Lsb000: return "MCK_UImm9Lsb000";
+ case MCK_UImm10Lsb00NonZero: return "MCK_UImm10Lsb00NonZero";
+ case MCK_SImm10Lsb0000NonZero: return "MCK_SImm10Lsb0000NonZero";
+ case MCK_SImm12Lsb0: return "MCK_SImm12Lsb0";
+ case NumMatchClassKinds: return "NumMatchClassKinds";
+ }
+ llvm_unreachable("unhandled MatchClassKind!");
+}
+
+#endif // NDEBUG
+FeatureBitset RISCVAsmParser::
+ComputeAvailableFeatures(const FeatureBitset& FB) const {
+ FeatureBitset Features;
+ if ((FB[RISCV::FeatureStdExtM]))
+ Features.set(Feature_HasStdExtMBit);
+ if ((FB[RISCV::FeatureStdExtA]))
+ Features.set(Feature_HasStdExtABit);
+ if ((FB[RISCV::FeatureStdExtF]))
+ Features.set(Feature_HasStdExtFBit);
+ if ((FB[RISCV::FeatureStdExtD]))
+ Features.set(Feature_HasStdExtDBit);
+ if ((FB[RISCV::FeatureStdExtC]))
+ Features.set(Feature_HasStdExtCBit);
+ if ((FB[RISCV::FeatureRVCHints]))
+ Features.set(Feature_HasRVCHintsBit);
+ if ((FB[RISCV::Feature64Bit]))
+ Features.set(Feature_IsRV64Bit);
+ if ((!FB[RISCV::Feature64Bit]))
+ Features.set(Feature_IsRV32Bit);
+ if ((FB[RISCV::FeatureRV32E]))
+ Features.set(Feature_IsRV32EBit);
+ return Features;
+}
+
+static bool checkAsmTiedOperandConstraints(const RISCVAsmParser&AsmParser,
+ unsigned Kind,
+ const OperandVector &Operands,
+ uint64_t &ErrorInfo) {
+ assert(Kind < CVT_NUM_SIGNATURES && "Invalid signature!");
+ const uint8_t *Converter = ConversionTable[Kind];
+ for (const uint8_t *p = Converter; *p; p+= 2) {
+ switch (*p) {
+ case CVT_Tied: {
+ unsigned OpIdx = *(p+1);
+ assert(OpIdx < (size_t)(std::end(TiedAsmOperandTable) -
+ std::begin(TiedAsmOperandTable)) &&
+ "Tied operand not found");
+ unsigned OpndNum1 = TiedAsmOperandTable[OpIdx][1];
+ unsigned OpndNum2 = TiedAsmOperandTable[OpIdx][2];
+ if (OpndNum1 != OpndNum2) {
+ auto &SrcOp1 = Operands[OpndNum1];
+ auto &SrcOp2 = Operands[OpndNum2];
+ if (SrcOp1->isReg() && SrcOp2->isReg()) {
+ if (!AsmParser.regsEqual(*SrcOp1, *SrcOp2)) {
+ ErrorInfo = OpndNum2;
+ return false;
+ }
+ }
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ return true;
+}
+
+static const char *const MnemonicTable =
+ "\003add\004addi\005addiw\004addw\010amoadd.d\013amoadd.d.aq\015amoadd.d"
+ ".aqrl\013amoadd.d.rl\010amoadd.w\013amoadd.w.aq\015amoadd.w.aqrl\013amo"
+ "add.w.rl\010amoand.d\013amoand.d.aq\015amoand.d.aqrl\013amoand.d.rl\010"
+ "amoand.w\013amoand.w.aq\015amoand.w.aqrl\013amoand.w.rl\010amomax.d\013"
+ "amomax.d.aq\015amomax.d.aqrl\013amomax.d.rl\010amomax.w\013amomax.w.aq\015"
+ "amomax.w.aqrl\013amomax.w.rl\tamomaxu.d\014amomaxu.d.aq\016amomaxu.d.aq"
+ "rl\014amomaxu.d.rl\tamomaxu.w\014amomaxu.w.aq\016amomaxu.w.aqrl\014amom"
+ "axu.w.rl\010amomin.d\013amomin.d.aq\015amomin.d.aqrl\013amomin.d.rl\010"
+ "amomin.w\013amomin.w.aq\015amomin.w.aqrl\013amomin.w.rl\tamominu.d\014a"
+ "mominu.d.aq\016amominu.d.aqrl\014amominu.d.rl\tamominu.w\014amominu.w.a"
+ "q\016amominu.w.aqrl\014amominu.w.rl\007amoor.d\namoor.d.aq\014amoor.d.a"
+ "qrl\namoor.d.rl\007amoor.w\namoor.w.aq\014amoor.w.aqrl\namoor.w.rl\tamo"
+ "swap.d\014amoswap.d.aq\016amoswap.d.aqrl\014amoswap.d.rl\tamoswap.w\014"
+ "amoswap.w.aq\016amoswap.w.aqrl\014amoswap.w.rl\010amoxor.d\013amoxor.d."
+ "aq\015amoxor.d.aqrl\013amoxor.d.rl\010amoxor.w\013amoxor.w.aq\015amoxor"
+ ".w.aqrl\013amoxor.w.rl\003and\004andi\005auipc\003beq\004beqz\003bge\004"
+ "bgeu\004bgez\003bgt\004bgtu\004bgtz\003ble\004bleu\004blez\003blt\004bl"
+ "tu\004bltz\003bne\004bnez\005c.add\006c.addi\nc.addi16sp\nc.addi4spn\007"
+ "c.addiw\006c.addw\005c.and\006c.andi\006c.beqz\006c.bnez\010c.ebreak\005"
+ "c.fld\007c.fldsp\005c.flw\007c.flwsp\005c.fsd\007c.fsdsp\005c.fsw\007c."
+ "fswsp\003c.j\005c.jal\006c.jalr\004c.jr\004c.ld\006c.ldsp\004c.li\005c."
+ "lui\004c.lw\006c.lwsp\004c.mv\005c.nop\004c.or\004c.sd\006c.sdsp\006c.s"
+ "lli\010c.slli64\006c.srai\010c.srai64\006c.srli\010c.srli64\005c.sub\006"
+ "c.subw\004c.sw\006c.swsp\007c.unimp\005c.xor\004call\004csrc\005csrci\004"
+ "csrr\005csrrc\006csrrci\005csrrs\006csrrsi\005csrrw\006csrrwi\004csrs\005"
+ "csrsi\004csrw\005csrwi\003div\004divu\005divuw\004divw\006ebreak\005eca"
+ "ll\006fabs.d\006fabs.s\006fadd.d\006fadd.s\010fclass.d\010fclass.s\010f"
+ "cvt.d.l\tfcvt.d.lu\010fcvt.d.s\010fcvt.d.w\tfcvt.d.wu\010fcvt.l.d\010fc"
+ "vt.l.s\tfcvt.lu.d\tfcvt.lu.s\010fcvt.s.d\010fcvt.s.l\tfcvt.s.lu\010fcvt"
+ ".s.w\tfcvt.s.wu\010fcvt.w.d\010fcvt.w.s\tfcvt.wu.d\tfcvt.wu.s\006fdiv.d"
+ "\006fdiv.s\005fence\007fence.i\tfence.tso\005feq.d\005feq.s\005fge.d\005"
+ "fge.s\005fgt.d\005fgt.s\003fld\005fle.d\005fle.s\005flt.d\005flt.s\003f"
+ "lw\007fmadd.d\007fmadd.s\006fmax.d\006fmax.s\006fmin.d\006fmin.s\007fms"
+ "ub.d\007fmsub.s\006fmul.d\006fmul.s\005fmv.d\007fmv.d.x\005fmv.s\007fmv"
+ ".w.x\007fmv.x.d\007fmv.x.w\006fneg.d\006fneg.s\010fnmadd.d\010fnmadd.s\010"
+ "fnmsub.d\010fnmsub.s\005frcsr\007frflags\004frrm\004frsr\005fscsr\003fs"
+ "d\007fsflags\010fsflagsi\007fsgnj.d\007fsgnj.s\010fsgnjn.d\010fsgnjn.s\010"
+ "fsgnjx.d\010fsgnjx.s\007fsqrt.d\007fsqrt.s\004fsrm\005fsrmi\004fssr\006"
+ "fsub.d\006fsub.s\003fsw\001j\003jal\004jalr\002jr\002la\tla.tls.gd\tla."
+ "tls.ie\002lb\003lbu\002ld\002lh\003lhu\002li\003lla\004lr.d\007lr.d.aq\t"
+ "lr.d.aqrl\007lr.d.rl\004lr.w\007lr.w.aq\tlr.w.aqrl\007lr.w.rl\003lui\002"
+ "lw\003lwu\004mret\003mul\004mulh\006mulhsu\005mulhu\004mulw\002mv\003ne"
+ "g\004negw\003nop\003not\002or\003ori\007rdcycle\010rdcycleh\trdinstret\n"
+ "rdinstreth\006rdtime\007rdtimeh\003rem\004remu\005remuw\004remw\003ret\002"
+ "sb\004sc.d\007sc.d.aq\tsc.d.aqrl\007sc.d.rl\004sc.w\007sc.w.aq\tsc.w.aq"
+ "rl\007sc.w.rl\002sd\004seqz\006sext.w\nsfence.vma\003sgt\004sgtu\004sgt"
+ "z\002sh\003sll\004slli\005slliw\004sllw\003slt\004slti\005sltiu\004sltu"
+ "\004sltz\004snez\003sra\004srai\005sraiw\004sraw\004sret\003srl\004srli"
+ "\005srliw\004srlw\003sub\004subw\002sw\004tail\005unimp\004uret\003wfi\003"
+ "xor\004xori";
+
+// Feature bitsets.
+enum : uint8_t {
+ AMFBS_None,
+ AMFBS_HasStdExtA,
+ AMFBS_HasStdExtC,
+ AMFBS_HasStdExtD,
+ AMFBS_HasStdExtF,
+ AMFBS_HasStdExtM,
+ AMFBS_IsRV32,
+ AMFBS_IsRV64,
+ AMFBS_HasStdExtA_IsRV64,
+ AMFBS_HasStdExtC_HasRVCHints,
+ AMFBS_HasStdExtC_HasStdExtD,
+ AMFBS_HasStdExtC_IsRV32,
+ AMFBS_HasStdExtC_IsRV64,
+ AMFBS_HasStdExtD_IsRV64,
+ AMFBS_HasStdExtF_IsRV64,
+ AMFBS_HasStdExtM_IsRV64,
+ AMFBS_HasStdExtC_HasStdExtF_IsRV32,
+};
+
+static constexpr FeatureBitset FeatureBitsets[] = {
+ {}, // AMFBS_None
+ {Feature_HasStdExtABit, },
+ {Feature_HasStdExtCBit, },
+ {Feature_HasStdExtDBit, },
+ {Feature_HasStdExtFBit, },
+ {Feature_HasStdExtMBit, },
+ {Feature_IsRV32Bit, },
+ {Feature_IsRV64Bit, },
+ {Feature_HasStdExtABit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtCBit, Feature_HasRVCHintsBit, },
+ {Feature_HasStdExtCBit, Feature_HasStdExtDBit, },
+ {Feature_HasStdExtCBit, Feature_IsRV32Bit, },
+ {Feature_HasStdExtCBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtDBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtFBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtMBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtCBit, Feature_HasStdExtFBit, Feature_IsRV32Bit, },
+};
+
+namespace {
+ struct MatchEntry {
+ uint16_t Mnemonic;
+ uint16_t Opcode;
+ uint8_t ConvertFn;
+ uint8_t RequiredFeaturesIdx;
+ uint8_t Classes[5];
+ StringRef getMnemonic() const {
+ return StringRef(MnemonicTable + Mnemonic + 1,
+ MnemonicTable[Mnemonic]);
+ }
+ };
+
+ // Predicate for searching for an opcode.
+ struct LessOpcode {
+ bool operator()(const MatchEntry &LHS, StringRef RHS) {
+ return LHS.getMnemonic() < RHS;
+ }
+ bool operator()(StringRef LHS, const MatchEntry &RHS) {
+ return LHS < RHS.getMnemonic();
+ }
+ bool operator()(const MatchEntry &LHS, const MatchEntry &RHS) {
+ return LHS.getMnemonic() < RHS.getMnemonic();
+ }
+ };
+} // end anonymous namespace
+
+static const MatchEntry MatchTable0[] = {
+ { 0 /* add */, RISCV::ADD, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 0 /* add */, RISCV::ADDI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 0 /* add */, RISCV::PseudoAddTPRel, Convert__Reg1_0__Reg1_1__Reg1_2__TPRelAddSymbol1_3, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR, MCK_TPRelAddSymbol }, },
+ { 4 /* addi */, RISCV::ADDI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 9 /* addiw */, RISCV::ADDIW, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 15 /* addw */, RISCV::ADDW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 15 /* addw */, RISCV::ADDIW, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 20 /* amoadd.d */, RISCV::AMOADD_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 29 /* amoadd.d.aq */, RISCV::AMOADD_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 41 /* amoadd.d.aqrl */, RISCV::AMOADD_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 55 /* amoadd.d.rl */, RISCV::AMOADD_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 67 /* amoadd.w */, RISCV::AMOADD_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 76 /* amoadd.w.aq */, RISCV::AMOADD_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 88 /* amoadd.w.aqrl */, RISCV::AMOADD_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 102 /* amoadd.w.rl */, RISCV::AMOADD_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 114 /* amoand.d */, RISCV::AMOAND_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 123 /* amoand.d.aq */, RISCV::AMOAND_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 135 /* amoand.d.aqrl */, RISCV::AMOAND_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 149 /* amoand.d.rl */, RISCV::AMOAND_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 161 /* amoand.w */, RISCV::AMOAND_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 170 /* amoand.w.aq */, RISCV::AMOAND_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 182 /* amoand.w.aqrl */, RISCV::AMOAND_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 196 /* amoand.w.rl */, RISCV::AMOAND_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 208 /* amomax.d */, RISCV::AMOMAX_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 217 /* amomax.d.aq */, RISCV::AMOMAX_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 229 /* amomax.d.aqrl */, RISCV::AMOMAX_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 243 /* amomax.d.rl */, RISCV::AMOMAX_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 255 /* amomax.w */, RISCV::AMOMAX_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 264 /* amomax.w.aq */, RISCV::AMOMAX_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 276 /* amomax.w.aqrl */, RISCV::AMOMAX_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 290 /* amomax.w.rl */, RISCV::AMOMAX_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 302 /* amomaxu.d */, RISCV::AMOMAXU_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 312 /* amomaxu.d.aq */, RISCV::AMOMAXU_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 325 /* amomaxu.d.aqrl */, RISCV::AMOMAXU_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 340 /* amomaxu.d.rl */, RISCV::AMOMAXU_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 353 /* amomaxu.w */, RISCV::AMOMAXU_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 363 /* amomaxu.w.aq */, RISCV::AMOMAXU_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 376 /* amomaxu.w.aqrl */, RISCV::AMOMAXU_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 391 /* amomaxu.w.rl */, RISCV::AMOMAXU_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 404 /* amomin.d */, RISCV::AMOMIN_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 413 /* amomin.d.aq */, RISCV::AMOMIN_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 425 /* amomin.d.aqrl */, RISCV::AMOMIN_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 439 /* amomin.d.rl */, RISCV::AMOMIN_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 451 /* amomin.w */, RISCV::AMOMIN_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 460 /* amomin.w.aq */, RISCV::AMOMIN_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 472 /* amomin.w.aqrl */, RISCV::AMOMIN_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 486 /* amomin.w.rl */, RISCV::AMOMIN_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 498 /* amominu.d */, RISCV::AMOMINU_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 508 /* amominu.d.aq */, RISCV::AMOMINU_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 521 /* amominu.d.aqrl */, RISCV::AMOMINU_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 536 /* amominu.d.rl */, RISCV::AMOMINU_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 549 /* amominu.w */, RISCV::AMOMINU_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 559 /* amominu.w.aq */, RISCV::AMOMINU_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 572 /* amominu.w.aqrl */, RISCV::AMOMINU_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 587 /* amominu.w.rl */, RISCV::AMOMINU_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 600 /* amoor.d */, RISCV::AMOOR_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 608 /* amoor.d.aq */, RISCV::AMOOR_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 619 /* amoor.d.aqrl */, RISCV::AMOOR_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 632 /* amoor.d.rl */, RISCV::AMOOR_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 643 /* amoor.w */, RISCV::AMOOR_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 651 /* amoor.w.aq */, RISCV::AMOOR_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 662 /* amoor.w.aqrl */, RISCV::AMOOR_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 675 /* amoor.w.rl */, RISCV::AMOOR_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 686 /* amoswap.d */, RISCV::AMOSWAP_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 696 /* amoswap.d.aq */, RISCV::AMOSWAP_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 709 /* amoswap.d.aqrl */, RISCV::AMOSWAP_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 724 /* amoswap.d.rl */, RISCV::AMOSWAP_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 737 /* amoswap.w */, RISCV::AMOSWAP_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 747 /* amoswap.w.aq */, RISCV::AMOSWAP_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 760 /* amoswap.w.aqrl */, RISCV::AMOSWAP_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 775 /* amoswap.w.rl */, RISCV::AMOSWAP_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 788 /* amoxor.d */, RISCV::AMOXOR_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 797 /* amoxor.d.aq */, RISCV::AMOXOR_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 809 /* amoxor.d.aqrl */, RISCV::AMOXOR_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 823 /* amoxor.d.rl */, RISCV::AMOXOR_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 835 /* amoxor.w */, RISCV::AMOXOR_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 844 /* amoxor.w.aq */, RISCV::AMOXOR_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 856 /* amoxor.w.aqrl */, RISCV::AMOXOR_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 870 /* amoxor.w.rl */, RISCV::AMOXOR_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 882 /* and */, RISCV::AND, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 882 /* and */, RISCV::ANDI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 886 /* andi */, RISCV::ANDI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 891 /* auipc */, RISCV::AUIPC, Convert__Reg1_0__UImm20AUIPC1_1, AMFBS_None, { MCK_GPR, MCK_UImm20AUIPC }, },
+ { 897 /* beq */, RISCV::BEQ, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 901 /* beqz */, RISCV::BEQ, Convert__Reg1_0__regX0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 906 /* bge */, RISCV::BGE, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 910 /* bgeu */, RISCV::BGEU, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 915 /* bgez */, RISCV::BGE, Convert__Reg1_0__regX0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 920 /* bgt */, RISCV::BLT, Convert__Reg1_1__Reg1_0__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 924 /* bgtu */, RISCV::BLTU, Convert__Reg1_1__Reg1_0__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 929 /* bgtz */, RISCV::BLT, Convert__regX0__Reg1_0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 934 /* ble */, RISCV::BGE, Convert__Reg1_1__Reg1_0__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 938 /* bleu */, RISCV::BGEU, Convert__Reg1_1__Reg1_0__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 943 /* blez */, RISCV::BGE, Convert__regX0__Reg1_0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 948 /* blt */, RISCV::BLT, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 952 /* bltu */, RISCV::BLTU, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 957 /* bltz */, RISCV::BLT, Convert__Reg1_0__regX0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 962 /* bne */, RISCV::BNE, Convert__Reg1_0__Reg1_1__SImm13Lsb01_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 966 /* bnez */, RISCV::BNE, Convert__Reg1_0__regX0__SImm13Lsb01_1, AMFBS_None, { MCK_GPR, MCK_SImm13Lsb0 }, },
+ { 971 /* c.add */, RISCV::C_ADD_HINT, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_GPRNoX0 }, },
+ { 971 /* c.add */, RISCV::C_ADD, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_GPRNoX0 }, },
+ { 977 /* c.addi */, RISCV::C_ADDI_NOP, Convert__Reg1_0__Tie0_1_1__ImmZero1_1, AMFBS_HasStdExtC, { MCK_GPRX0, MCK_ImmZero }, },
+ { 977 /* c.addi */, RISCV::C_ADDI_HINT_X0, Convert__Reg1_0__Tie0_1_1__SImm6NonZero1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_SImm6NonZero }, },
+ { 977 /* c.addi */, RISCV::C_ADDI_HINT_IMM_ZERO, Convert__Reg1_0__Tie0_1_1__ImmZero1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRNoX0, MCK_ImmZero }, },
+ { 977 /* c.addi */, RISCV::C_ADDI, Convert__Reg1_0__Tie0_1_1__SImm6NonZero1_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_SImm6NonZero }, },
+ { 984 /* c.addi16sp */, RISCV::C_ADDI16SP, Convert__Reg1_0__Tie0_1_1__SImm10Lsb0000NonZero1_1, AMFBS_HasStdExtC, { MCK_SP, MCK_SImm10Lsb0000NonZero }, },
+ { 995 /* c.addi4spn */, RISCV::C_ADDI4SPN, Convert__Reg1_0__Reg1_1__UImm10Lsb00NonZero1_2, AMFBS_HasStdExtC, { MCK_GPRC, MCK_SP, MCK_UImm10Lsb00NonZero }, },
+ { 1006 /* c.addiw */, RISCV::C_ADDIW, Convert__Reg1_0__Tie0_1_1__SImm61_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRNoX0, MCK_SImm6 }, },
+ { 1014 /* c.addw */, RISCV::C_ADDW, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK_GPRC }, },
+ { 1021 /* c.and */, RISCV::C_AND, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_GPRC }, },
+ { 1027 /* c.andi */, RISCV::C_ANDI, Convert__Reg1_0__Tie0_1_1__SImm61_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_SImm6 }, },
+ { 1034 /* c.beqz */, RISCV::C_BEQZ, Convert__Reg1_0__SImm9Lsb01_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_SImm9Lsb0 }, },
+ { 1041 /* c.bnez */, RISCV::C_BNEZ, Convert__Reg1_0__SImm9Lsb01_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_SImm9Lsb0 }, },
+ { 1048 /* c.ebreak */, RISCV::C_EBREAK, Convert_NoOperands, AMFBS_HasStdExtC, { }, },
+ { 1057 /* c.fld */, RISCV::C_FLD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1057 /* c.fld */, RISCV::C_FLD, Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK_UImm8Lsb000, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1063 /* c.fldsp */, RISCV::C_FLDSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1063 /* c.fldsp */, RISCV::C_FLDSP, Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64, MCK_UImm9Lsb000, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1071 /* c.flw */, RISCV::C_FLW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1071 /* c.flw */, RISCV::C_FLW, Convert__Reg1_0__Reg1_3__UImm7Lsb001_1, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK_UImm7Lsb00, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1077 /* c.flwsp */, RISCV::C_FLWSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1077 /* c.flwsp */, RISCV::C_FLWSP, Convert__Reg1_0__Reg1_3__UImm8Lsb001_1, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32, MCK_UImm8Lsb00, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1085 /* c.fsd */, RISCV::C_FSD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1085 /* c.fsd */, RISCV::C_FSD, Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK_UImm8Lsb000, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1091 /* c.fsdsp */, RISCV::C_FSDSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64C, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1091 /* c.fsdsp */, RISCV::C_FSDSP, Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1, AMFBS_HasStdExtC_HasStdExtD, { MCK_FPR64, MCK_UImm9Lsb000, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1099 /* c.fsw */, RISCV::C_FSW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1099 /* c.fsw */, RISCV::C_FSW, Convert__Reg1_0__Reg1_3__UImm7Lsb001_1, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK_UImm7Lsb00, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1105 /* c.fswsp */, RISCV::C_FSWSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32C, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1105 /* c.fswsp */, RISCV::C_FSWSP, Convert__Reg1_0__Reg1_3__UImm8Lsb001_1, AMFBS_HasStdExtC_HasStdExtF_IsRV32, { MCK_FPR32, MCK_UImm8Lsb00, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1113 /* c.j */, RISCV::C_J, Convert__SImm12Lsb01_0, AMFBS_HasStdExtC, { MCK_SImm12Lsb0 }, },
+ { 1117 /* c.jal */, RISCV::C_JAL, Convert__SImm12Lsb01_0, AMFBS_HasStdExtC_IsRV32, { MCK_SImm12Lsb0 }, },
+ { 1123 /* c.jalr */, RISCV::C_JALR, Convert__Reg1_0, AMFBS_HasStdExtC, { MCK_GPRNoX0 }, },
+ { 1130 /* c.jr */, RISCV::C_JR, Convert__Reg1_0, AMFBS_HasStdExtC, { MCK_GPRNoX0 }, },
+ { 1135 /* c.ld */, RISCV::C_LD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1135 /* c.ld */, RISCV::C_LD, Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK_UImm8Lsb000, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1140 /* c.ldsp */, RISCV::C_LDSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1140 /* c.ldsp */, RISCV::C_LDSP, Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRNoX0, MCK_UImm9Lsb000, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1147 /* c.li */, RISCV::C_LI_HINT, Convert__Reg1_0__SImm61_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_SImm6 }, },
+ { 1147 /* c.li */, RISCV::C_LI, Convert__Reg1_0__SImm61_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_SImm6 }, },
+ { 1152 /* c.lui */, RISCV::C_LUI_HINT, Convert__Reg1_0__CLUIImm1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_CLUIImm }, },
+ { 1152 /* c.lui */, RISCV::C_LUI, Convert__Reg1_0__CLUIImm1_1, AMFBS_HasStdExtC, { MCK_GPRNoX0X2, MCK_CLUIImm }, },
+ { 1158 /* c.lw */, RISCV::C_LW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPRC, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1158 /* c.lw */, RISCV::C_LW, Convert__Reg1_0__Reg1_3__UImm7Lsb001_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_UImm7Lsb00, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1163 /* c.lwsp */, RISCV::C_LWSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPRC, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1163 /* c.lwsp */, RISCV::C_LWSP, Convert__Reg1_0__Reg1_3__UImm8Lsb001_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_UImm8Lsb00, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1170 /* c.mv */, RISCV::C_MV_HINT, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_GPRNoX0 }, },
+ { 1170 /* c.mv */, RISCV::C_MV, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_GPRNoX0 }, },
+ { 1175 /* c.nop */, RISCV::C_NOP, Convert_NoOperands, AMFBS_HasStdExtC, { }, },
+ { 1175 /* c.nop */, RISCV::C_NOP_HINT, Convert__SImm6NonZero1_0, AMFBS_HasStdExtC_HasRVCHints, { MCK_SImm6NonZero }, },
+ { 1181 /* c.or */, RISCV::C_OR, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_GPRC }, },
+ { 1186 /* c.sd */, RISCV::C_SD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1186 /* c.sd */, RISCV::C_SD, Convert__Reg1_0__Reg1_3__UImm8Lsb0001_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK_UImm8Lsb000, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1191 /* c.sdsp */, RISCV::C_SDSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1191 /* c.sdsp */, RISCV::C_SDSP, Convert__Reg1_0__Reg1_3__UImm9Lsb0001_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPR, MCK_UImm9Lsb000, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1198 /* c.slli */, RISCV::C_SLLI_HINT, Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRX0, MCK_UImmLog2XLenNonZero }, },
+ { 1198 /* c.slli */, RISCV::C_SLLI, Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1, AMFBS_HasStdExtC, { MCK_GPRNoX0, MCK_UImmLog2XLenNonZero }, },
+ { 1205 /* c.slli64 */, RISCV::C_SLLI64_HINT, Convert__Reg1_0__Tie0_1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPR }, },
+ { 1214 /* c.srai */, RISCV::C_SRAI, Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_UImmLog2XLenNonZero }, },
+ { 1221 /* c.srai64 */, RISCV::C_SRAI64_HINT, Convert__Reg1_0__Tie0_1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRC }, },
+ { 1230 /* c.srli */, RISCV::C_SRLI, Convert__Reg1_0__Tie0_1_1__UImmLog2XLenNonZero1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_UImmLog2XLenNonZero }, },
+ { 1237 /* c.srli64 */, RISCV::C_SRLI64_HINT, Convert__Reg1_0__Tie0_1_1, AMFBS_HasStdExtC_HasRVCHints, { MCK_GPRC }, },
+ { 1246 /* c.sub */, RISCV::C_SUB, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_GPRC }, },
+ { 1252 /* c.subw */, RISCV::C_SUBW, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC_IsRV64, { MCK_GPRC, MCK_GPRC }, },
+ { 1259 /* c.sw */, RISCV::C_SW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPRC, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1259 /* c.sw */, RISCV::C_SW, Convert__Reg1_0__Reg1_3__UImm7Lsb001_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_UImm7Lsb00, MCK__40_, MCK_GPRC, MCK__41_ }, },
+ { 1264 /* c.swsp */, RISCV::C_SWSP, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPRC, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1264 /* c.swsp */, RISCV::C_SWSP, Convert__Reg1_0__Reg1_3__UImm8Lsb001_1, AMFBS_HasStdExtC, { MCK_GPR, MCK_UImm8Lsb00, MCK__40_, MCK_SP, MCK__41_ }, },
+ { 1271 /* c.unimp */, RISCV::C_UNIMP, Convert_NoOperands, AMFBS_HasStdExtC, { }, },
+ { 1279 /* c.xor */, RISCV::C_XOR, Convert__Reg1_0__Tie0_1_1__Reg1_1, AMFBS_HasStdExtC, { MCK_GPRC, MCK_GPRC }, },
+ { 1285 /* call */, RISCV::PseudoCALL, Convert__CallSymbol1_0, AMFBS_None, { MCK_CallSymbol }, },
+ { 1285 /* call */, RISCV::PseudoCALLReg, Convert__Reg1_0__CallSymbol1_1, AMFBS_None, { MCK_GPR, MCK_CallSymbol }, },
+ { 1290 /* csrc */, RISCV::CSRRC, Convert__regX0__CSRSystemRegister1_0__Reg1_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1290 /* csrc */, RISCV::CSRRCI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1295 /* csrci */, RISCV::CSRRCI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1301 /* csrr */, RISCV::CSRRS, Convert__Reg1_0__CSRSystemRegister1_1__regX0, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister }, },
+ { 1306 /* csrrc */, RISCV::CSRRC, Convert__Reg1_0__CSRSystemRegister1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1306 /* csrrc */, RISCV::CSRRCI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1312 /* csrrci */, RISCV::CSRRCI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1319 /* csrrs */, RISCV::CSRRS, Convert__Reg1_0__CSRSystemRegister1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1319 /* csrrs */, RISCV::CSRRSI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1325 /* csrrsi */, RISCV::CSRRSI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1332 /* csrrw */, RISCV::CSRRW, Convert__Reg1_0__CSRSystemRegister1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1332 /* csrrw */, RISCV::CSRRWI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1338 /* csrrwi */, RISCV::CSRRWI, Convert__Reg1_0__CSRSystemRegister1_1__UImm51_2, AMFBS_None, { MCK_GPR, MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1345 /* csrs */, RISCV::CSRRS, Convert__regX0__CSRSystemRegister1_0__Reg1_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1345 /* csrs */, RISCV::CSRRSI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1350 /* csrsi */, RISCV::CSRRSI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1356 /* csrw */, RISCV::CSRRW, Convert__regX0__CSRSystemRegister1_0__Reg1_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_GPR }, },
+ { 1356 /* csrw */, RISCV::CSRRWI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1361 /* csrwi */, RISCV::CSRRWI, Convert__regX0__CSRSystemRegister1_0__UImm51_1, AMFBS_None, { MCK_CSRSystemRegister, MCK_UImm5 }, },
+ { 1367 /* div */, RISCV::DIV, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 1371 /* divu */, RISCV::DIVU, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 1376 /* divuw */, RISCV::DIVUW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 1382 /* divw */, RISCV::DIVW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 1387 /* ebreak */, RISCV::EBREAK, Convert_NoOperands, AMFBS_None, { }, },
+ { 1394 /* ecall */, RISCV::ECALL, Convert_NoOperands, AMFBS_None, { }, },
+ { 1400 /* fabs.d */, RISCV::FSGNJX_D, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64 }, },
+ { 1407 /* fabs.s */, RISCV::FSGNJX_S, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32 }, },
+ { 1414 /* fadd.d */, RISCV::FADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1414 /* fadd.d */, RISCV::FADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1421 /* fadd.s */, RISCV::FADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1421 /* fadd.s */, RISCV::FADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1428 /* fclass.d */, RISCV::FCLASS_D, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64 }, },
+ { 1437 /* fclass.s */, RISCV::FCLASS_S, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32 }, },
+ { 1446 /* fcvt.d.l */, RISCV::FCVT_D_L, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD_IsRV64, { MCK_FPR64, MCK_GPR }, },
+ { 1446 /* fcvt.d.l */, RISCV::FCVT_D_L, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD_IsRV64, { MCK_FPR64, MCK_GPR, MCK_FRMArg }, },
+ { 1455 /* fcvt.d.lu */, RISCV::FCVT_D_LU, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD_IsRV64, { MCK_FPR64, MCK_GPR }, },
+ { 1455 /* fcvt.d.lu */, RISCV::FCVT_D_LU, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD_IsRV64, { MCK_FPR64, MCK_GPR, MCK_FRMArg }, },
+ { 1465 /* fcvt.d.s */, RISCV::FCVT_D_S, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR32 }, },
+ { 1474 /* fcvt.d.w */, RISCV::FCVT_D_W, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_GPR }, },
+ { 1483 /* fcvt.d.wu */, RISCV::FCVT_D_WU, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_GPR }, },
+ { 1493 /* fcvt.l.d */, RISCV::FCVT_L_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD_IsRV64, { MCK_GPR, MCK_FPR64 }, },
+ { 1493 /* fcvt.l.d */, RISCV::FCVT_L_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD_IsRV64, { MCK_GPR, MCK_FPR64, MCK_FRMArg }, },
+ { 1502 /* fcvt.l.s */, RISCV::FCVT_L_S, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF_IsRV64, { MCK_GPR, MCK_FPR32 }, },
+ { 1502 /* fcvt.l.s */, RISCV::FCVT_L_S, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF_IsRV64, { MCK_GPR, MCK_FPR32, MCK_FRMArg }, },
+ { 1511 /* fcvt.lu.d */, RISCV::FCVT_LU_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD_IsRV64, { MCK_GPR, MCK_FPR64 }, },
+ { 1511 /* fcvt.lu.d */, RISCV::FCVT_LU_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD_IsRV64, { MCK_GPR, MCK_FPR64, MCK_FRMArg }, },
+ { 1521 /* fcvt.lu.s */, RISCV::FCVT_LU_S, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF_IsRV64, { MCK_GPR, MCK_FPR32 }, },
+ { 1521 /* fcvt.lu.s */, RISCV::FCVT_LU_S, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF_IsRV64, { MCK_GPR, MCK_FPR32, MCK_FRMArg }, },
+ { 1531 /* fcvt.s.d */, RISCV::FCVT_S_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR32, MCK_FPR64 }, },
+ { 1531 /* fcvt.s.d */, RISCV::FCVT_S_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD, { MCK_FPR32, MCK_FPR64, MCK_FRMArg }, },
+ { 1540 /* fcvt.s.l */, RISCV::FCVT_S_L, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF_IsRV64, { MCK_FPR32, MCK_GPR }, },
+ { 1540 /* fcvt.s.l */, RISCV::FCVT_S_L, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF_IsRV64, { MCK_FPR32, MCK_GPR, MCK_FRMArg }, },
+ { 1549 /* fcvt.s.lu */, RISCV::FCVT_S_LU, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF_IsRV64, { MCK_FPR32, MCK_GPR }, },
+ { 1549 /* fcvt.s.lu */, RISCV::FCVT_S_LU, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF_IsRV64, { MCK_FPR32, MCK_GPR, MCK_FRMArg }, },
+ { 1559 /* fcvt.s.w */, RISCV::FCVT_S_W, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_GPR }, },
+ { 1559 /* fcvt.s.w */, RISCV::FCVT_S_W, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_GPR, MCK_FRMArg }, },
+ { 1568 /* fcvt.s.wu */, RISCV::FCVT_S_WU, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_GPR }, },
+ { 1568 /* fcvt.s.wu */, RISCV::FCVT_S_WU, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_GPR, MCK_FRMArg }, },
+ { 1578 /* fcvt.w.d */, RISCV::FCVT_W_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64 }, },
+ { 1578 /* fcvt.w.d */, RISCV::FCVT_W_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FRMArg }, },
+ { 1587 /* fcvt.w.s */, RISCV::FCVT_W_S, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32 }, },
+ { 1587 /* fcvt.w.s */, RISCV::FCVT_W_S, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FRMArg }, },
+ { 1596 /* fcvt.wu.d */, RISCV::FCVT_WU_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64 }, },
+ { 1596 /* fcvt.wu.d */, RISCV::FCVT_WU_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FRMArg }, },
+ { 1606 /* fcvt.wu.s */, RISCV::FCVT_WU_S, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32 }, },
+ { 1606 /* fcvt.wu.s */, RISCV::FCVT_WU_S, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FRMArg }, },
+ { 1616 /* fdiv.d */, RISCV::FDIV_D, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1616 /* fdiv.d */, RISCV::FDIV_D, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1623 /* fdiv.s */, RISCV::FDIV_S, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1623 /* fdiv.s */, RISCV::FDIV_S, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1630 /* fence */, RISCV::FENCE, Convert__imm_95_15__imm_95_15, AMFBS_None, { }, },
+ { 1630 /* fence */, RISCV::FENCE, Convert__FenceArg1_0__FenceArg1_1, AMFBS_None, { MCK_FenceArg, MCK_FenceArg }, },
+ { 1636 /* fence.i */, RISCV::FENCE_I, Convert_NoOperands, AMFBS_None, { }, },
+ { 1644 /* fence.tso */, RISCV::FENCE_TSO, Convert_NoOperands, AMFBS_None, { }, },
+ { 1654 /* feq.d */, RISCV::FEQ_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FPR64 }, },
+ { 1660 /* feq.s */, RISCV::FEQ_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FPR32 }, },
+ { 1666 /* fge.d */, RISCV::FLE_D, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FPR64 }, },
+ { 1672 /* fge.s */, RISCV::FLE_S, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FPR32 }, },
+ { 1678 /* fgt.d */, RISCV::FLT_D, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FPR64 }, },
+ { 1684 /* fgt.s */, RISCV::FLT_S, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FPR32 }, },
+ { 1690 /* fld */, RISCV::PseudoFLD, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_BareSymbol, MCK_GPR }, },
+ { 1690 /* fld */, RISCV::FLD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtD, { MCK_FPR64, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1690 /* fld */, RISCV::FLD, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1694 /* fle.d */, RISCV::FLE_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FPR64 }, },
+ { 1700 /* fle.s */, RISCV::FLE_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FPR32 }, },
+ { 1706 /* flt.d */, RISCV::FLT_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_GPR, MCK_FPR64, MCK_FPR64 }, },
+ { 1712 /* flt.s */, RISCV::FLT_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32, MCK_FPR32 }, },
+ { 1718 /* flw */, RISCV::PseudoFLW, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_BareSymbol, MCK_GPR }, },
+ { 1718 /* flw */, RISCV::FLW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtF, { MCK_FPR32, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1718 /* flw */, RISCV::FLW, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1722 /* fmadd.d */, RISCV::FMADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1722 /* fmadd.d */, RISCV::FMADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1730 /* fmadd.s */, RISCV::FMADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1730 /* fmadd.s */, RISCV::FMADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1738 /* fmax.d */, RISCV::FMAX_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1745 /* fmax.s */, RISCV::FMAX_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1752 /* fmin.d */, RISCV::FMIN_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1759 /* fmin.s */, RISCV::FMIN_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1766 /* fmsub.d */, RISCV::FMSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1766 /* fmsub.d */, RISCV::FMSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1774 /* fmsub.s */, RISCV::FMSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1774 /* fmsub.s */, RISCV::FMSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1782 /* fmul.d */, RISCV::FMUL_D, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1782 /* fmul.d */, RISCV::FMUL_D, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1789 /* fmul.s */, RISCV::FMUL_S, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1789 /* fmul.s */, RISCV::FMUL_S, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1796 /* fmv.d */, RISCV::FSGNJ_D, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64 }, },
+ { 1802 /* fmv.d.x */, RISCV::FMV_D_X, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD_IsRV64, { MCK_FPR64, MCK_GPR }, },
+ { 1810 /* fmv.s */, RISCV::FSGNJ_S, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32 }, },
+ { 1816 /* fmv.w.x */, RISCV::FMV_W_X, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_GPR }, },
+ { 1824 /* fmv.x.d */, RISCV::FMV_X_D, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtD_IsRV64, { MCK_GPR, MCK_FPR64 }, },
+ { 1832 /* fmv.x.w */, RISCV::FMV_X_W, Convert__Reg1_0__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_FPR32 }, },
+ { 1840 /* fneg.d */, RISCV::FSGNJN_D, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64 }, },
+ { 1847 /* fneg.s */, RISCV::FSGNJN_S, Convert__Reg1_0__Reg1_1__Reg1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32 }, },
+ { 1854 /* fnmadd.d */, RISCV::FNMADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1854 /* fnmadd.d */, RISCV::FNMADD_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1863 /* fnmadd.s */, RISCV::FNMADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1863 /* fnmadd.s */, RISCV::FNMADD_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1872 /* fnmsub.d */, RISCV::FNMSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1872 /* fnmsub.d */, RISCV::FNMSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 1881 /* fnmsub.s */, RISCV::FNMSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1881 /* fnmsub.s */, RISCV::FNMSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__Reg1_3__FRMArg1_4, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 1890 /* frcsr */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3__regX0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1896 /* frflags */, RISCV::CSRRS, Convert__Reg1_0__imm_95_1__regX0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1904 /* frrm */, RISCV::CSRRS, Convert__Reg1_0__imm_95_2__regX0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1909 /* frsr */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3__regX0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1914 /* fscsr */, RISCV::CSRRW, Convert__regX0__imm_95_3__Reg1_0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1914 /* fscsr */, RISCV::CSRRW, Convert__Reg1_0__imm_95_3__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_GPR }, },
+ { 1920 /* fsd */, RISCV::PseudoFSD, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_BareSymbol, MCK_GPR }, },
+ { 1920 /* fsd */, RISCV::FSD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtD, { MCK_FPR64, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1920 /* fsd */, RISCV::FSD, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_HasStdExtD, { MCK_FPR64, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 1924 /* fsflags */, RISCV::CSRRW, Convert__regX0__imm_95_1__Reg1_0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 1924 /* fsflags */, RISCV::CSRRW, Convert__Reg1_0__imm_95_1__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_GPR }, },
+ { 1932 /* fsflagsi */, RISCV::CSRRWI, Convert__regX0__imm_95_1__UImm51_0, AMFBS_HasStdExtF, { MCK_UImm5 }, },
+ { 1932 /* fsflagsi */, RISCV::CSRRWI, Convert__Reg1_0__imm_95_1__UImm51_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_UImm5 }, },
+ { 1941 /* fsgnj.d */, RISCV::FSGNJ_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1949 /* fsgnj.s */, RISCV::FSGNJ_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1957 /* fsgnjn.d */, RISCV::FSGNJN_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1966 /* fsgnjn.s */, RISCV::FSGNJN_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1975 /* fsgnjx.d */, RISCV::FSGNJX_D, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 1984 /* fsgnjx.s */, RISCV::FSGNJX_S, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 1993 /* fsqrt.d */, RISCV::FSQRT_D, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64 }, },
+ { 1993 /* fsqrt.d */, RISCV::FSQRT_D, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 2001 /* fsqrt.s */, RISCV::FSQRT_S, Convert__Reg1_0__Reg1_1__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32 }, },
+ { 2001 /* fsqrt.s */, RISCV::FSQRT_S, Convert__Reg1_0__Reg1_1__FRMArg1_2, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 2009 /* fsrm */, RISCV::CSRRW, Convert__regX0__imm_95_2__Reg1_0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 2009 /* fsrm */, RISCV::CSRRW, Convert__Reg1_0__imm_95_2__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_GPR }, },
+ { 2014 /* fsrmi */, RISCV::CSRRWI, Convert__regX0__imm_95_2__UImm51_0, AMFBS_HasStdExtF, { MCK_UImm5 }, },
+ { 2014 /* fsrmi */, RISCV::CSRRWI, Convert__Reg1_0__imm_95_2__UImm51_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_UImm5 }, },
+ { 2020 /* fssr */, RISCV::CSRRW, Convert__regX0__imm_95_3__Reg1_0, AMFBS_HasStdExtF, { MCK_GPR }, },
+ { 2020 /* fssr */, RISCV::CSRRW, Convert__Reg1_0__imm_95_3__Reg1_1, AMFBS_HasStdExtF, { MCK_GPR, MCK_GPR }, },
+ { 2025 /* fsub.d */, RISCV::FSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64 }, },
+ { 2025 /* fsub.d */, RISCV::FSUB_D, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtD, { MCK_FPR64, MCK_FPR64, MCK_FPR64, MCK_FRMArg }, },
+ { 2032 /* fsub.s */, RISCV::FSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__imm_95_7, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32 }, },
+ { 2032 /* fsub.s */, RISCV::FSUB_S, Convert__Reg1_0__Reg1_1__Reg1_2__FRMArg1_3, AMFBS_HasStdExtF, { MCK_FPR32, MCK_FPR32, MCK_FPR32, MCK_FRMArg }, },
+ { 2039 /* fsw */, RISCV::PseudoFSW, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_BareSymbol, MCK_GPR }, },
+ { 2039 /* fsw */, RISCV::FSW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_HasStdExtF, { MCK_FPR32, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2039 /* fsw */, RISCV::FSW, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_HasStdExtF, { MCK_FPR32, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2043 /* j */, RISCV::JAL, Convert__regX0__SImm21Lsb0JAL1_0, AMFBS_None, { MCK_SImm21Lsb0JAL }, },
+ { 2045 /* jal */, RISCV::JAL, Convert__regX1__SImm21Lsb0JAL1_0, AMFBS_None, { MCK_SImm21Lsb0JAL }, },
+ { 2045 /* jal */, RISCV::JAL, Convert__Reg1_0__SImm21Lsb0JAL1_1, AMFBS_None, { MCK_GPR, MCK_SImm21Lsb0JAL }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__regX1__Reg1_0__imm_95_0, AMFBS_None, { MCK_GPR }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__Reg1_0__Reg1_1__imm_95_0, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__regX1__Reg1_0__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12 }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__regX1__Reg1_2__SImm121_0, AMFBS_None, { MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2049 /* jalr */, RISCV::JALR, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2054 /* jr */, RISCV::JALR, Convert__regX0__Reg1_0__imm_95_0, AMFBS_None, { MCK_GPR }, },
+ { 2054 /* jr */, RISCV::JALR, Convert__regX0__Reg1_0__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12 }, },
+ { 2054 /* jr */, RISCV::JALR, Convert__regX0__Reg1_2__SImm121_0, AMFBS_None, { MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2057 /* la */, RISCV::PseudoLA, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2060 /* la.tls.gd */, RISCV::PseudoLA_TLS_GD, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2070 /* la.tls.ie */, RISCV::PseudoLA_TLS_IE, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2080 /* lb */, RISCV::PseudoLB, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2080 /* lb */, RISCV::LB, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2080 /* lb */, RISCV::LB, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2083 /* lbu */, RISCV::PseudoLBU, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2083 /* lbu */, RISCV::LBU, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2083 /* lbu */, RISCV::LBU, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2087 /* ld */, RISCV::PseudoLD, Convert__Reg1_0__BareSymbol1_1, AMFBS_IsRV64, { MCK_GPR, MCK_BareSymbol }, },
+ { 2087 /* ld */, RISCV::LD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_IsRV64, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2087 /* ld */, RISCV::LD, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_IsRV64, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2090 /* lh */, RISCV::PseudoLH, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2090 /* lh */, RISCV::LH, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2090 /* lh */, RISCV::LH, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2093 /* lhu */, RISCV::PseudoLHU, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2093 /* lhu */, RISCV::LHU, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2093 /* lhu */, RISCV::LHU, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2097 /* li */, RISCV::PseudoLI, Convert__Reg1_0__ImmXLenLI1_1, AMFBS_None, { MCK_GPR, MCK_ImmXLenLI }, },
+ { 2100 /* lla */, RISCV::PseudoLLA, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2104 /* lr.d */, RISCV::LR_D, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2109 /* lr.d.aq */, RISCV::LR_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2117 /* lr.d.aqrl */, RISCV::LR_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2127 /* lr.d.rl */, RISCV::LR_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2135 /* lr.w */, RISCV::LR_W, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2140 /* lr.w.aq */, RISCV::LR_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2148 /* lr.w.aqrl */, RISCV::LR_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2158 /* lr.w.rl */, RISCV::LR_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2166 /* lui */, RISCV::LUI, Convert__Reg1_0__UImm20LUI1_1, AMFBS_None, { MCK_GPR, MCK_UImm20LUI }, },
+ { 2170 /* lw */, RISCV::PseudoLW, Convert__Reg1_0__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol }, },
+ { 2170 /* lw */, RISCV::LW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2170 /* lw */, RISCV::LW, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2173 /* lwu */, RISCV::PseudoLWU, Convert__Reg1_0__BareSymbol1_1, AMFBS_IsRV64, { MCK_GPR, MCK_BareSymbol }, },
+ { 2173 /* lwu */, RISCV::LWU, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_IsRV64, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2173 /* lwu */, RISCV::LWU, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_IsRV64, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2177 /* mret */, RISCV::MRET, Convert__imm_95_0__imm_95_0, AMFBS_None, { }, },
+ { 2182 /* mul */, RISCV::MUL, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2186 /* mulh */, RISCV::MULH, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2191 /* mulhsu */, RISCV::MULHSU, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2198 /* mulhu */, RISCV::MULHU, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2204 /* mulw */, RISCV::MULW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2209 /* mv */, RISCV::ADDI, Convert__Reg1_0__Reg1_1__imm_95_0, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2212 /* neg */, RISCV::SUB, Convert__Reg1_0__regX0__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2216 /* negw */, RISCV::SUBW, Convert__Reg1_0__regX0__Reg1_1, AMFBS_IsRV64, { MCK_GPR, MCK_GPR }, },
+ { 2221 /* nop */, RISCV::ADDI, Convert__regX0__regX0__imm_95_0, AMFBS_None, { }, },
+ { 2225 /* not */, RISCV::XORI, Convert__Reg1_0__Reg1_1__imm_95__MINUS_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2229 /* or */, RISCV::OR, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2229 /* or */, RISCV::ORI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2232 /* ori */, RISCV::ORI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2236 /* rdcycle */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3072__regX0, AMFBS_None, { MCK_GPR }, },
+ { 2244 /* rdcycleh */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3200__regX0, AMFBS_IsRV32, { MCK_GPR }, },
+ { 2253 /* rdinstret */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3074__regX0, AMFBS_None, { MCK_GPR }, },
+ { 2263 /* rdinstreth */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3202__regX0, AMFBS_IsRV32, { MCK_GPR }, },
+ { 2274 /* rdtime */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3073__regX0, AMFBS_None, { MCK_GPR }, },
+ { 2281 /* rdtimeh */, RISCV::CSRRS, Convert__Reg1_0__imm_95_3201__regX0, AMFBS_IsRV32, { MCK_GPR }, },
+ { 2289 /* rem */, RISCV::REM, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2293 /* remu */, RISCV::REMU, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2298 /* remuw */, RISCV::REMUW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2304 /* remw */, RISCV::REMW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_HasStdExtM_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2309 /* ret */, RISCV::JALR, Convert__regX0__regX1__imm_95_0, AMFBS_None, { }, },
+ { 2313 /* sb */, RISCV::PseudoSB, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol, MCK_GPR }, },
+ { 2313 /* sb */, RISCV::SB, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2313 /* sb */, RISCV::SB, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2316 /* sc.d */, RISCV::SC_D, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2321 /* sc.d.aq */, RISCV::SC_D_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2329 /* sc.d.aqrl */, RISCV::SC_D_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2339 /* sc.d.rl */, RISCV::SC_D_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA_IsRV64, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2347 /* sc.w */, RISCV::SC_W, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2352 /* sc.w.aq */, RISCV::SC_W_AQ, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2360 /* sc.w.aqrl */, RISCV::SC_W_AQ_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2370 /* sc.w.rl */, RISCV::SC_W_RL, Convert__Reg1_0__AtomicMemOpOperand1_2__Reg1_1, AMFBS_HasStdExtA, { MCK_GPR, MCK_GPR, MCK_AtomicMemOpOperand }, },
+ { 2378 /* sd */, RISCV::PseudoSD, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_IsRV64, { MCK_GPR, MCK_BareSymbol, MCK_GPR }, },
+ { 2378 /* sd */, RISCV::SD, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_IsRV64, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2378 /* sd */, RISCV::SD, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_IsRV64, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2381 /* seqz */, RISCV::SLTIU, Convert__Reg1_0__Reg1_1__imm_95_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2386 /* sext.w */, RISCV::ADDIW, Convert__Reg1_0__Reg1_1__imm_95_0, AMFBS_IsRV64, { MCK_GPR, MCK_GPR }, },
+ { 2393 /* sfence.vma */, RISCV::SFENCE_VMA, Convert__regX0__regX0, AMFBS_None, { }, },
+ { 2393 /* sfence.vma */, RISCV::SFENCE_VMA, Convert__Reg1_0__regX0, AMFBS_None, { MCK_GPR }, },
+ { 2393 /* sfence.vma */, RISCV::SFENCE_VMA, Convert__Reg1_0__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2404 /* sgt */, RISCV::SLT, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2408 /* sgtu */, RISCV::SLTU, Convert__Reg1_0__Reg1_2__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2413 /* sgtz */, RISCV::SLT, Convert__Reg1_0__regX0__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2418 /* sh */, RISCV::PseudoSH, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol, MCK_GPR }, },
+ { 2418 /* sh */, RISCV::SH, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2418 /* sh */, RISCV::SH, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2421 /* sll */, RISCV::SLL, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2421 /* sll */, RISCV::SLLI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2425 /* slli */, RISCV::SLLI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2430 /* slliw */, RISCV::SLLIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2436 /* sllw */, RISCV::SLLW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2436 /* sllw */, RISCV::SLLIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2441 /* slt */, RISCV::SLT, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2441 /* slt */, RISCV::SLTI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2445 /* slti */, RISCV::SLTI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2450 /* sltiu */, RISCV::SLTIU, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2456 /* sltu */, RISCV::SLTU, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2456 /* sltu */, RISCV::SLTIU, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2461 /* sltz */, RISCV::SLT, Convert__Reg1_0__Reg1_1__regX0, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2466 /* snez */, RISCV::SLTU, Convert__Reg1_0__regX0__Reg1_1, AMFBS_None, { MCK_GPR, MCK_GPR }, },
+ { 2471 /* sra */, RISCV::SRA, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2471 /* sra */, RISCV::SRAI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2475 /* srai */, RISCV::SRAI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2480 /* sraiw */, RISCV::SRAIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2486 /* sraw */, RISCV::SRAW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2486 /* sraw */, RISCV::SRAIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2491 /* sret */, RISCV::SRET, Convert__imm_95_0__imm_95_0, AMFBS_None, { }, },
+ { 2496 /* srl */, RISCV::SRL, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2496 /* srl */, RISCV::SRLI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2500 /* srli */, RISCV::SRLI, Convert__Reg1_0__Reg1_1__UImmLog2XLen1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_UImmLog2XLen }, },
+ { 2505 /* srliw */, RISCV::SRLIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2511 /* srlw */, RISCV::SRLW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2511 /* srlw */, RISCV::SRLIW, Convert__Reg1_0__Reg1_1__UImm51_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_UImm5 }, },
+ { 2516 /* sub */, RISCV::SUB, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2520 /* subw */, RISCV::SUBW, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_IsRV64, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2525 /* sw */, RISCV::PseudoSW, Convert__Reg1_0__Reg1_2__BareSymbol1_1, AMFBS_None, { MCK_GPR, MCK_BareSymbol, MCK_GPR }, },
+ { 2525 /* sw */, RISCV::SW, Convert__Reg1_0__Reg1_2__imm_95_0, AMFBS_None, { MCK_GPR, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2525 /* sw */, RISCV::SW, Convert__Reg1_0__Reg1_3__SImm121_1, AMFBS_None, { MCK_GPR, MCK_SImm12, MCK__40_, MCK_GPR, MCK__41_ }, },
+ { 2528 /* tail */, RISCV::PseudoTAIL, Convert__CallSymbol1_0, AMFBS_None, { MCK_CallSymbol }, },
+ { 2533 /* unimp */, RISCV::UNIMP, Convert_NoOperands, AMFBS_None, { }, },
+ { 2539 /* uret */, RISCV::URET, Convert__imm_95_0__imm_95_0, AMFBS_None, { }, },
+ { 2544 /* wfi */, RISCV::WFI, Convert__imm_95_0__imm_95_0, AMFBS_None, { }, },
+ { 2548 /* xor */, RISCV::XOR, Convert__Reg1_0__Reg1_1__Reg1_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_GPR }, },
+ { 2548 /* xor */, RISCV::XORI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+ { 2552 /* xori */, RISCV::XORI, Convert__Reg1_0__Reg1_1__SImm121_2, AMFBS_None, { MCK_GPR, MCK_GPR, MCK_SImm12 }, },
+};
+
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/Format.h"
+
+unsigned RISCVAsmParser::
+MatchInstructionImpl(const OperandVector &Operands,
+ MCInst &Inst,
+ uint64_t &ErrorInfo,
+ FeatureBitset &MissingFeatures,
+ bool matchingInlineAsm, unsigned VariantID) {
+ // Eliminate obvious mismatches.
+ if (Operands.size() > 6) {
+ ErrorInfo = 6;
+ return Match_InvalidOperand;
+ }
+
+ // Get the current feature set.
+ const FeatureBitset &AvailableFeatures = getAvailableFeatures();
+
+ // Get the instruction mnemonic, which is the first token.
+ StringRef Mnemonic = ((RISCVOperand&)*Operands[0]).getToken();
+
+ // Process all MnemonicAliases to remap the mnemonic.
+ applyMnemonicAliases(Mnemonic, AvailableFeatures, VariantID);
+
+ // Some state to try to produce better error messages.
+ bool HadMatchOtherThanFeatures = false;
+ bool HadMatchOtherThanPredicate = false;
+ unsigned RetCode = Match_InvalidOperand;
+ MissingFeatures.set();
+ // Set ErrorInfo to the operand that mismatches if it is
+ // wrong for all instances of the instruction.
+ ErrorInfo = ~0ULL;
+ // Find the appropriate table for this asm variant.
+ const MatchEntry *Start, *End;
+ switch (VariantID) {
+ default: llvm_unreachable("invalid variant!");
+ case 0: Start = std::begin(MatchTable0); End = std::end(MatchTable0); break;
+ }
+ // Search the table.
+ auto MnemonicRange = std::equal_range(Start, End, Mnemonic, LessOpcode());
+
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "AsmMatcher: found " <<
+ std::distance(MnemonicRange.first, MnemonicRange.second) <<
+ " encodings with mnemonic '" << Mnemonic << "'\n");
+
+ // Return a more specific error code if no mnemonics match.
+ if (MnemonicRange.first == MnemonicRange.second)
+ return Match_MnemonicFail;
+
+ for (const MatchEntry *it = MnemonicRange.first, *ie = MnemonicRange.second;
+ it != ie; ++it) {
+ const FeatureBitset &RequiredFeatures = FeatureBitsets[it->RequiredFeaturesIdx];
+ bool HasRequiredFeatures =
+ (AvailableFeatures & RequiredFeatures) == RequiredFeatures;
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Trying to match opcode "
+ << MII.getName(it->Opcode) << "\n");
+ // equal_range guarantees that instruction mnemonic matches.
+ assert(Mnemonic == it->getMnemonic());
+ bool OperandsValid = true;
+ for (unsigned FormalIdx = 0, ActualIdx = 1; FormalIdx != 5; ++FormalIdx) {
+ auto Formal = static_cast<MatchClassKind>(it->Classes[FormalIdx]);
+ DEBUG_WITH_TYPE("asm-matcher",
+ dbgs() << " Matching formal operand class " << getMatchClassName(Formal)
+ << " against actual operand at index " << ActualIdx);
+ if (ActualIdx < Operands.size())
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << " (";
+ Operands[ActualIdx]->print(dbgs()); dbgs() << "): ");
+ else
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << ": ");
+ if (ActualIdx >= Operands.size()) {
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "actual operand index out of range ");
+ OperandsValid = (Formal == InvalidMatchClass) || isSubclass(Formal, OptionalMatchClass);
+ if (!OperandsValid) ErrorInfo = ActualIdx;
+ break;
+ }
+ MCParsedAsmOperand &Actual = *Operands[ActualIdx];
+ unsigned Diag = validateOperandClass(Actual, Formal);
+ if (Diag == Match_Success) {
+ DEBUG_WITH_TYPE("asm-matcher",
+ dbgs() << "match success using generic matcher\n");
+ ++ActualIdx;
+ continue;
+ }
+ // If the generic handler indicates an invalid operand
+ // failure, check for a special case.
+ if (Diag != Match_Success) {
+ unsigned TargetDiag = validateTargetOperandClass(Actual, Formal);
+ if (TargetDiag == Match_Success) {
+ DEBUG_WITH_TYPE("asm-matcher",
+ dbgs() << "match success using target matcher\n");
+ ++ActualIdx;
+ continue;
+ }
+ // If the target matcher returned a specific error code use
+ // that, else use the one from the generic matcher.
+ if (TargetDiag != Match_InvalidOperand && HasRequiredFeatures)
+ Diag = TargetDiag;
+ }
+ // If current formal operand wasn't matched and it is optional
+ // then try to match next formal operand
+ if (Diag == Match_InvalidOperand && isSubclass(Formal, OptionalMatchClass)) {
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "ignoring optional operand\n");
+ continue;
+ }
+ // If this operand is broken for all of the instances of this
+ // mnemonic, keep track of it so we can report loc info.
+ // If we already had a match that only failed due to a
+ // target predicate, that diagnostic is preferred.
+ if (!HadMatchOtherThanPredicate &&
+ (it == MnemonicRange.first || ErrorInfo <= ActualIdx)) {
+ if (HasRequiredFeatures && (ErrorInfo != ActualIdx || Diag != Match_InvalidOperand))
+ RetCode = Diag;
+ ErrorInfo = ActualIdx;
+ }
+ // Otherwise, just reject this instance of the mnemonic.
+ OperandsValid = false;
+ break;
+ }
+
+ if (!OperandsValid) {
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Opcode result: multiple "
+ "operand mismatches, ignoring "
+ "this opcode\n");
+ continue;
+ }
+ if (!HasRequiredFeatures) {
+ HadMatchOtherThanFeatures = true;
+ FeatureBitset NewMissingFeatures = RequiredFeatures & ~AvailableFeatures;
+ DEBUG_WITH_TYPE("asm-matcher", dbgs() << "Missing target features:";
+ for (unsigned I = 0, E = NewMissingFeatures.size(); I != E; ++I)
+ if (NewMissingFeatures[I])
+ dbgs() << ' ' << I;
+ dbgs() << "\n");
+ if (NewMissingFeatures.count() <=
+ MissingFeatures.count())
+ MissingFeatures = NewMissingFeatures;
+ continue;
+ }
+
+ Inst.clear();
+
+ Inst.setOpcode(it->Opcode);
+ // We have a potential match but have not rendered the operands.
+ // Check the target predicate to handle any context sensitive
+ // constraints.
+ // For example, Ties that are referenced multiple times must be
+ // checked here to ensure the input is the same for each match
+ // constraints. If we leave it any later the ties will have been
+ // canonicalized
+ unsigned MatchResult;
+ if ((MatchResult = checkEarlyTargetMatchPredicate(Inst, Operands)) != Match_Success) {
+ Inst.clear();
+ DEBUG_WITH_TYPE(
+ "asm-matcher",
+ dbgs() << "Early target match predicate failed with diag code "
+ << MatchResult << "\n");
+ RetCode = MatchResult;
+ HadMatchOtherThanPredicate = true;
+ continue;
+ }
+
+ if (matchingInlineAsm) {
+ convertToMapAndConstraints(it->ConvertFn, Operands);
+ if (!checkAsmTiedOperandConstraints(*this, it->ConvertFn, Operands, ErrorInfo))
+ return Match_InvalidTiedOperand;
+
+ return Match_Success;
+ }
+
+ // We have selected a definite instruction, convert the parsed
+ // operands into the appropriate MCInst.
+ convertToMCInst(it->ConvertFn, Inst, it->Opcode, Operands);
+
+ // We have a potential match. Check the target predicate to
+ // handle any context sensitive constraints.
+ if ((MatchResult = checkTargetMatchPredicate(Inst)) != Match_Success) {
+ DEBUG_WITH_TYPE("asm-matcher",
+ dbgs() << "Target match predicate failed with diag code "
+ << MatchResult << "\n");
+ Inst.clear();
+ RetCode = MatchResult;
+ HadMatchOtherThanPredicate = true;
+ continue;
+ }
+
+ if (!checkAsmTiedOperandConstraints(*this, it->ConvertFn, Operands, ErrorInfo))
+ return Match_InvalidTiedOperand;
+
+ DEBUG_WITH_TYPE(
+ "asm-matcher",
+ dbgs() << "Opcode result: complete match, selecting this opcode\n");
+ return Match_Success;
+ }
+
+ // Okay, we had no match. Try to return a useful error code.
+ if (HadMatchOtherThanPredicate || !HadMatchOtherThanFeatures)
+ return RetCode;
+
+ ErrorInfo = 0;
+ return Match_MissingFeature;
+}
+
+namespace {
+ struct OperandMatchEntry {
+ uint16_t Mnemonic;
+ uint8_t OperandMask;
+ uint8_t Class;
+ uint8_t RequiredFeaturesIdx;
+
+ StringRef getMnemonic() const {
+ return StringRef(MnemonicTable + Mnemonic + 1,
+ MnemonicTable[Mnemonic]);
+ }
+ };
+
+ // Predicate for searching for an opcode.
+ struct LessOpcodeOperand {
+ bool operator()(const OperandMatchEntry &LHS, StringRef RHS) {
+ return LHS.getMnemonic() < RHS;
+ }
+ bool operator()(StringRef LHS, const OperandMatchEntry &RHS) {
+ return LHS < RHS.getMnemonic();
+ }
+ bool operator()(const OperandMatchEntry &LHS, const OperandMatchEntry &RHS) {
+ return LHS.getMnemonic() < RHS.getMnemonic();
+ }
+ };
+} // end anonymous namespace
+
+static const OperandMatchEntry OperandMatchTable[133] = {
+ /* Operand List Mnemonic, Mask, Operand Class, Features */
+ { 0 /* add */, 8 /* 3 */, MCK_TPRelAddSymbol, AMFBS_None },
+ { 20 /* amoadd.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 29 /* amoadd.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 41 /* amoadd.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 55 /* amoadd.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 67 /* amoadd.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 76 /* amoadd.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 88 /* amoadd.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 102 /* amoadd.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 114 /* amoand.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 123 /* amoand.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 135 /* amoand.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 149 /* amoand.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 161 /* amoand.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 170 /* amoand.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 182 /* amoand.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 196 /* amoand.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 208 /* amomax.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 217 /* amomax.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 229 /* amomax.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 243 /* amomax.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 255 /* amomax.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 264 /* amomax.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 276 /* amomax.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 290 /* amomax.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 302 /* amomaxu.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 312 /* amomaxu.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 325 /* amomaxu.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 340 /* amomaxu.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 353 /* amomaxu.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 363 /* amomaxu.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 376 /* amomaxu.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 391 /* amomaxu.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 404 /* amomin.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 413 /* amomin.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 425 /* amomin.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 439 /* amomin.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 451 /* amomin.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 460 /* amomin.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 472 /* amomin.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 486 /* amomin.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 498 /* amominu.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 508 /* amominu.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 521 /* amominu.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 536 /* amominu.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 549 /* amominu.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 559 /* amominu.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 572 /* amominu.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 587 /* amominu.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 600 /* amoor.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 608 /* amoor.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 619 /* amoor.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 632 /* amoor.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 643 /* amoor.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 651 /* amoor.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 662 /* amoor.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 675 /* amoor.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 686 /* amoswap.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 696 /* amoswap.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 709 /* amoswap.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 724 /* amoswap.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 737 /* amoswap.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 747 /* amoswap.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 760 /* amoswap.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 775 /* amoswap.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 788 /* amoxor.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 797 /* amoxor.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 809 /* amoxor.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 823 /* amoxor.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 835 /* amoxor.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 844 /* amoxor.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 856 /* amoxor.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 870 /* amoxor.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 1285 /* call */, 1 /* 0 */, MCK_CallSymbol, AMFBS_None },
+ { 1285 /* call */, 2 /* 1 */, MCK_CallSymbol, AMFBS_None },
+ { 1290 /* csrc */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1290 /* csrc */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1295 /* csrci */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1301 /* csrr */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1306 /* csrrc */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1306 /* csrrc */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1312 /* csrrci */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1319 /* csrrs */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1319 /* csrrs */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1325 /* csrrsi */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1332 /* csrrw */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1332 /* csrrw */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1338 /* csrrwi */, 2 /* 1 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1345 /* csrs */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1345 /* csrs */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1350 /* csrsi */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1356 /* csrw */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1356 /* csrw */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1361 /* csrwi */, 1 /* 0 */, MCK_CSRSystemRegister, AMFBS_None },
+ { 1690 /* fld */, 2 /* 1 */, MCK_BareSymbol, AMFBS_HasStdExtD },
+ { 1718 /* flw */, 2 /* 1 */, MCK_BareSymbol, AMFBS_HasStdExtF },
+ { 1920 /* fsd */, 2 /* 1 */, MCK_BareSymbol, AMFBS_HasStdExtD },
+ { 2039 /* fsw */, 2 /* 1 */, MCK_BareSymbol, AMFBS_HasStdExtF },
+ { 2043 /* j */, 1 /* 0 */, MCK_SImm21Lsb0JAL, AMFBS_None },
+ { 2045 /* jal */, 1 /* 0 */, MCK_SImm21Lsb0JAL, AMFBS_None },
+ { 2045 /* jal */, 2 /* 1 */, MCK_SImm21Lsb0JAL, AMFBS_None },
+ { 2057 /* la */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2060 /* la.tls.gd */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2070 /* la.tls.ie */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2080 /* lb */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2083 /* lbu */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2087 /* ld */, 2 /* 1 */, MCK_BareSymbol, AMFBS_IsRV64 },
+ { 2090 /* lh */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2093 /* lhu */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2100 /* lla */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2104 /* lr.d */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2109 /* lr.d.aq */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2117 /* lr.d.aqrl */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2127 /* lr.d.rl */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2135 /* lr.w */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2140 /* lr.w.aq */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2148 /* lr.w.aqrl */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2158 /* lr.w.rl */, 2 /* 1 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2170 /* lw */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2173 /* lwu */, 2 /* 1 */, MCK_BareSymbol, AMFBS_IsRV64 },
+ { 2313 /* sb */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2316 /* sc.d */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2321 /* sc.d.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2329 /* sc.d.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2339 /* sc.d.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA_IsRV64 },
+ { 2347 /* sc.w */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2352 /* sc.w.aq */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2360 /* sc.w.aqrl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2370 /* sc.w.rl */, 4 /* 2 */, MCK_AtomicMemOpOperand, AMFBS_HasStdExtA },
+ { 2378 /* sd */, 2 /* 1 */, MCK_BareSymbol, AMFBS_IsRV64 },
+ { 2418 /* sh */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2525 /* sw */, 2 /* 1 */, MCK_BareSymbol, AMFBS_None },
+ { 2528 /* tail */, 1 /* 0 */, MCK_CallSymbol, AMFBS_None },
+};
+
+OperandMatchResultTy RISCVAsmParser::
+tryCustomParseOperand(OperandVector &Operands,
+ unsigned MCK) {
+
+ switch(MCK) {
+ case MCK_AtomicMemOpOperand:
+ return parseAtomicMemOp(Operands);
+ case MCK_BareSymbol:
+ return parseBareSymbol(Operands);
+ case MCK_CSRSystemRegister:
+ return parseCSRSystemRegister(Operands);
+ case MCK_CallSymbol:
+ return parseCallSymbol(Operands);
+ case MCK_SImm21Lsb0JAL:
+ return parseJALOffset(Operands);
+ case MCK_TPRelAddSymbol:
+ return parseOperandWithModifier(Operands);
+ default:
+ return MatchOperand_NoMatch;
+ }
+ return MatchOperand_NoMatch;
+}
+
+OperandMatchResultTy RISCVAsmParser::
+MatchOperandParserImpl(OperandVector &Operands,
+ StringRef Mnemonic,
+ bool ParseForAllFeatures) {
+ // Get the current feature set.
+ const FeatureBitset &AvailableFeatures = getAvailableFeatures();
+
+ // Get the next operand index.
+ unsigned NextOpNum = Operands.size() - 1;
+ // Search the table.
+ auto MnemonicRange =
+ std::equal_range(std::begin(OperandMatchTable), std::end(OperandMatchTable),
+ Mnemonic, LessOpcodeOperand());
+
+ if (MnemonicRange.first == MnemonicRange.second)
+ return MatchOperand_NoMatch;
+
+ for (const OperandMatchEntry *it = MnemonicRange.first,
+ *ie = MnemonicRange.second; it != ie; ++it) {
+ // equal_range guarantees that instruction mnemonic matches.
+ assert(Mnemonic == it->getMnemonic());
+
+ // check if the available features match
+ const FeatureBitset &RequiredFeatures = FeatureBitsets[it->RequiredFeaturesIdx];
+ if (!ParseForAllFeatures && (AvailableFeatures & RequiredFeatures) != RequiredFeatures)
+ continue;
+
+ // check if the operand in question has a custom parser.
+ if (!(it->OperandMask & (1 << NextOpNum)))
+ continue;
+
+ // call custom parse method to handle the operand
+ OperandMatchResultTy Result = tryCustomParseOperand(Operands, it->Class);
+ if (Result != MatchOperand_NoMatch)
+ return Result;
+ }
+
+ // Okay, we had no match.
+ return MatchOperand_NoMatch;
+}
+
+#endif // GET_MATCHER_IMPLEMENTATION
+
+
+#ifdef GET_MNEMONIC_SPELL_CHECKER
+#undef GET_MNEMONIC_SPELL_CHECKER
+
+static std::string RISCVMnemonicSpellCheck(StringRef S, const FeatureBitset &FBS, unsigned VariantID) {
+ const unsigned MaxEditDist = 2;
+ std::vector<StringRef> Candidates;
+ StringRef Prev = "";
+
+ // Find the appropriate table for this asm variant.
+ const MatchEntry *Start, *End;
+ switch (VariantID) {
+ default: llvm_unreachable("invalid variant!");
+ case 0: Start = std::begin(MatchTable0); End = std::end(MatchTable0); break;
+ }
+
+ for (auto I = Start; I < End; I++) {
+ // Ignore unsupported instructions.
+ const FeatureBitset &RequiredFeatures = FeatureBitsets[I->RequiredFeaturesIdx];
+ if ((FBS & RequiredFeatures) != RequiredFeatures)
+ continue;
+
+ StringRef T = I->getMnemonic();
+ // Avoid recomputing the edit distance for the same string.
+ if (T.equals(Prev))
+ continue;
+
+ Prev = T;
+ unsigned Dist = S.edit_distance(T, false, MaxEditDist);
+ if (Dist <= MaxEditDist)
+ Candidates.push_back(T);
+ }
+
+ if (Candidates.empty())
+ return "";
+
+ std::string Res = ", did you mean: ";
+ unsigned i = 0;
+ for( ; i < Candidates.size() - 1; i++)
+ Res += Candidates[i].str() + ", ";
+ return Res + Candidates[i].str() + "?";
+}
+
+#endif // GET_MNEMONIC_SPELL_CHECKER
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmWriter.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmWriter.inc
new file mode 100644
index 0000000..841f5c0
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenAsmWriter.inc
@@ -0,0 +1,2475 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Assembly Writer Source Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+/// printInstruction - This method is automatically generated by tablegen
+/// from the instruction set description.
+void RISCVInstPrinter::printInstruction(const MCInst *MI, uint64_t Address, const MCSubtargetInfo &STI, raw_ostream &O) {
+ static const char AsmStrs[] = {
+ /* 0 */ 'c', '.', 's', 'r', 'a', 'i', '6', '4', 9, 0,
+ /* 10 */ 'c', '.', 's', 'l', 'l', 'i', '6', '4', 9, 0,
+ /* 20 */ 'c', '.', 's', 'r', 'l', 'i', '6', '4', 9, 0,
+ /* 30 */ 'l', 'l', 'a', 9, 0,
+ /* 35 */ 's', 'f', 'e', 'n', 'c', 'e', '.', 'v', 'm', 'a', 9, 0,
+ /* 47 */ 's', 'r', 'a', 9, 0,
+ /* 52 */ 'l', 'b', 9, 0,
+ /* 56 */ 's', 'b', 9, 0,
+ /* 60 */ 'c', '.', 's', 'u', 'b', 9, 0,
+ /* 67 */ 'a', 'u', 'i', 'p', 'c', 9, 0,
+ /* 74 */ 'c', 's', 'r', 'r', 'c', 9, 0,
+ /* 81 */ 'f', 's', 'u', 'b', '.', 'd', 9, 0,
+ /* 89 */ 'f', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
+ /* 98 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 'd', 9, 0,
+ /* 108 */ 's', 'c', '.', 'd', 9, 0,
+ /* 114 */ 'f', 'a', 'd', 'd', '.', 'd', 9, 0,
+ /* 122 */ 'f', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
+ /* 131 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 'd', 9, 0,
+ /* 141 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', 9, 0,
+ /* 151 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', 9, 0,
+ /* 161 */ 'f', 'l', 'e', '.', 'd', 9, 0,
+ /* 168 */ 'f', 's', 'g', 'n', 'j', '.', 'd', 9, 0,
+ /* 177 */ 'f', 'c', 'v', 't', '.', 'l', '.', 'd', 9, 0,
+ /* 187 */ 'f', 'm', 'u', 'l', '.', 'd', 9, 0,
+ /* 195 */ 'f', 'm', 'i', 'n', '.', 'd', 9, 0,
+ /* 203 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', 9, 0,
+ /* 213 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 'd', 9, 0,
+ /* 223 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', 9, 0,
+ /* 234 */ 'f', 'e', 'q', '.', 'd', 9, 0,
+ /* 241 */ 'l', 'r', '.', 'd', 9, 0,
+ /* 247 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', 9, 0,
+ /* 256 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', 9, 0,
+ /* 266 */ 'f', 'c', 'v', 't', '.', 's', '.', 'd', 9, 0,
+ /* 276 */ 'f', 'c', 'l', 'a', 's', 's', '.', 'd', 9, 0,
+ /* 286 */ 'f', 'l', 't', '.', 'd', 9, 0,
+ /* 293 */ 'f', 's', 'q', 'r', 't', '.', 'd', 9, 0,
+ /* 302 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 'd', 9, 0,
+ /* 313 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', 9, 0,
+ /* 324 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 'd', 9, 0,
+ /* 335 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', 9, 0,
+ /* 346 */ 'f', 'd', 'i', 'v', '.', 'd', 9, 0,
+ /* 354 */ 'f', 'c', 'v', 't', '.', 'w', '.', 'd', 9, 0,
+ /* 364 */ 'f', 'm', 'v', '.', 'x', '.', 'd', 9, 0,
+ /* 373 */ 'f', 'm', 'a', 'x', '.', 'd', 9, 0,
+ /* 381 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', 9, 0,
+ /* 391 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 'd', 9, 0,
+ /* 401 */ 'c', '.', 'a', 'd', 'd', 9, 0,
+ /* 408 */ 'l', 'a', '.', 't', 'l', 's', '.', 'g', 'd', 9, 0,
+ /* 419 */ 'c', '.', 'l', 'd', 9, 0,
+ /* 425 */ 'c', '.', 'f', 'l', 'd', 9, 0,
+ /* 432 */ 'c', '.', 'a', 'n', 'd', 9, 0,
+ /* 439 */ 'c', '.', 's', 'd', 9, 0,
+ /* 445 */ 'c', '.', 'f', 's', 'd', 9, 0,
+ /* 452 */ 'f', 'e', 'n', 'c', 'e', 9, 0,
+ /* 459 */ 'b', 'g', 'e', 9, 0,
+ /* 464 */ 'l', 'a', '.', 't', 'l', 's', '.', 'i', 'e', 9, 0,
+ /* 475 */ 'b', 'n', 'e', 9, 0,
+ /* 480 */ 'm', 'u', 'l', 'h', 9, 0,
+ /* 486 */ 's', 'h', 9, 0,
+ /* 490 */ 'f', 'e', 'n', 'c', 'e', '.', 'i', 9, 0,
+ /* 499 */ 'c', '.', 's', 'r', 'a', 'i', 9, 0,
+ /* 507 */ 'c', 's', 'r', 'r', 'c', 'i', 9, 0,
+ /* 515 */ 'c', '.', 'a', 'd', 'd', 'i', 9, 0,
+ /* 523 */ 'c', '.', 'a', 'n', 'd', 'i', 9, 0,
+ /* 531 */ 'w', 'f', 'i', 9, 0,
+ /* 536 */ 'c', '.', 'l', 'i', 9, 0,
+ /* 542 */ 'c', '.', 's', 'l', 'l', 'i', 9, 0,
+ /* 550 */ 'c', '.', 's', 'r', 'l', 'i', 9, 0,
+ /* 558 */ 'x', 'o', 'r', 'i', 9, 0,
+ /* 564 */ 'c', 's', 'r', 'r', 's', 'i', 9, 0,
+ /* 572 */ 's', 'l', 't', 'i', 9, 0,
+ /* 578 */ 'c', '.', 'l', 'u', 'i', 9, 0,
+ /* 585 */ 'c', 's', 'r', 'r', 'w', 'i', 9, 0,
+ /* 593 */ 'c', '.', 'j', 9, 0,
+ /* 598 */ 'c', '.', 'e', 'b', 'r', 'e', 'a', 'k', 9, 0,
+ /* 608 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 9, 0,
+ /* 618 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 9, 0,
+ /* 628 */ 'c', '.', 'j', 'a', 'l', 9, 0,
+ /* 635 */ 't', 'a', 'i', 'l', 9, 0,
+ /* 641 */ 'e', 'c', 'a', 'l', 'l', 9, 0,
+ /* 648 */ 's', 'l', 'l', 9, 0,
+ /* 653 */ 's', 'c', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 662 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 675 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 688 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 701 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 715 */ 'l', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 724 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 736 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 749 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 763 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 777 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'r', 'l', 9, 0,
+ /* 790 */ 's', 'c', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 799 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 812 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 825 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 838 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 852 */ 'l', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 861 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 873 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 886 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 900 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 914 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'r', 'l', 9, 0,
+ /* 927 */ 's', 'c', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 938 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 953 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 968 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 983 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 999 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1010 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1024 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1039 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1055 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1071 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1086 */ 's', 'c', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1097 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1112 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1127 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1142 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1158 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1169 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1183 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1198 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1214 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1230 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 'r', 'l', 9, 0,
+ /* 1245 */ 's', 'r', 'l', 9, 0,
+ /* 1250 */ 'm', 'u', 'l', 9, 0,
+ /* 1255 */ 'r', 'e', 'm', 9, 0,
+ /* 1260 */ 'c', '.', 'a', 'd', 'd', 'i', '4', 's', 'p', 'n', 9, 0,
+ /* 1272 */ 'f', 'e', 'n', 'c', 'e', '.', 't', 's', 'o', 9, 0,
+ /* 1283 */ 'c', '.', 'u', 'n', 'i', 'm', 'p', 9, 0,
+ /* 1292 */ 'c', '.', 'n', 'o', 'p', 9, 0,
+ /* 1299 */ 'c', '.', 'a', 'd', 'd', 'i', '1', '6', 's', 'p', 9, 0,
+ /* 1311 */ 'c', '.', 'l', 'd', 's', 'p', 9, 0,
+ /* 1319 */ 'c', '.', 'f', 'l', 'd', 's', 'p', 9, 0,
+ /* 1328 */ 'c', '.', 's', 'd', 's', 'p', 9, 0,
+ /* 1336 */ 'c', '.', 'f', 's', 'd', 's', 'p', 9, 0,
+ /* 1345 */ 'c', '.', 'l', 'w', 's', 'p', 9, 0,
+ /* 1353 */ 'c', '.', 'f', 'l', 'w', 's', 'p', 9, 0,
+ /* 1362 */ 'c', '.', 's', 'w', 's', 'p', 9, 0,
+ /* 1370 */ 'c', '.', 'f', 's', 'w', 's', 'p', 9, 0,
+ /* 1379 */ 's', 'c', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1388 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1401 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1414 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1427 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1441 */ 'l', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1450 */ 'a', 'm', 'o', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1462 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1475 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1489 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1503 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'd', '.', 'a', 'q', 9, 0,
+ /* 1516 */ 's', 'c', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1525 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1538 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1551 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1564 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1578 */ 'l', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1587 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1599 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1612 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1626 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1640 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', '.', 'a', 'q', 9, 0,
+ /* 1653 */ 'b', 'e', 'q', 9, 0,
+ /* 1658 */ 'c', '.', 'j', 'r', 9, 0,
+ /* 1664 */ 'c', '.', 'j', 'a', 'l', 'r', 9, 0,
+ /* 1672 */ 'c', '.', 'o', 'r', 9, 0,
+ /* 1678 */ 'c', '.', 'x', 'o', 'r', 9, 0,
+ /* 1685 */ 'f', 's', 'u', 'b', '.', 's', 9, 0,
+ /* 1693 */ 'f', 'm', 's', 'u', 'b', '.', 's', 9, 0,
+ /* 1702 */ 'f', 'n', 'm', 's', 'u', 'b', '.', 's', 9, 0,
+ /* 1712 */ 'f', 'c', 'v', 't', '.', 'd', '.', 's', 9, 0,
+ /* 1722 */ 'f', 'a', 'd', 'd', '.', 's', 9, 0,
+ /* 1730 */ 'f', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
+ /* 1739 */ 'f', 'n', 'm', 'a', 'd', 'd', '.', 's', 9, 0,
+ /* 1749 */ 'f', 'l', 'e', '.', 's', 9, 0,
+ /* 1756 */ 'f', 's', 'g', 'n', 'j', '.', 's', 9, 0,
+ /* 1765 */ 'f', 'c', 'v', 't', '.', 'l', '.', 's', 9, 0,
+ /* 1775 */ 'f', 'm', 'u', 'l', '.', 's', 9, 0,
+ /* 1783 */ 'f', 'm', 'i', 'n', '.', 's', 9, 0,
+ /* 1791 */ 'f', 's', 'g', 'n', 'j', 'n', '.', 's', 9, 0,
+ /* 1801 */ 'f', 'e', 'q', '.', 's', 9, 0,
+ /* 1808 */ 'f', 'c', 'l', 'a', 's', 's', '.', 's', 9, 0,
+ /* 1818 */ 'f', 'l', 't', '.', 's', 9, 0,
+ /* 1825 */ 'f', 's', 'q', 'r', 't', '.', 's', 9, 0,
+ /* 1834 */ 'f', 'c', 'v', 't', '.', 'l', 'u', '.', 's', 9, 0,
+ /* 1845 */ 'f', 'c', 'v', 't', '.', 'w', 'u', '.', 's', 9, 0,
+ /* 1856 */ 'f', 'd', 'i', 'v', '.', 's', 9, 0,
+ /* 1864 */ 'f', 'c', 'v', 't', '.', 'w', '.', 's', 9, 0,
+ /* 1874 */ 'f', 'm', 'a', 'x', '.', 's', 9, 0,
+ /* 1882 */ 'f', 's', 'g', 'n', 'j', 'x', '.', 's', 9, 0,
+ /* 1892 */ 'c', 's', 'r', 'r', 's', 9, 0,
+ /* 1899 */ 'm', 'r', 'e', 't', 9, 0,
+ /* 1905 */ 's', 'r', 'e', 't', 9, 0,
+ /* 1911 */ 'u', 'r', 'e', 't', 9, 0,
+ /* 1917 */ 'b', 'l', 't', 9, 0,
+ /* 1922 */ 's', 'l', 't', 9, 0,
+ /* 1927 */ 'l', 'b', 'u', 9, 0,
+ /* 1932 */ 'b', 'g', 'e', 'u', 9, 0,
+ /* 1938 */ 'm', 'u', 'l', 'h', 'u', 9, 0,
+ /* 1945 */ 's', 'l', 't', 'i', 'u', 9, 0,
+ /* 1952 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'l', 'u', 9, 0,
+ /* 1963 */ 'f', 'c', 'v', 't', '.', 's', '.', 'l', 'u', 9, 0,
+ /* 1974 */ 'r', 'e', 'm', 'u', 9, 0,
+ /* 1980 */ 'm', 'u', 'l', 'h', 's', 'u', 9, 0,
+ /* 1988 */ 'b', 'l', 't', 'u', 9, 0,
+ /* 1994 */ 's', 'l', 't', 'u', 9, 0,
+ /* 2000 */ 'd', 'i', 'v', 'u', 9, 0,
+ /* 2006 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 'u', 9, 0,
+ /* 2017 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 'u', 9, 0,
+ /* 2028 */ 'l', 'w', 'u', 9, 0,
+ /* 2033 */ 'd', 'i', 'v', 9, 0,
+ /* 2038 */ 'c', '.', 'm', 'v', 9, 0,
+ /* 2044 */ 's', 'c', '.', 'w', 9, 0,
+ /* 2050 */ 'f', 'c', 'v', 't', '.', 'd', '.', 'w', 9, 0,
+ /* 2060 */ 'a', 'm', 'o', 'a', 'd', 'd', '.', 'w', 9, 0,
+ /* 2070 */ 'a', 'm', 'o', 'a', 'n', 'd', '.', 'w', 9, 0,
+ /* 2080 */ 'a', 'm', 'o', 'm', 'i', 'n', '.', 'w', 9, 0,
+ /* 2090 */ 'a', 'm', 'o', 's', 'w', 'a', 'p', '.', 'w', 9, 0,
+ /* 2101 */ 'l', 'r', '.', 'w', 9, 0,
+ /* 2107 */ 'a', 'm', 'o', 'o', 'r', '.', 'w', 9, 0,
+ /* 2116 */ 'a', 'm', 'o', 'x', 'o', 'r', '.', 'w', 9, 0,
+ /* 2126 */ 'f', 'c', 'v', 't', '.', 's', '.', 'w', 9, 0,
+ /* 2136 */ 'a', 'm', 'o', 'm', 'i', 'n', 'u', '.', 'w', 9, 0,
+ /* 2147 */ 'a', 'm', 'o', 'm', 'a', 'x', 'u', '.', 'w', 9, 0,
+ /* 2158 */ 'f', 'm', 'v', '.', 'x', '.', 'w', 9, 0,
+ /* 2167 */ 'a', 'm', 'o', 'm', 'a', 'x', '.', 'w', 9, 0,
+ /* 2177 */ 's', 'r', 'a', 'w', 9, 0,
+ /* 2183 */ 'c', '.', 's', 'u', 'b', 'w', 9, 0,
+ /* 2191 */ 'c', '.', 'a', 'd', 'd', 'w', 9, 0,
+ /* 2199 */ 's', 'r', 'a', 'i', 'w', 9, 0,
+ /* 2206 */ 'c', '.', 'a', 'd', 'd', 'i', 'w', 9, 0,
+ /* 2215 */ 's', 'l', 'l', 'i', 'w', 9, 0,
+ /* 2222 */ 's', 'r', 'l', 'i', 'w', 9, 0,
+ /* 2229 */ 'c', '.', 'l', 'w', 9, 0,
+ /* 2235 */ 'c', '.', 'f', 'l', 'w', 9, 0,
+ /* 2242 */ 's', 'l', 'l', 'w', 9, 0,
+ /* 2248 */ 's', 'r', 'l', 'w', 9, 0,
+ /* 2254 */ 'm', 'u', 'l', 'w', 9, 0,
+ /* 2260 */ 'r', 'e', 'm', 'w', 9, 0,
+ /* 2266 */ 'c', 's', 'r', 'r', 'w', 9, 0,
+ /* 2273 */ 'c', '.', 's', 'w', 9, 0,
+ /* 2279 */ 'c', '.', 'f', 's', 'w', 9, 0,
+ /* 2286 */ 'r', 'e', 'm', 'u', 'w', 9, 0,
+ /* 2293 */ 'd', 'i', 'v', 'u', 'w', 9, 0,
+ /* 2300 */ 'd', 'i', 'v', 'w', 9, 0,
+ /* 2306 */ 'f', 'm', 'v', '.', 'd', '.', 'x', 9, 0,
+ /* 2315 */ 'f', 'm', 'v', '.', 'w', '.', 'x', 9, 0,
+ /* 2324 */ 'c', '.', 'b', 'n', 'e', 'z', 9, 0,
+ /* 2332 */ 'c', '.', 'b', 'e', 'q', 'z', 9, 0,
+ /* 2340 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'P', 'a', 't', 'c', 'h', 'a', 'b', 'l', 'e', 32, 'R', 'E', 'T', '.', 0,
+ /* 2371 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'y', 'p', 'e', 'd', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
+ /* 2395 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'C', 'u', 's', 't', 'o', 'm', 32, 'E', 'v', 'e', 'n', 't', 32, 'L', 'o', 'g', '.', 0,
+ /* 2420 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'n', 't', 'e', 'r', '.', 0,
+ /* 2443 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'T', 'a', 'i', 'l', 32, 'C', 'a', 'l', 'l', 32, 'E', 'x', 'i', 't', '.', 0,
+ /* 2466 */ '#', 32, 'X', 'R', 'a', 'y', 32, 'F', 'u', 'n', 'c', 't', 'i', 'o', 'n', 32, 'E', 'x', 'i', 't', '.', 0,
+ /* 2488 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
+ /* 2501 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
+ /* 2508 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
+ /* 2518 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
+ /* 2528 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
+ /* 2543 */ '#', 32, 'F', 'E', 'n', 't', 'r', 'y', 32, 'c', 'a', 'l', 'l', 0,
+ };
+
+ static const uint16_t OpInfo0[] = {
+ 0U, // PHI
+ 0U, // INLINEASM
+ 0U, // INLINEASM_BR
+ 0U, // CFI_INSTRUCTION
+ 0U, // EH_LABEL
+ 0U, // GC_LABEL
+ 0U, // ANNOTATION_LABEL
+ 0U, // KILL
+ 0U, // EXTRACT_SUBREG
+ 0U, // INSERT_SUBREG
+ 0U, // IMPLICIT_DEF
+ 0U, // SUBREG_TO_REG
+ 0U, // COPY_TO_REGCLASS
+ 2509U, // DBG_VALUE
+ 2519U, // DBG_LABEL
+ 0U, // REG_SEQUENCE
+ 0U, // COPY
+ 2502U, // BUNDLE
+ 2529U, // LIFETIME_START
+ 2489U, // LIFETIME_END
+ 0U, // STACKMAP
+ 2544U, // FENTRY_CALL
+ 0U, // PATCHPOINT
+ 0U, // LOAD_STACK_GUARD
+ 0U, // STATEPOINT
+ 0U, // LOCAL_ESCAPE
+ 0U, // FAULTING_OP
+ 0U, // PATCHABLE_OP
+ 2421U, // PATCHABLE_FUNCTION_ENTER
+ 2341U, // PATCHABLE_RET
+ 2467U, // PATCHABLE_FUNCTION_EXIT
+ 2444U, // PATCHABLE_TAIL_CALL
+ 2396U, // PATCHABLE_EVENT_CALL
+ 2372U, // PATCHABLE_TYPED_EVENT_CALL
+ 0U, // ICALL_BRANCH_FUNNEL
+ 0U, // G_ADD
+ 0U, // G_SUB
+ 0U, // G_MUL
+ 0U, // G_SDIV
+ 0U, // G_UDIV
+ 0U, // G_SREM
+ 0U, // G_UREM
+ 0U, // G_AND
+ 0U, // G_OR
+ 0U, // G_XOR
+ 0U, // G_IMPLICIT_DEF
+ 0U, // G_PHI
+ 0U, // G_FRAME_INDEX
+ 0U, // G_GLOBAL_VALUE
+ 0U, // G_EXTRACT
+ 0U, // G_UNMERGE_VALUES
+ 0U, // G_INSERT
+ 0U, // G_MERGE_VALUES
+ 0U, // G_BUILD_VECTOR
+ 0U, // G_BUILD_VECTOR_TRUNC
+ 0U, // G_CONCAT_VECTORS
+ 0U, // G_PTRTOINT
+ 0U, // G_INTTOPTR
+ 0U, // G_BITCAST
+ 0U, // G_INTRINSIC_TRUNC
+ 0U, // G_INTRINSIC_ROUND
+ 0U, // G_READCYCLECOUNTER
+ 0U, // G_LOAD
+ 0U, // G_SEXTLOAD
+ 0U, // G_ZEXTLOAD
+ 0U, // G_INDEXED_LOAD
+ 0U, // G_INDEXED_SEXTLOAD
+ 0U, // G_INDEXED_ZEXTLOAD
+ 0U, // G_STORE
+ 0U, // G_INDEXED_STORE
+ 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
+ 0U, // G_ATOMIC_CMPXCHG
+ 0U, // G_ATOMICRMW_XCHG
+ 0U, // G_ATOMICRMW_ADD
+ 0U, // G_ATOMICRMW_SUB
+ 0U, // G_ATOMICRMW_AND
+ 0U, // G_ATOMICRMW_NAND
+ 0U, // G_ATOMICRMW_OR
+ 0U, // G_ATOMICRMW_XOR
+ 0U, // G_ATOMICRMW_MAX
+ 0U, // G_ATOMICRMW_MIN
+ 0U, // G_ATOMICRMW_UMAX
+ 0U, // G_ATOMICRMW_UMIN
+ 0U, // G_ATOMICRMW_FADD
+ 0U, // G_ATOMICRMW_FSUB
+ 0U, // G_FENCE
+ 0U, // G_BRCOND
+ 0U, // G_BRINDIRECT
+ 0U, // G_INTRINSIC
+ 0U, // G_INTRINSIC_W_SIDE_EFFECTS
+ 0U, // G_ANYEXT
+ 0U, // G_TRUNC
+ 0U, // G_CONSTANT
+ 0U, // G_FCONSTANT
+ 0U, // G_VASTART
+ 0U, // G_VAARG
+ 0U, // G_SEXT
+ 0U, // G_SEXT_INREG
+ 0U, // G_ZEXT
+ 0U, // G_SHL
+ 0U, // G_LSHR
+ 0U, // G_ASHR
+ 0U, // G_ICMP
+ 0U, // G_FCMP
+ 0U, // G_SELECT
+ 0U, // G_UADDO
+ 0U, // G_UADDE
+ 0U, // G_USUBO
+ 0U, // G_USUBE
+ 0U, // G_SADDO
+ 0U, // G_SADDE
+ 0U, // G_SSUBO
+ 0U, // G_SSUBE
+ 0U, // G_UMULO
+ 0U, // G_SMULO
+ 0U, // G_UMULH
+ 0U, // G_SMULH
+ 0U, // G_FADD
+ 0U, // G_FSUB
+ 0U, // G_FMUL
+ 0U, // G_FMA
+ 0U, // G_FMAD
+ 0U, // G_FDIV
+ 0U, // G_FREM
+ 0U, // G_FPOW
+ 0U, // G_FEXP
+ 0U, // G_FEXP2
+ 0U, // G_FLOG
+ 0U, // G_FLOG2
+ 0U, // G_FLOG10
+ 0U, // G_FNEG
+ 0U, // G_FPEXT
+ 0U, // G_FPTRUNC
+ 0U, // G_FPTOSI
+ 0U, // G_FPTOUI
+ 0U, // G_SITOFP
+ 0U, // G_UITOFP
+ 0U, // G_FABS
+ 0U, // G_FCOPYSIGN
+ 0U, // G_FCANONICALIZE
+ 0U, // G_FMINNUM
+ 0U, // G_FMAXNUM
+ 0U, // G_FMINNUM_IEEE
+ 0U, // G_FMAXNUM_IEEE
+ 0U, // G_FMINIMUM
+ 0U, // G_FMAXIMUM
+ 0U, // G_PTR_ADD
+ 0U, // G_PTR_MASK
+ 0U, // G_SMIN
+ 0U, // G_SMAX
+ 0U, // G_UMIN
+ 0U, // G_UMAX
+ 0U, // G_BR
+ 0U, // G_BRJT
+ 0U, // G_INSERT_VECTOR_ELT
+ 0U, // G_EXTRACT_VECTOR_ELT
+ 0U, // G_SHUFFLE_VECTOR
+ 0U, // G_CTTZ
+ 0U, // G_CTTZ_ZERO_UNDEF
+ 0U, // G_CTLZ
+ 0U, // G_CTLZ_ZERO_UNDEF
+ 0U, // G_CTPOP
+ 0U, // G_BSWAP
+ 0U, // G_BITREVERSE
+ 0U, // G_FCEIL
+ 0U, // G_FCOS
+ 0U, // G_FSIN
+ 0U, // G_FSQRT
+ 0U, // G_FFLOOR
+ 0U, // G_FRINT
+ 0U, // G_FNEARBYINT
+ 0U, // G_ADDRSPACE_CAST
+ 0U, // G_BLOCK_ADDR
+ 0U, // G_JUMP_TABLE
+ 0U, // G_DYN_STACKALLOC
+ 0U, // G_READ_REGISTER
+ 0U, // G_WRITE_REGISTER
+ 9U, // ADJCALLSTACKDOWN
+ 9U, // ADJCALLSTACKUP
+ 9U, // BuildPairF64Pseudo
+ 4500U, // PseudoAddTPRel
+ 9U, // PseudoAtomicLoadNand32
+ 9U, // PseudoAtomicLoadNand64
+ 9U, // PseudoBR
+ 9U, // PseudoBRIND
+ 21123U, // PseudoCALL
+ 9U, // PseudoCALLIndirect
+ 4739U, // PseudoCALLReg
+ 9U, // PseudoCmpXchg32
+ 9U, // PseudoCmpXchg64
+ 37292U, // PseudoFLD
+ 39102U, // PseudoFLW
+ 37312U, // PseudoFSD
+ 39146U, // PseudoFSW
+ 4128U, // PseudoLA
+ 4505U, // PseudoLA_TLS_GD
+ 4561U, // PseudoLA_TLS_IE
+ 4149U, // PseudoLB
+ 6024U, // PseudoLBU
+ 4518U, // PseudoLD
+ 4579U, // PseudoLH
+ 6037U, // PseudoLHU
+ 4635U, // PseudoLI
+ 4127U, // PseudoLLA
+ 6328U, // PseudoLW
+ 6125U, // PseudoLWU
+ 9U, // PseudoMaskedAtomicLoadAdd32
+ 9U, // PseudoMaskedAtomicLoadMax32
+ 9U, // PseudoMaskedAtomicLoadMin32
+ 9U, // PseudoMaskedAtomicLoadNand32
+ 9U, // PseudoMaskedAtomicLoadSub32
+ 9U, // PseudoMaskedAtomicLoadUMax32
+ 9U, // PseudoMaskedAtomicLoadUMin32
+ 9U, // PseudoMaskedAtomicSwap32
+ 9U, // PseudoMaskedCmpXchg32
+ 9U, // PseudoRET
+ 36921U, // PseudoSB
+ 37306U, // PseudoSD
+ 37351U, // PseudoSH
+ 39140U, // PseudoSW
+ 21116U, // PseudoTAIL
+ 9U, // PseudoTAILIndirect
+ 9U, // ReadCycleWide
+ 9U, // Select_FPR32_Using_CC_GPR
+ 9U, // Select_FPR64_Using_CC_GPR
+ 9U, // Select_GPR_Using_CC_GPR
+ 9U, // SplitF64Pseudo
+ 4500U, // ADD
+ 4614U, // ADDI
+ 6305U, // ADDIW
+ 6290U, // ADDW
+ 37006U, // AMOADD_D
+ 38253U, // AMOADD_D_AQ
+ 37803U, // AMOADD_D_AQ_RL
+ 37527U, // AMOADD_D_RL
+ 38925U, // AMOADD_W
+ 38390U, // AMOADD_W_AQ
+ 37962U, // AMOADD_W_AQ_RL
+ 37664U, // AMOADD_W_RL
+ 37016U, // AMOAND_D
+ 38266U, // AMOAND_D_AQ
+ 37818U, // AMOAND_D_AQ_RL
+ 37540U, // AMOAND_D_RL
+ 38935U, // AMOAND_W
+ 38403U, // AMOAND_W_AQ
+ 37977U, // AMOAND_W_AQ_RL
+ 37677U, // AMOAND_W_RL
+ 37200U, // AMOMAXU_D
+ 38354U, // AMOMAXU_D_AQ
+ 37920U, // AMOMAXU_D_AQ_RL
+ 37628U, // AMOMAXU_D_RL
+ 39012U, // AMOMAXU_W
+ 38491U, // AMOMAXU_W_AQ
+ 38079U, // AMOMAXU_W_AQ_RL
+ 37765U, // AMOMAXU_W_RL
+ 37246U, // AMOMAX_D
+ 38368U, // AMOMAX_D_AQ
+ 37936U, // AMOMAX_D_AQ_RL
+ 37642U, // AMOMAX_D_RL
+ 39032U, // AMOMAX_W
+ 38505U, // AMOMAX_W_AQ
+ 38095U, // AMOMAX_W_AQ_RL
+ 37779U, // AMOMAX_W_RL
+ 37178U, // AMOMINU_D
+ 38340U, // AMOMINU_D_AQ
+ 37904U, // AMOMINU_D_AQ_RL
+ 37614U, // AMOMINU_D_RL
+ 39001U, // AMOMINU_W
+ 38477U, // AMOMINU_W_AQ
+ 38063U, // AMOMINU_W_AQ_RL
+ 37751U, // AMOMINU_W_RL
+ 37068U, // AMOMIN_D
+ 38279U, // AMOMIN_D_AQ
+ 37833U, // AMOMIN_D_AQ_RL
+ 37553U, // AMOMIN_D_RL
+ 38945U, // AMOMIN_W
+ 38416U, // AMOMIN_W_AQ
+ 37992U, // AMOMIN_W_AQ_RL
+ 37690U, // AMOMIN_W_RL
+ 37112U, // AMOOR_D
+ 38315U, // AMOOR_D_AQ
+ 37875U, // AMOOR_D_AQ_RL
+ 37589U, // AMOOR_D_RL
+ 38972U, // AMOOR_W
+ 38452U, // AMOOR_W_AQ
+ 38034U, // AMOOR_W_AQ_RL
+ 37726U, // AMOOR_W_RL
+ 37088U, // AMOSWAP_D
+ 38292U, // AMOSWAP_D_AQ
+ 37848U, // AMOSWAP_D_AQ_RL
+ 37566U, // AMOSWAP_D_RL
+ 38955U, // AMOSWAP_W
+ 38429U, // AMOSWAP_W_AQ
+ 38007U, // AMOSWAP_W_AQ_RL
+ 37703U, // AMOSWAP_W_RL
+ 37121U, // AMOXOR_D
+ 38327U, // AMOXOR_D_AQ
+ 37889U, // AMOXOR_D_AQ_RL
+ 37601U, // AMOXOR_D_RL
+ 38981U, // AMOXOR_W
+ 38464U, // AMOXOR_W_AQ
+ 38048U, // AMOXOR_W_AQ_RL
+ 37738U, // AMOXOR_W_RL
+ 4531U, // AND
+ 4622U, // ANDI
+ 4164U, // AUIPC
+ 5750U, // BEQ
+ 4556U, // BGE
+ 6029U, // BGEU
+ 6014U, // BLT
+ 6085U, // BLTU
+ 4572U, // BNE
+ 4171U, // CSRRC
+ 4604U, // CSRRCI
+ 5989U, // CSRRS
+ 4661U, // CSRRSI
+ 6363U, // CSRRW
+ 4682U, // CSRRWI
+ 41362U, // C_ADD
+ 41476U, // C_ADDI
+ 42260U, // C_ADDI16SP
+ 5357U, // C_ADDI4SPN
+ 43167U, // C_ADDIW
+ 41476U, // C_ADDI_HINT_IMM_ZERO
+ 41476U, // C_ADDI_HINT_X0
+ 41476U, // C_ADDI_NOP
+ 43152U, // C_ADDW
+ 41362U, // C_ADD_HINT
+ 41393U, // C_AND
+ 41484U, // C_ANDI
+ 6429U, // C_BEQZ
+ 6421U, // C_BNEZ
+ 599U, // C_EBREAK
+ 37290U, // C_FLD
+ 38184U, // C_FLDSP
+ 39100U, // C_FLW
+ 38218U, // C_FLWSP
+ 37310U, // C_FSD
+ 38201U, // C_FSDSP
+ 39144U, // C_FSW
+ 38235U, // C_FSWSP
+ 21074U, // C_J
+ 21109U, // C_JAL
+ 22145U, // C_JALR
+ 22139U, // C_JR
+ 37284U, // C_LD
+ 38176U, // C_LDSP
+ 4633U, // C_LI
+ 4633U, // C_LI_HINT
+ 4675U, // C_LUI
+ 4675U, // C_LUI_HINT
+ 39094U, // C_LW
+ 38210U, // C_LWSP
+ 6135U, // C_MV
+ 6135U, // C_MV_HINT
+ 1293U, // C_NOP
+ 21773U, // C_NOP_HINT
+ 42633U, // C_OR
+ 37304U, // C_SD
+ 38193U, // C_SDSP
+ 41503U, // C_SLLI
+ 24587U, // C_SLLI64_HINT
+ 41503U, // C_SLLI_HINT
+ 41460U, // C_SRAI
+ 24577U, // C_SRAI64_HINT
+ 41511U, // C_SRLI
+ 24597U, // C_SRLI64_HINT
+ 41021U, // C_SUB
+ 43144U, // C_SUBW
+ 39138U, // C_SW
+ 38227U, // C_SWSP
+ 1284U, // C_UNIMP
+ 42639U, // C_XOR
+ 6130U, // DIV
+ 6097U, // DIVU
+ 6390U, // DIVUW
+ 6397U, // DIVW
+ 601U, // EBREAK
+ 642U, // ECALL
+ 4211U, // FADD_D
+ 5819U, // FADD_S
+ 4373U, // FCLASS_D
+ 5905U, // FCLASS_S
+ 4705U, // FCVT_D_L
+ 6049U, // FCVT_D_LU
+ 5809U, // FCVT_D_S
+ 6147U, // FCVT_D_W
+ 6103U, // FCVT_D_WU
+ 4399U, // FCVT_LU_D
+ 5931U, // FCVT_LU_S
+ 4274U, // FCVT_L_D
+ 5862U, // FCVT_L_S
+ 4363U, // FCVT_S_D
+ 4715U, // FCVT_S_L
+ 6060U, // FCVT_S_LU
+ 6223U, // FCVT_S_W
+ 6114U, // FCVT_S_WU
+ 4421U, // FCVT_WU_D
+ 5942U, // FCVT_WU_S
+ 4451U, // FCVT_W_D
+ 5961U, // FCVT_W_S
+ 4443U, // FDIV_D
+ 5953U, // FDIV_S
+ 12741U, // FENCE
+ 491U, // FENCE_I
+ 1273U, // FENCE_TSO
+ 4331U, // FEQ_D
+ 5898U, // FEQ_S
+ 37292U, // FLD
+ 4258U, // FLE_D
+ 5846U, // FLE_S
+ 4383U, // FLT_D
+ 5915U, // FLT_S
+ 39102U, // FLW
+ 4219U, // FMADD_D
+ 5827U, // FMADD_S
+ 4470U, // FMAX_D
+ 5971U, // FMAX_S
+ 4292U, // FMIN_D
+ 5880U, // FMIN_S
+ 4186U, // FMSUB_D
+ 5790U, // FMSUB_S
+ 4284U, // FMUL_D
+ 5872U, // FMUL_S
+ 6403U, // FMV_D_X
+ 6412U, // FMV_W_X
+ 4461U, // FMV_X_D
+ 6255U, // FMV_X_W
+ 4228U, // FNMADD_D
+ 5836U, // FNMADD_S
+ 4195U, // FNMSUB_D
+ 5799U, // FNMSUB_S
+ 37312U, // FSD
+ 4310U, // FSGNJN_D
+ 5888U, // FSGNJN_S
+ 4488U, // FSGNJX_D
+ 5979U, // FSGNJX_S
+ 4265U, // FSGNJ_D
+ 5853U, // FSGNJ_S
+ 4390U, // FSQRT_D
+ 5922U, // FSQRT_S
+ 4178U, // FSUB_D
+ 5782U, // FSUB_S
+ 39146U, // FSW
+ 4727U, // JAL
+ 38531U, // JALR
+ 36917U, // LB
+ 38792U, // LBU
+ 37286U, // LD
+ 37347U, // LH
+ 38805U, // LHU
+ 37106U, // LR_D
+ 38306U, // LR_D_AQ
+ 37864U, // LR_D_AQ_RL
+ 37580U, // LR_D_RL
+ 38966U, // LR_W
+ 38443U, // LR_W_AQ
+ 38023U, // LR_W_AQ_RL
+ 37717U, // LR_W_RL
+ 4677U, // LUI
+ 39096U, // LW
+ 38893U, // LWU
+ 1900U, // MRET
+ 5347U, // MUL
+ 4577U, // MULH
+ 6077U, // MULHSU
+ 6035U, // MULHU
+ 6351U, // MULW
+ 5771U, // OR
+ 4656U, // ORI
+ 5352U, // REM
+ 6071U, // REMU
+ 6383U, // REMUW
+ 6357U, // REMW
+ 36921U, // SB
+ 36973U, // SC_D
+ 38244U, // SC_D_AQ
+ 37792U, // SC_D_AQ_RL
+ 37518U, // SC_D_RL
+ 38909U, // SC_W
+ 38381U, // SC_W_AQ
+ 37951U, // SC_W_AQ_RL
+ 37655U, // SC_W_RL
+ 37306U, // SD
+ 4132U, // SFENCE_VMA
+ 37351U, // SH
+ 4745U, // SLL
+ 4641U, // SLLI
+ 6312U, // SLLIW
+ 6339U, // SLLW
+ 6019U, // SLT
+ 4669U, // SLTI
+ 6042U, // SLTIU
+ 6091U, // SLTU
+ 4144U, // SRA
+ 4598U, // SRAI
+ 6296U, // SRAIW
+ 6274U, // SRAW
+ 1906U, // SRET
+ 5342U, // SRL
+ 4649U, // SRLI
+ 6319U, // SRLIW
+ 6345U, // SRLW
+ 4159U, // SUB
+ 6282U, // SUBW
+ 39140U, // SW
+ 1286U, // UNIMP
+ 1912U, // URET
+ 532U, // WFI
+ 5777U, // XOR
+ 4655U, // XORI
+ };
+
+ static const uint8_t OpInfo1[] = {
+ 0U, // PHI
+ 0U, // INLINEASM
+ 0U, // INLINEASM_BR
+ 0U, // CFI_INSTRUCTION
+ 0U, // EH_LABEL
+ 0U, // GC_LABEL
+ 0U, // ANNOTATION_LABEL
+ 0U, // KILL
+ 0U, // EXTRACT_SUBREG
+ 0U, // INSERT_SUBREG
+ 0U, // IMPLICIT_DEF
+ 0U, // SUBREG_TO_REG
+ 0U, // COPY_TO_REGCLASS
+ 0U, // DBG_VALUE
+ 0U, // DBG_LABEL
+ 0U, // REG_SEQUENCE
+ 0U, // COPY
+ 0U, // BUNDLE
+ 0U, // LIFETIME_START
+ 0U, // LIFETIME_END
+ 0U, // STACKMAP
+ 0U, // FENTRY_CALL
+ 0U, // PATCHPOINT
+ 0U, // LOAD_STACK_GUARD
+ 0U, // STATEPOINT
+ 0U, // LOCAL_ESCAPE
+ 0U, // FAULTING_OP
+ 0U, // PATCHABLE_OP
+ 0U, // PATCHABLE_FUNCTION_ENTER
+ 0U, // PATCHABLE_RET
+ 0U, // PATCHABLE_FUNCTION_EXIT
+ 0U, // PATCHABLE_TAIL_CALL
+ 0U, // PATCHABLE_EVENT_CALL
+ 0U, // PATCHABLE_TYPED_EVENT_CALL
+ 0U, // ICALL_BRANCH_FUNNEL
+ 0U, // G_ADD
+ 0U, // G_SUB
+ 0U, // G_MUL
+ 0U, // G_SDIV
+ 0U, // G_UDIV
+ 0U, // G_SREM
+ 0U, // G_UREM
+ 0U, // G_AND
+ 0U, // G_OR
+ 0U, // G_XOR
+ 0U, // G_IMPLICIT_DEF
+ 0U, // G_PHI
+ 0U, // G_FRAME_INDEX
+ 0U, // G_GLOBAL_VALUE
+ 0U, // G_EXTRACT
+ 0U, // G_UNMERGE_VALUES
+ 0U, // G_INSERT
+ 0U, // G_MERGE_VALUES
+ 0U, // G_BUILD_VECTOR
+ 0U, // G_BUILD_VECTOR_TRUNC
+ 0U, // G_CONCAT_VECTORS
+ 0U, // G_PTRTOINT
+ 0U, // G_INTTOPTR
+ 0U, // G_BITCAST
+ 0U, // G_INTRINSIC_TRUNC
+ 0U, // G_INTRINSIC_ROUND
+ 0U, // G_READCYCLECOUNTER
+ 0U, // G_LOAD
+ 0U, // G_SEXTLOAD
+ 0U, // G_ZEXTLOAD
+ 0U, // G_INDEXED_LOAD
+ 0U, // G_INDEXED_SEXTLOAD
+ 0U, // G_INDEXED_ZEXTLOAD
+ 0U, // G_STORE
+ 0U, // G_INDEXED_STORE
+ 0U, // G_ATOMIC_CMPXCHG_WITH_SUCCESS
+ 0U, // G_ATOMIC_CMPXCHG
+ 0U, // G_ATOMICRMW_XCHG
+ 0U, // G_ATOMICRMW_ADD
+ 0U, // G_ATOMICRMW_SUB
+ 0U, // G_ATOMICRMW_AND
+ 0U, // G_ATOMICRMW_NAND
+ 0U, // G_ATOMICRMW_OR
+ 0U, // G_ATOMICRMW_XOR
+ 0U, // G_ATOMICRMW_MAX
+ 0U, // G_ATOMICRMW_MIN
+ 0U, // G_ATOMICRMW_UMAX
+ 0U, // G_ATOMICRMW_UMIN
+ 0U, // G_ATOMICRMW_FADD
+ 0U, // G_ATOMICRMW_FSUB
+ 0U, // G_FENCE
+ 0U, // G_BRCOND
+ 0U, // G_BRINDIRECT
+ 0U, // G_INTRINSIC
+ 0U, // G_INTRINSIC_W_SIDE_EFFECTS
+ 0U, // G_ANYEXT
+ 0U, // G_TRUNC
+ 0U, // G_CONSTANT
+ 0U, // G_FCONSTANT
+ 0U, // G_VASTART
+ 0U, // G_VAARG
+ 0U, // G_SEXT
+ 0U, // G_SEXT_INREG
+ 0U, // G_ZEXT
+ 0U, // G_SHL
+ 0U, // G_LSHR
+ 0U, // G_ASHR
+ 0U, // G_ICMP
+ 0U, // G_FCMP
+ 0U, // G_SELECT
+ 0U, // G_UADDO
+ 0U, // G_UADDE
+ 0U, // G_USUBO
+ 0U, // G_USUBE
+ 0U, // G_SADDO
+ 0U, // G_SADDE
+ 0U, // G_SSUBO
+ 0U, // G_SSUBE
+ 0U, // G_UMULO
+ 0U, // G_SMULO
+ 0U, // G_UMULH
+ 0U, // G_SMULH
+ 0U, // G_FADD
+ 0U, // G_FSUB
+ 0U, // G_FMUL
+ 0U, // G_FMA
+ 0U, // G_FMAD
+ 0U, // G_FDIV
+ 0U, // G_FREM
+ 0U, // G_FPOW
+ 0U, // G_FEXP
+ 0U, // G_FEXP2
+ 0U, // G_FLOG
+ 0U, // G_FLOG2
+ 0U, // G_FLOG10
+ 0U, // G_FNEG
+ 0U, // G_FPEXT
+ 0U, // G_FPTRUNC
+ 0U, // G_FPTOSI
+ 0U, // G_FPTOUI
+ 0U, // G_SITOFP
+ 0U, // G_UITOFP
+ 0U, // G_FABS
+ 0U, // G_FCOPYSIGN
+ 0U, // G_FCANONICALIZE
+ 0U, // G_FMINNUM
+ 0U, // G_FMAXNUM
+ 0U, // G_FMINNUM_IEEE
+ 0U, // G_FMAXNUM_IEEE
+ 0U, // G_FMINIMUM
+ 0U, // G_FMAXIMUM
+ 0U, // G_PTR_ADD
+ 0U, // G_PTR_MASK
+ 0U, // G_SMIN
+ 0U, // G_SMAX
+ 0U, // G_UMIN
+ 0U, // G_UMAX
+ 0U, // G_BR
+ 0U, // G_BRJT
+ 0U, // G_INSERT_VECTOR_ELT
+ 0U, // G_EXTRACT_VECTOR_ELT
+ 0U, // G_SHUFFLE_VECTOR
+ 0U, // G_CTTZ
+ 0U, // G_CTTZ_ZERO_UNDEF
+ 0U, // G_CTLZ
+ 0U, // G_CTLZ_ZERO_UNDEF
+ 0U, // G_CTPOP
+ 0U, // G_BSWAP
+ 0U, // G_BITREVERSE
+ 0U, // G_FCEIL
+ 0U, // G_FCOS
+ 0U, // G_FSIN
+ 0U, // G_FSQRT
+ 0U, // G_FFLOOR
+ 0U, // G_FRINT
+ 0U, // G_FNEARBYINT
+ 0U, // G_ADDRSPACE_CAST
+ 0U, // G_BLOCK_ADDR
+ 0U, // G_JUMP_TABLE
+ 0U, // G_DYN_STACKALLOC
+ 0U, // G_READ_REGISTER
+ 0U, // G_WRITE_REGISTER
+ 0U, // ADJCALLSTACKDOWN
+ 0U, // ADJCALLSTACKUP
+ 0U, // BuildPairF64Pseudo
+ 0U, // PseudoAddTPRel
+ 0U, // PseudoAtomicLoadNand32
+ 0U, // PseudoAtomicLoadNand64
+ 0U, // PseudoBR
+ 0U, // PseudoBRIND
+ 0U, // PseudoCALL
+ 0U, // PseudoCALLIndirect
+ 2U, // PseudoCALLReg
+ 0U, // PseudoCmpXchg32
+ 0U, // PseudoCmpXchg64
+ 8U, // PseudoFLD
+ 8U, // PseudoFLW
+ 8U, // PseudoFSD
+ 8U, // PseudoFSW
+ 2U, // PseudoLA
+ 2U, // PseudoLA_TLS_GD
+ 2U, // PseudoLA_TLS_IE
+ 2U, // PseudoLB
+ 2U, // PseudoLBU
+ 2U, // PseudoLD
+ 2U, // PseudoLH
+ 2U, // PseudoLHU
+ 2U, // PseudoLI
+ 2U, // PseudoLLA
+ 2U, // PseudoLW
+ 2U, // PseudoLWU
+ 0U, // PseudoMaskedAtomicLoadAdd32
+ 0U, // PseudoMaskedAtomicLoadMax32
+ 0U, // PseudoMaskedAtomicLoadMin32
+ 0U, // PseudoMaskedAtomicLoadNand32
+ 0U, // PseudoMaskedAtomicLoadSub32
+ 0U, // PseudoMaskedAtomicLoadUMax32
+ 0U, // PseudoMaskedAtomicLoadUMin32
+ 0U, // PseudoMaskedAtomicSwap32
+ 0U, // PseudoMaskedCmpXchg32
+ 0U, // PseudoRET
+ 8U, // PseudoSB
+ 8U, // PseudoSD
+ 8U, // PseudoSH
+ 8U, // PseudoSW
+ 0U, // PseudoTAIL
+ 0U, // PseudoTAILIndirect
+ 0U, // ReadCycleWide
+ 0U, // Select_FPR32_Using_CC_GPR
+ 0U, // Select_FPR64_Using_CC_GPR
+ 0U, // Select_GPR_Using_CC_GPR
+ 0U, // SplitF64Pseudo
+ 32U, // ADD
+ 32U, // ADDI
+ 32U, // ADDIW
+ 32U, // ADDW
+ 16U, // AMOADD_D
+ 16U, // AMOADD_D_AQ
+ 16U, // AMOADD_D_AQ_RL
+ 16U, // AMOADD_D_RL
+ 16U, // AMOADD_W
+ 16U, // AMOADD_W_AQ
+ 16U, // AMOADD_W_AQ_RL
+ 16U, // AMOADD_W_RL
+ 16U, // AMOAND_D
+ 16U, // AMOAND_D_AQ
+ 16U, // AMOAND_D_AQ_RL
+ 16U, // AMOAND_D_RL
+ 16U, // AMOAND_W
+ 16U, // AMOAND_W_AQ
+ 16U, // AMOAND_W_AQ_RL
+ 16U, // AMOAND_W_RL
+ 16U, // AMOMAXU_D
+ 16U, // AMOMAXU_D_AQ
+ 16U, // AMOMAXU_D_AQ_RL
+ 16U, // AMOMAXU_D_RL
+ 16U, // AMOMAXU_W
+ 16U, // AMOMAXU_W_AQ
+ 16U, // AMOMAXU_W_AQ_RL
+ 16U, // AMOMAXU_W_RL
+ 16U, // AMOMAX_D
+ 16U, // AMOMAX_D_AQ
+ 16U, // AMOMAX_D_AQ_RL
+ 16U, // AMOMAX_D_RL
+ 16U, // AMOMAX_W
+ 16U, // AMOMAX_W_AQ
+ 16U, // AMOMAX_W_AQ_RL
+ 16U, // AMOMAX_W_RL
+ 16U, // AMOMINU_D
+ 16U, // AMOMINU_D_AQ
+ 16U, // AMOMINU_D_AQ_RL
+ 16U, // AMOMINU_D_RL
+ 16U, // AMOMINU_W
+ 16U, // AMOMINU_W_AQ
+ 16U, // AMOMINU_W_AQ_RL
+ 16U, // AMOMINU_W_RL
+ 16U, // AMOMIN_D
+ 16U, // AMOMIN_D_AQ
+ 16U, // AMOMIN_D_AQ_RL
+ 16U, // AMOMIN_D_RL
+ 16U, // AMOMIN_W
+ 16U, // AMOMIN_W_AQ
+ 16U, // AMOMIN_W_AQ_RL
+ 16U, // AMOMIN_W_RL
+ 16U, // AMOOR_D
+ 16U, // AMOOR_D_AQ
+ 16U, // AMOOR_D_AQ_RL
+ 16U, // AMOOR_D_RL
+ 16U, // AMOOR_W
+ 16U, // AMOOR_W_AQ
+ 16U, // AMOOR_W_AQ_RL
+ 16U, // AMOOR_W_RL
+ 16U, // AMOSWAP_D
+ 16U, // AMOSWAP_D_AQ
+ 16U, // AMOSWAP_D_AQ_RL
+ 16U, // AMOSWAP_D_RL
+ 16U, // AMOSWAP_W
+ 16U, // AMOSWAP_W_AQ
+ 16U, // AMOSWAP_W_AQ_RL
+ 16U, // AMOSWAP_W_RL
+ 16U, // AMOXOR_D
+ 16U, // AMOXOR_D_AQ
+ 16U, // AMOXOR_D_AQ_RL
+ 16U, // AMOXOR_D_RL
+ 16U, // AMOXOR_W
+ 16U, // AMOXOR_W_AQ
+ 16U, // AMOXOR_W_AQ_RL
+ 16U, // AMOXOR_W_RL
+ 32U, // AND
+ 32U, // ANDI
+ 2U, // AUIPC
+ 32U, // BEQ
+ 32U, // BGE
+ 32U, // BGEU
+ 32U, // BLT
+ 32U, // BLTU
+ 32U, // BNE
+ 1U, // CSRRC
+ 1U, // CSRRCI
+ 1U, // CSRRS
+ 1U, // CSRRSI
+ 1U, // CSRRW
+ 1U, // CSRRWI
+ 2U, // C_ADD
+ 2U, // C_ADDI
+ 2U, // C_ADDI16SP
+ 32U, // C_ADDI4SPN
+ 2U, // C_ADDIW
+ 2U, // C_ADDI_HINT_IMM_ZERO
+ 2U, // C_ADDI_HINT_X0
+ 2U, // C_ADDI_NOP
+ 2U, // C_ADDW
+ 2U, // C_ADD_HINT
+ 2U, // C_AND
+ 2U, // C_ANDI
+ 2U, // C_BEQZ
+ 2U, // C_BNEZ
+ 0U, // C_EBREAK
+ 4U, // C_FLD
+ 4U, // C_FLDSP
+ 4U, // C_FLW
+ 4U, // C_FLWSP
+ 4U, // C_FSD
+ 4U, // C_FSDSP
+ 4U, // C_FSW
+ 4U, // C_FSWSP
+ 0U, // C_J
+ 0U, // C_JAL
+ 0U, // C_JALR
+ 0U, // C_JR
+ 4U, // C_LD
+ 4U, // C_LDSP
+ 2U, // C_LI
+ 2U, // C_LI_HINT
+ 2U, // C_LUI
+ 2U, // C_LUI_HINT
+ 4U, // C_LW
+ 4U, // C_LWSP
+ 2U, // C_MV
+ 2U, // C_MV_HINT
+ 0U, // C_NOP
+ 0U, // C_NOP_HINT
+ 2U, // C_OR
+ 4U, // C_SD
+ 4U, // C_SDSP
+ 2U, // C_SLLI
+ 0U, // C_SLLI64_HINT
+ 2U, // C_SLLI_HINT
+ 2U, // C_SRAI
+ 0U, // C_SRAI64_HINT
+ 2U, // C_SRLI
+ 0U, // C_SRLI64_HINT
+ 2U, // C_SUB
+ 2U, // C_SUBW
+ 4U, // C_SW
+ 4U, // C_SWSP
+ 0U, // C_UNIMP
+ 2U, // C_XOR
+ 32U, // DIV
+ 32U, // DIVU
+ 32U, // DIVUW
+ 32U, // DIVW
+ 0U, // EBREAK
+ 0U, // ECALL
+ 64U, // FADD_D
+ 64U, // FADD_S
+ 2U, // FCLASS_D
+ 2U, // FCLASS_S
+ 24U, // FCVT_D_L
+ 24U, // FCVT_D_LU
+ 2U, // FCVT_D_S
+ 2U, // FCVT_D_W
+ 2U, // FCVT_D_WU
+ 24U, // FCVT_LU_D
+ 24U, // FCVT_LU_S
+ 24U, // FCVT_L_D
+ 24U, // FCVT_L_S
+ 24U, // FCVT_S_D
+ 24U, // FCVT_S_L
+ 24U, // FCVT_S_LU
+ 24U, // FCVT_S_W
+ 24U, // FCVT_S_WU
+ 24U, // FCVT_WU_D
+ 24U, // FCVT_WU_S
+ 24U, // FCVT_W_D
+ 24U, // FCVT_W_S
+ 64U, // FDIV_D
+ 64U, // FDIV_S
+ 0U, // FENCE
+ 0U, // FENCE_I
+ 0U, // FENCE_TSO
+ 32U, // FEQ_D
+ 32U, // FEQ_S
+ 4U, // FLD
+ 32U, // FLE_D
+ 32U, // FLE_S
+ 32U, // FLT_D
+ 32U, // FLT_S
+ 4U, // FLW
+ 128U, // FMADD_D
+ 128U, // FMADD_S
+ 32U, // FMAX_D
+ 32U, // FMAX_S
+ 32U, // FMIN_D
+ 32U, // FMIN_S
+ 128U, // FMSUB_D
+ 128U, // FMSUB_S
+ 64U, // FMUL_D
+ 64U, // FMUL_S
+ 2U, // FMV_D_X
+ 2U, // FMV_W_X
+ 2U, // FMV_X_D
+ 2U, // FMV_X_W
+ 128U, // FNMADD_D
+ 128U, // FNMADD_S
+ 128U, // FNMSUB_D
+ 128U, // FNMSUB_S
+ 4U, // FSD
+ 32U, // FSGNJN_D
+ 32U, // FSGNJN_S
+ 32U, // FSGNJX_D
+ 32U, // FSGNJX_S
+ 32U, // FSGNJ_D
+ 32U, // FSGNJ_S
+ 24U, // FSQRT_D
+ 24U, // FSQRT_S
+ 64U, // FSUB_D
+ 64U, // FSUB_S
+ 4U, // FSW
+ 2U, // JAL
+ 4U, // JALR
+ 4U, // LB
+ 4U, // LBU
+ 4U, // LD
+ 4U, // LH
+ 4U, // LHU
+ 1U, // LR_D
+ 1U, // LR_D_AQ
+ 1U, // LR_D_AQ_RL
+ 1U, // LR_D_RL
+ 1U, // LR_W
+ 1U, // LR_W_AQ
+ 1U, // LR_W_AQ_RL
+ 1U, // LR_W_RL
+ 2U, // LUI
+ 4U, // LW
+ 4U, // LWU
+ 0U, // MRET
+ 32U, // MUL
+ 32U, // MULH
+ 32U, // MULHSU
+ 32U, // MULHU
+ 32U, // MULW
+ 32U, // OR
+ 32U, // ORI
+ 32U, // REM
+ 32U, // REMU
+ 32U, // REMUW
+ 32U, // REMW
+ 4U, // SB
+ 16U, // SC_D
+ 16U, // SC_D_AQ
+ 16U, // SC_D_AQ_RL
+ 16U, // SC_D_RL
+ 16U, // SC_W
+ 16U, // SC_W_AQ
+ 16U, // SC_W_AQ_RL
+ 16U, // SC_W_RL
+ 4U, // SD
+ 2U, // SFENCE_VMA
+ 4U, // SH
+ 32U, // SLL
+ 32U, // SLLI
+ 32U, // SLLIW
+ 32U, // SLLW
+ 32U, // SLT
+ 32U, // SLTI
+ 32U, // SLTIU
+ 32U, // SLTU
+ 32U, // SRA
+ 32U, // SRAI
+ 32U, // SRAIW
+ 32U, // SRAW
+ 0U, // SRET
+ 32U, // SRL
+ 32U, // SRLI
+ 32U, // SRLIW
+ 32U, // SRLW
+ 32U, // SUB
+ 32U, // SUBW
+ 4U, // SW
+ 0U, // UNIMP
+ 0U, // URET
+ 0U, // WFI
+ 32U, // XOR
+ 32U, // XORI
+ };
+
+ O << "\t";
+
+ // Emit the opcode for the instruction.
+ uint32_t Bits = 0;
+ Bits |= OpInfo0[MI->getOpcode()] << 0;
+ Bits |= OpInfo1[MI->getOpcode()] << 16;
+ assert(Bits != 0 && "Cannot print this instruction.");
+ O << AsmStrs+(Bits & 4095)-1;
+
+
+ // Fragment 0 encoded into 2 bits for 4 unique commands.
+ switch ((Bits >> 12) & 3) {
+ default: llvm_unreachable("Invalid command number.");
+ case 0:
+ // DBG_VALUE, DBG_LABEL, BUNDLE, LIFETIME_START, LIFETIME_END, FENTRY_CAL...
+ return;
+ break;
+ case 1:
+ // PseudoAddTPRel, PseudoCALL, PseudoCALLReg, PseudoFLD, PseudoFLW, Pseud...
+ printOperand(MI, 0, STI, O);
+ break;
+ case 2:
+ // C_ADD, C_ADDI, C_ADDI16SP, C_ADDIW, C_ADDI_HINT_IMM_ZERO, C_ADDI_HINT_...
+ printOperand(MI, 1, STI, O);
+ break;
+ case 3:
+ // FENCE
+ printFenceArg(MI, 0, STI, O);
+ O << ", ";
+ printFenceArg(MI, 1, STI, O);
+ return;
+ break;
+ }
+
+
+ // Fragment 1 encoded into 1 bits for 2 unique commands.
+ if ((Bits >> 14) & 1) {
+ // PseudoCALL, PseudoTAIL, C_J, C_JAL, C_JALR, C_JR, C_NOP_HINT, C_SLLI64...
+ return;
+ } else {
+ // PseudoAddTPRel, PseudoCALLReg, PseudoFLD, PseudoFLW, PseudoFSD, Pseudo...
+ O << ", ";
+ }
+
+
+ // Fragment 2 encoded into 2 bits for 4 unique commands.
+ switch ((Bits >> 15) & 3) {
+ default: llvm_unreachable("Invalid command number.");
+ case 0:
+ // PseudoAddTPRel, PseudoCALLReg, PseudoLA, PseudoLA_TLS_GD, PseudoLA_TLS...
+ printOperand(MI, 1, STI, O);
+ break;
+ case 1:
+ // PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, PseudoSD, Pseudo...
+ printOperand(MI, 2, STI, O);
+ break;
+ case 2:
+ // CSRRC, CSRRCI, CSRRS, CSRRSI, CSRRW, CSRRWI
+ printCSRSystemRegister(MI, 1, STI, O);
+ O << ", ";
+ printOperand(MI, 2, STI, O);
+ return;
+ break;
+ case 3:
+ // LR_D, LR_D_AQ, LR_D_AQ_RL, LR_D_RL, LR_W, LR_W_AQ, LR_W_AQ_RL, LR_W_RL
+ printAtomicMemOp(MI, 1, STI, O);
+ return;
+ break;
+ }
+
+
+ // Fragment 3 encoded into 2 bits for 3 unique commands.
+ switch ((Bits >> 17) & 3) {
+ default: llvm_unreachable("Invalid command number.");
+ case 0:
+ // PseudoAddTPRel, PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, ...
+ O << ", ";
+ break;
+ case 1:
+ // PseudoCALLReg, PseudoLA, PseudoLA_TLS_GD, PseudoLA_TLS_IE, PseudoLB, P...
+ return;
+ break;
+ case 2:
+ // C_FLD, C_FLDSP, C_FLW, C_FLWSP, C_FSD, C_FSDSP, C_FSW, C_FSWSP, C_LD, ...
+ O << '(';
+ printOperand(MI, 1, STI, O);
+ O << ')';
+ return;
+ break;
+ }
+
+
+ // Fragment 4 encoded into 2 bits for 4 unique commands.
+ switch ((Bits >> 19) & 3) {
+ default: llvm_unreachable("Invalid command number.");
+ case 0:
+ // PseudoAddTPRel, ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT...
+ printOperand(MI, 2, STI, O);
+ break;
+ case 1:
+ // PseudoFLD, PseudoFLW, PseudoFSD, PseudoFSW, PseudoSB, PseudoSD, Pseudo...
+ printOperand(MI, 1, STI, O);
+ return;
+ break;
+ case 2:
+ // AMOADD_D, AMOADD_D_AQ, AMOADD_D_AQ_RL, AMOADD_D_RL, AMOADD_W, AMOADD_W...
+ printAtomicMemOp(MI, 1, STI, O);
+ return;
+ break;
+ case 3:
+ // FCVT_D_L, FCVT_D_LU, FCVT_LU_D, FCVT_LU_S, FCVT_L_D, FCVT_L_S, FCVT_S_...
+ printFRMArg(MI, 2, STI, O);
+ return;
+ break;
+ }
+
+
+ // Fragment 5 encoded into 1 bits for 2 unique commands.
+ if ((Bits >> 21) & 1) {
+ // ADD, ADDI, ADDIW, ADDW, AND, ANDI, BEQ, BGE, BGEU, BLT, BLTU, BNE, C_A...
+ return;
+ } else {
+ // PseudoAddTPRel, FADD_D, FADD_S, FDIV_D, FDIV_S, FMADD_D, FMADD_S, FMSU...
+ O << ", ";
+ }
+
+
+ // Fragment 6 encoded into 1 bits for 2 unique commands.
+ if ((Bits >> 22) & 1) {
+ // FADD_D, FADD_S, FDIV_D, FDIV_S, FMUL_D, FMUL_S, FSUB_D, FSUB_S
+ printFRMArg(MI, 3, STI, O);
+ return;
+ } else {
+ // PseudoAddTPRel, FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S...
+ printOperand(MI, 3, STI, O);
+ }
+
+
+ // Fragment 7 encoded into 1 bits for 2 unique commands.
+ if ((Bits >> 23) & 1) {
+ // FMADD_D, FMADD_S, FMSUB_D, FMSUB_S, FNMADD_D, FNMADD_S, FNMSUB_D, FNMS...
+ O << ", ";
+ printFRMArg(MI, 4, STI, O);
+ return;
+ } else {
+ // PseudoAddTPRel
+ return;
+ }
+
+}
+
+
+/// getRegisterName - This method is automatically generated by tblgen
+/// from the register set description. This returns the assembler name
+/// for the specified register.
+const char *RISCVInstPrinter::
+getRegisterName(unsigned RegNo, unsigned AltIdx) {
+ assert(RegNo && RegNo < 97 && "Invalid register number!");
+
+ static const char AsmStrsABIRegAltName[] = {
+ /* 0 */ 'f', 's', '1', '0', 0,
+ /* 5 */ 'f', 't', '1', '0', 0,
+ /* 10 */ 'f', 'a', '0', 0,
+ /* 14 */ 'f', 's', '0', 0,
+ /* 18 */ 'f', 't', '0', 0,
+ /* 22 */ 'f', 's', '1', '1', 0,
+ /* 27 */ 'f', 't', '1', '1', 0,
+ /* 32 */ 'f', 'a', '1', 0,
+ /* 36 */ 'f', 's', '1', 0,
+ /* 40 */ 'f', 't', '1', 0,
+ /* 44 */ 'f', 'a', '2', 0,
+ /* 48 */ 'f', 's', '2', 0,
+ /* 52 */ 'f', 't', '2', 0,
+ /* 56 */ 'f', 'a', '3', 0,
+ /* 60 */ 'f', 's', '3', 0,
+ /* 64 */ 'f', 't', '3', 0,
+ /* 68 */ 'f', 'a', '4', 0,
+ /* 72 */ 'f', 's', '4', 0,
+ /* 76 */ 'f', 't', '4', 0,
+ /* 80 */ 'f', 'a', '5', 0,
+ /* 84 */ 'f', 's', '5', 0,
+ /* 88 */ 'f', 't', '5', 0,
+ /* 92 */ 'f', 'a', '6', 0,
+ /* 96 */ 'f', 's', '6', 0,
+ /* 100 */ 'f', 't', '6', 0,
+ /* 104 */ 'f', 'a', '7', 0,
+ /* 108 */ 'f', 's', '7', 0,
+ /* 112 */ 'f', 't', '7', 0,
+ /* 116 */ 'f', 's', '8', 0,
+ /* 120 */ 'f', 't', '8', 0,
+ /* 124 */ 'f', 's', '9', 0,
+ /* 128 */ 'f', 't', '9', 0,
+ /* 132 */ 'r', 'a', 0,
+ /* 135 */ 'z', 'e', 'r', 'o', 0,
+ /* 140 */ 'g', 'p', 0,
+ /* 143 */ 's', 'p', 0,
+ /* 146 */ 't', 'p', 0,
+ };
+
+ static const uint8_t RegAsmOffsetABIRegAltName[] = {
+ 135, 132, 143, 140, 146, 19, 41, 53, 15, 37, 11, 33, 45, 57,
+ 69, 81, 93, 105, 49, 61, 73, 85, 97, 109, 117, 125, 1, 23,
+ 65, 77, 89, 101, 18, 40, 52, 64, 76, 88, 100, 112, 14, 36,
+ 10, 32, 44, 56, 68, 80, 92, 104, 48, 60, 72, 84, 96, 108,
+ 116, 124, 0, 22, 120, 128, 5, 27, 18, 40, 52, 64, 76, 88,
+ 100, 112, 14, 36, 10, 32, 44, 56, 68, 80, 92, 104, 48, 60,
+ 72, 84, 96, 108, 116, 124, 0, 22, 120, 128, 5, 27,
+ };
+
+ static const char AsmStrsNoRegAltName[] = {
+ /* 0 */ 'f', '1', '0', 0,
+ /* 4 */ 'x', '1', '0', 0,
+ /* 8 */ 'f', '2', '0', 0,
+ /* 12 */ 'x', '2', '0', 0,
+ /* 16 */ 'f', '3', '0', 0,
+ /* 20 */ 'x', '3', '0', 0,
+ /* 24 */ 'f', '0', 0,
+ /* 27 */ 'x', '0', 0,
+ /* 30 */ 'f', '1', '1', 0,
+ /* 34 */ 'x', '1', '1', 0,
+ /* 38 */ 'f', '2', '1', 0,
+ /* 42 */ 'x', '2', '1', 0,
+ /* 46 */ 'f', '3', '1', 0,
+ /* 50 */ 'x', '3', '1', 0,
+ /* 54 */ 'f', '1', 0,
+ /* 57 */ 'x', '1', 0,
+ /* 60 */ 'f', '1', '2', 0,
+ /* 64 */ 'x', '1', '2', 0,
+ /* 68 */ 'f', '2', '2', 0,
+ /* 72 */ 'x', '2', '2', 0,
+ /* 76 */ 'f', '2', 0,
+ /* 79 */ 'x', '2', 0,
+ /* 82 */ 'f', '1', '3', 0,
+ /* 86 */ 'x', '1', '3', 0,
+ /* 90 */ 'f', '2', '3', 0,
+ /* 94 */ 'x', '2', '3', 0,
+ /* 98 */ 'f', '3', 0,
+ /* 101 */ 'x', '3', 0,
+ /* 104 */ 'f', '1', '4', 0,
+ /* 108 */ 'x', '1', '4', 0,
+ /* 112 */ 'f', '2', '4', 0,
+ /* 116 */ 'x', '2', '4', 0,
+ /* 120 */ 'f', '4', 0,
+ /* 123 */ 'x', '4', 0,
+ /* 126 */ 'f', '1', '5', 0,
+ /* 130 */ 'x', '1', '5', 0,
+ /* 134 */ 'f', '2', '5', 0,
+ /* 138 */ 'x', '2', '5', 0,
+ /* 142 */ 'f', '5', 0,
+ /* 145 */ 'x', '5', 0,
+ /* 148 */ 'f', '1', '6', 0,
+ /* 152 */ 'x', '1', '6', 0,
+ /* 156 */ 'f', '2', '6', 0,
+ /* 160 */ 'x', '2', '6', 0,
+ /* 164 */ 'f', '6', 0,
+ /* 167 */ 'x', '6', 0,
+ /* 170 */ 'f', '1', '7', 0,
+ /* 174 */ 'x', '1', '7', 0,
+ /* 178 */ 'f', '2', '7', 0,
+ /* 182 */ 'x', '2', '7', 0,
+ /* 186 */ 'f', '7', 0,
+ /* 189 */ 'x', '7', 0,
+ /* 192 */ 'f', '1', '8', 0,
+ /* 196 */ 'x', '1', '8', 0,
+ /* 200 */ 'f', '2', '8', 0,
+ /* 204 */ 'x', '2', '8', 0,
+ /* 208 */ 'f', '8', 0,
+ /* 211 */ 'x', '8', 0,
+ /* 214 */ 'f', '1', '9', 0,
+ /* 218 */ 'x', '1', '9', 0,
+ /* 222 */ 'f', '2', '9', 0,
+ /* 226 */ 'x', '2', '9', 0,
+ /* 230 */ 'f', '9', 0,
+ /* 233 */ 'x', '9', 0,
+ };
+
+ static const uint8_t RegAsmOffsetNoRegAltName[] = {
+ 27, 57, 79, 101, 123, 145, 167, 189, 211, 233, 4, 34, 64, 86,
+ 108, 130, 152, 174, 196, 218, 12, 42, 72, 94, 116, 138, 160, 182,
+ 204, 226, 20, 50, 24, 54, 76, 98, 120, 142, 164, 186, 208, 230,
+ 0, 30, 60, 82, 104, 126, 148, 170, 192, 214, 8, 38, 68, 90,
+ 112, 134, 156, 178, 200, 222, 16, 46, 24, 54, 76, 98, 120, 142,
+ 164, 186, 208, 230, 0, 30, 60, 82, 104, 126, 148, 170, 192, 214,
+ 8, 38, 68, 90, 112, 134, 156, 178, 200, 222, 16, 46,
+ };
+
+ switch(AltIdx) {
+ default: llvm_unreachable("Invalid register alt name index!");
+ case RISCV::ABIRegAltName:
+ assert(*(AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1]) &&
+ "Invalid alt name index for register!");
+ return AsmStrsABIRegAltName+RegAsmOffsetABIRegAltName[RegNo-1];
+ case RISCV::NoRegAltName:
+ assert(*(AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1]) &&
+ "Invalid alt name index for register!");
+ return AsmStrsNoRegAltName+RegAsmOffsetNoRegAltName[RegNo-1];
+ }
+}
+
+#ifdef PRINT_ALIAS_INSTR
+#undef PRINT_ALIAS_INSTR
+
+static bool RISCVInstPrinterValidateMCOperand(const MCOperand &MCOp,
+ const MCSubtargetInfo &STI,
+ unsigned PredicateIndex);
+bool RISCVInstPrinter::printAliasInstr(const MCInst *MI, const MCSubtargetInfo &STI, raw_ostream &OS) {
+ static const PatternsForOpcode OpToPatterns[] = {
+ {RISCV::ADDI, 0, 2 },
+ {RISCV::ADDIW, 2, 1 },
+ {RISCV::BEQ, 3, 1 },
+ {RISCV::BGE, 4, 2 },
+ {RISCV::BLT, 6, 2 },
+ {RISCV::BNE, 8, 1 },
+ {RISCV::CSRRC, 9, 1 },
+ {RISCV::CSRRCI, 10, 1 },
+ {RISCV::CSRRS, 11, 11 },
+ {RISCV::CSRRSI, 22, 1 },
+ {RISCV::CSRRW, 23, 7 },
+ {RISCV::CSRRWI, 30, 5 },
+ {RISCV::FADD_D, 35, 1 },
+ {RISCV::FADD_S, 36, 1 },
+ {RISCV::FCVT_D_L, 37, 1 },
+ {RISCV::FCVT_D_LU, 38, 1 },
+ {RISCV::FCVT_LU_D, 39, 1 },
+ {RISCV::FCVT_LU_S, 40, 1 },
+ {RISCV::FCVT_L_D, 41, 1 },
+ {RISCV::FCVT_L_S, 42, 1 },
+ {RISCV::FCVT_S_D, 43, 1 },
+ {RISCV::FCVT_S_L, 44, 1 },
+ {RISCV::FCVT_S_LU, 45, 1 },
+ {RISCV::FCVT_S_W, 46, 1 },
+ {RISCV::FCVT_S_WU, 47, 1 },
+ {RISCV::FCVT_WU_D, 48, 1 },
+ {RISCV::FCVT_WU_S, 49, 1 },
+ {RISCV::FCVT_W_D, 50, 1 },
+ {RISCV::FCVT_W_S, 51, 1 },
+ {RISCV::FDIV_D, 52, 1 },
+ {RISCV::FDIV_S, 53, 1 },
+ {RISCV::FENCE, 54, 1 },
+ {RISCV::FMADD_D, 55, 1 },
+ {RISCV::FMADD_S, 56, 1 },
+ {RISCV::FMSUB_D, 57, 1 },
+ {RISCV::FMSUB_S, 58, 1 },
+ {RISCV::FMUL_D, 59, 1 },
+ {RISCV::FMUL_S, 60, 1 },
+ {RISCV::FNMADD_D, 61, 1 },
+ {RISCV::FNMADD_S, 62, 1 },
+ {RISCV::FNMSUB_D, 63, 1 },
+ {RISCV::FNMSUB_S, 64, 1 },
+ {RISCV::FSGNJN_D, 65, 1 },
+ {RISCV::FSGNJN_S, 66, 1 },
+ {RISCV::FSGNJX_D, 67, 1 },
+ {RISCV::FSGNJX_S, 68, 1 },
+ {RISCV::FSGNJ_D, 69, 1 },
+ {RISCV::FSGNJ_S, 70, 1 },
+ {RISCV::FSQRT_D, 71, 1 },
+ {RISCV::FSQRT_S, 72, 1 },
+ {RISCV::FSUB_D, 73, 1 },
+ {RISCV::FSUB_S, 74, 1 },
+ {RISCV::JAL, 75, 2 },
+ {RISCV::JALR, 77, 6 },
+ {RISCV::SFENCE_VMA, 83, 2 },
+ {RISCV::SLT, 85, 2 },
+ {RISCV::SLTIU, 87, 1 },
+ {RISCV::SLTU, 88, 1 },
+ {RISCV::SUB, 89, 1 },
+ {RISCV::SUBW, 90, 1 },
+ {RISCV::XORI, 91, 1 },
+ };
+
+ static const AliasPattern Patterns[] = {
+ // RISCV::ADDI - 0
+ {0, 0, 3, 3 },
+ {4, 3, 3, 3 },
+ // RISCV::ADDIW - 2
+ {14, 6, 3, 4 },
+ // RISCV::BEQ - 3
+ {28, 10, 3, 3 },
+ // RISCV::BGE - 4
+ {40, 13, 3, 3 },
+ {52, 16, 3, 3 },
+ // RISCV::BLT - 6
+ {64, 19, 3, 3 },
+ {76, 22, 3, 3 },
+ // RISCV::BNE - 8
+ {88, 25, 3, 3 },
+ // RISCV::CSRRC - 9
+ {100, 28, 3, 3 },
+ // RISCV::CSRRCI - 10
+ {114, 31, 3, 2 },
+ // RISCV::CSRRS - 11
+ {129, 33, 3, 4 },
+ {138, 37, 3, 4 },
+ {146, 41, 3, 4 },
+ {157, 45, 3, 3 },
+ {170, 48, 3, 3 },
+ {181, 51, 3, 3 },
+ {191, 54, 3, 4 },
+ {205, 58, 3, 4 },
+ {217, 62, 3, 4 },
+ {228, 66, 3, 3 },
+ {242, 69, 3, 3 },
+ // RISCV::CSRRSI - 22
+ {256, 72, 3, 2 },
+ // RISCV::CSRRW - 23
+ {271, 74, 3, 4 },
+ {280, 78, 3, 4 },
+ {288, 82, 3, 4 },
+ {299, 86, 3, 3 },
+ {313, 89, 3, 4 },
+ {326, 93, 3, 4 },
+ {338, 97, 3, 4 },
+ // RISCV::CSRRWI - 30
+ {353, 101, 3, 3 },
+ {362, 104, 3, 3 },
+ {374, 107, 3, 2 },
+ {389, 109, 3, 3 },
+ {402, 112, 3, 3 },
+ // RISCV::FADD_D - 35
+ {418, 115, 4, 5 },
+ // RISCV::FADD_S - 36
+ {436, 120, 4, 5 },
+ // RISCV::FCVT_D_L - 37
+ {454, 125, 3, 5 },
+ // RISCV::FCVT_D_LU - 38
+ {470, 130, 3, 5 },
+ // RISCV::FCVT_LU_D - 39
+ {487, 135, 3, 5 },
+ // RISCV::FCVT_LU_S - 40
+ {504, 140, 3, 5 },
+ // RISCV::FCVT_L_D - 41
+ {521, 145, 3, 5 },
+ // RISCV::FCVT_L_S - 42
+ {537, 150, 3, 5 },
+ // RISCV::FCVT_S_D - 43
+ {553, 155, 3, 4 },
+ // RISCV::FCVT_S_L - 44
+ {569, 159, 3, 5 },
+ // RISCV::FCVT_S_LU - 45
+ {585, 164, 3, 5 },
+ // RISCV::FCVT_S_W - 46
+ {602, 169, 3, 4 },
+ // RISCV::FCVT_S_WU - 47
+ {618, 173, 3, 4 },
+ // RISCV::FCVT_WU_D - 48
+ {635, 177, 3, 4 },
+ // RISCV::FCVT_WU_S - 49
+ {652, 181, 3, 4 },
+ // RISCV::FCVT_W_D - 50
+ {669, 185, 3, 4 },
+ // RISCV::FCVT_W_S - 51
+ {685, 189, 3, 4 },
+ // RISCV::FDIV_D - 52
+ {701, 193, 4, 5 },
+ // RISCV::FDIV_S - 53
+ {719, 198, 4, 5 },
+ // RISCV::FENCE - 54
+ {737, 203, 2, 2 },
+ // RISCV::FMADD_D - 55
+ {743, 205, 5, 6 },
+ // RISCV::FMADD_S - 56
+ {766, 211, 5, 6 },
+ // RISCV::FMSUB_D - 57
+ {789, 217, 5, 6 },
+ // RISCV::FMSUB_S - 58
+ {812, 223, 5, 6 },
+ // RISCV::FMUL_D - 59
+ {835, 229, 4, 5 },
+ // RISCV::FMUL_S - 60
+ {853, 234, 4, 5 },
+ // RISCV::FNMADD_D - 61
+ {871, 239, 5, 6 },
+ // RISCV::FNMADD_S - 62
+ {895, 245, 5, 6 },
+ // RISCV::FNMSUB_D - 63
+ {919, 251, 5, 6 },
+ // RISCV::FNMSUB_S - 64
+ {943, 257, 5, 6 },
+ // RISCV::FSGNJN_D - 65
+ {967, 263, 3, 4 },
+ // RISCV::FSGNJN_S - 66
+ {981, 267, 3, 4 },
+ // RISCV::FSGNJX_D - 67
+ {995, 271, 3, 4 },
+ // RISCV::FSGNJX_S - 68
+ {1009, 275, 3, 4 },
+ // RISCV::FSGNJ_D - 69
+ {1023, 279, 3, 4 },
+ // RISCV::FSGNJ_S - 70
+ {1036, 283, 3, 4 },
+ // RISCV::FSQRT_D - 71
+ {1049, 287, 3, 4 },
+ // RISCV::FSQRT_S - 72
+ {1064, 291, 3, 4 },
+ // RISCV::FSUB_D - 73
+ {1079, 295, 4, 5 },
+ // RISCV::FSUB_S - 74
+ {1097, 300, 4, 5 },
+ // RISCV::JAL - 75
+ {1115, 305, 2, 2 },
+ {1120, 307, 2, 2 },
+ // RISCV::JALR - 77
+ {1127, 309, 3, 3 },
+ {1131, 312, 3, 3 },
+ {1137, 315, 3, 3 },
+ {1145, 318, 3, 3 },
+ {1157, 321, 3, 3 },
+ {1167, 324, 3, 3 },
+ // RISCV::SFENCE_VMA - 83
+ {1179, 327, 2, 2 },
+ {1190, 329, 2, 2 },
+ // RISCV::SLT - 85
+ {1204, 331, 3, 3 },
+ {1216, 334, 3, 3 },
+ // RISCV::SLTIU - 87
+ {1228, 337, 3, 3 },
+ // RISCV::SLTU - 88
+ {1240, 340, 3, 3 },
+ // RISCV::SUB - 89
+ {1252, 343, 3, 3 },
+ // RISCV::SUBW - 90
+ {1263, 346, 3, 4 },
+ // RISCV::XORI - 91
+ {1275, 350, 3, 3 },
+ };
+
+ static const AliasPatternCond Conds[] = {
+ // (ADDI X0, X0, 0) - 0
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (ADDI GPR:$rd, GPR:$rs, 0) - 3
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (ADDIW GPR:$rd, GPR:$rs, 0) - 6
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (BEQ GPR:$rs, X0, simm13_lsb0:$offset) - 10
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Custom, 1},
+ // (BGE X0, GPR:$rs, simm13_lsb0:$offset) - 13
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Custom, 1},
+ // (BGE GPR:$rs, X0, simm13_lsb0:$offset) - 16
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Custom, 1},
+ // (BLT GPR:$rs, X0, simm13_lsb0:$offset) - 19
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Custom, 1},
+ // (BLT X0, GPR:$rs, simm13_lsb0:$offset) - 22
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Custom, 1},
+ // (BNE GPR:$rs, X0, simm13_lsb0:$offset) - 25
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Custom, 1},
+ // (CSRRC X0, csr_sysreg:$csr, GPR:$rs) - 28
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (CSRRCI X0, csr_sysreg:$csr, uimm5:$imm) - 31
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ // (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, X0) - 33
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, X0) - 37
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(2)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRS GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, X0) - 41
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, X0) - 45
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3074)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, X0) - 48
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3072)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, X0) - 51
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3073)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0 }, X0) - 54
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3202)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 }, X0) - 58
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3200)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
+ // (CSRRS GPR:$rd, { 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1 }, X0) - 62
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3201)},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_NegFeature, RISCV::Feature64Bit},
+ // (CSRRS GPR:$rd, csr_sysreg:$csr, X0) - 66
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Ignore, 0},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (CSRRS X0, csr_sysreg:$csr, GPR:$rs) - 69
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (CSRRSI X0, csr_sysreg:$csr, uimm5:$imm) - 72
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ // (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, GPR:$rs) - 74
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(3)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, GPR:$rs) - 78
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(2)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRW X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, GPR:$rs) - 82
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRW X0, csr_sysreg:$csr, GPR:$rs) - 86
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1 }, GPR:$rs) - 89
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(3)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, GPR:$rs) - 93
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(2)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRW GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, GPR:$rs) - 97
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRWI X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, uimm5:$imm) - 101
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(2)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRWI X0, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, uimm5:$imm) - 104
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRWI X0, csr_sysreg:$csr, uimm5:$imm) - 107
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Ignore, 0},
+ // (CSRRWI GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 }, uimm5:$imm) - 109
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(2)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (CSRRWI GPR:$rd, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }, uimm5:$imm) - 112
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 115
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 120
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FCVT_D_L FPR64:$rd, GPR:$rs1, { 1, 1, 1 }) - 125
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_D_LU FPR64:$rd, GPR:$rs1, { 1, 1, 1 }) - 130
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_LU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 135
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_LU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 140
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_L_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 145
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_L_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 150
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_S_D FPR32:$rd, FPR64:$rs1, { 1, 1, 1 }) - 155
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FCVT_S_L FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 159
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_S_LU FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 164
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (FCVT_S_W FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 169
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FCVT_S_WU FPR32:$rd, GPR:$rs1, { 1, 1, 1 }) - 173
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FCVT_WU_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 177
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FCVT_WU_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 181
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FCVT_W_D GPR:$rd, FPR64:$rs1, { 1, 1, 1 }) - 185
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FCVT_W_S GPR:$rd, FPR32:$rs1, { 1, 1, 1 }) - 189
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FDIV_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 193
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FDIV_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 198
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FENCE 15, 15) - 203
+ {AliasPatternCond::K_Imm, uint32_t(15)},
+ {AliasPatternCond::K_Imm, uint32_t(15)},
+ // (FMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 205
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 211
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 217
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 223
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FMUL_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 229
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FMUL_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 234
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FNMADD_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 239
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FNMADD_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 245
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FNMSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, FPR64:$rs3, { 1, 1, 1 }) - 251
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FNMSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, FPR32:$rs3, { 1, 1, 1 }) - 257
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FSGNJN_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 263
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FSGNJN_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 267
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FSGNJX_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 271
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FSGNJX_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 275
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FSGNJ_D FPR64:$rd, FPR64:$rs, FPR64:$rs) - 279
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FSGNJ_S FPR32:$rd, FPR32:$rs, FPR32:$rs) - 283
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_TiedReg, 1},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FSQRT_D FPR64:$rd, FPR64:$rs1, { 1, 1, 1 }) - 287
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FSQRT_S FPR32:$rd, FPR32:$rs1, { 1, 1, 1 }) - 291
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (FSUB_D FPR64:$rd, FPR64:$rs1, FPR64:$rs2, { 1, 1, 1 }) - 295
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR64RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtD},
+ // (FSUB_S FPR32:$rd, FPR32:$rs1, FPR32:$rs2, { 1, 1, 1 }) - 300
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::FPR32RegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(7)},
+ {AliasPatternCond::K_Feature, RISCV::FeatureStdExtF},
+ // (JAL X0, simm21_lsb0_jal:$offset) - 305
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Custom, 2},
+ // (JAL X1, simm21_lsb0_jal:$offset) - 307
+ {AliasPatternCond::K_Reg, RISCV::X1},
+ {AliasPatternCond::K_Custom, 2},
+ // (JALR X0, X1, 0) - 309
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Reg, RISCV::X1},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (JALR X0, GPR:$rs, 0) - 312
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (JALR X1, GPR:$rs, 0) - 315
+ {AliasPatternCond::K_Reg, RISCV::X1},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (JALR GPR:$rd, GPR:$rs, 0) - 318
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(0)},
+ // (JALR X0, GPR:$rs, simm12:$offset) - 321
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Custom, 3},
+ // (JALR X1, GPR:$rs, simm12:$offset) - 324
+ {AliasPatternCond::K_Reg, RISCV::X1},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Custom, 3},
+ // (SFENCE_VMA X0, X0) - 327
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (SFENCE_VMA GPR:$rs, X0) - 329
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (SLT GPR:$rd, GPR:$rs, X0) - 331
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ // (SLT GPR:$rd, X0, GPR:$rs) - 334
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (SLTIU GPR:$rd, GPR:$rs, 1) - 337
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(1)},
+ // (SLTU GPR:$rd, X0, GPR:$rs) - 340
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (SUB GPR:$rd, X0, GPR:$rs) - 343
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ // (SUBW GPR:$rd, X0, GPR:$rs) - 346
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Reg, RISCV::X0},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Feature, RISCV::Feature64Bit},
+ // (XORI GPR:$rd, GPR:$rs, -1) - 350
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_RegClass, RISCV::GPRRegClassID},
+ {AliasPatternCond::K_Imm, uint32_t(-1)},
+ };
+
+ static const char AsmStrings[] =
+ /* 0 */ "nop\0"
+ /* 4 */ "mv $\x01, $\x02\0"
+ /* 14 */ "sext.w $\x01, $\x02\0"
+ /* 28 */ "beqz $\x01, $\x03\0"
+ /* 40 */ "blez $\x02, $\x03\0"
+ /* 52 */ "bgez $\x01, $\x03\0"
+ /* 64 */ "bltz $\x01, $\x03\0"
+ /* 76 */ "bgtz $\x02, $\x03\0"
+ /* 88 */ "bnez $\x01, $\x03\0"
+ /* 100 */ "csrc $\xFF\x02\x01, $\x03\0"
+ /* 114 */ "csrci $\xFF\x02\x01, $\x03\0"
+ /* 129 */ "frcsr $\x01\0"
+ /* 138 */ "frrm $\x01\0"
+ /* 146 */ "frflags $\x01\0"
+ /* 157 */ "rdinstret $\x01\0"
+ /* 170 */ "rdcycle $\x01\0"
+ /* 181 */ "rdtime $\x01\0"
+ /* 191 */ "rdinstreth $\x01\0"
+ /* 205 */ "rdcycleh $\x01\0"
+ /* 217 */ "rdtimeh $\x01\0"
+ /* 228 */ "csrr $\x01, $\xFF\x02\x01\0"
+ /* 242 */ "csrs $\xFF\x02\x01, $\x03\0"
+ /* 256 */ "csrsi $\xFF\x02\x01, $\x03\0"
+ /* 271 */ "fscsr $\x03\0"
+ /* 280 */ "fsrm $\x03\0"
+ /* 288 */ "fsflags $\x03\0"
+ /* 299 */ "csrw $\xFF\x02\x01, $\x03\0"
+ /* 313 */ "fscsr $\x01, $\x03\0"
+ /* 326 */ "fsrm $\x01, $\x03\0"
+ /* 338 */ "fsflags $\x01, $\x03\0"
+ /* 353 */ "fsrmi $\x03\0"
+ /* 362 */ "fsflagsi $\x03\0"
+ /* 374 */ "csrwi $\xFF\x02\x01, $\x03\0"
+ /* 389 */ "fsrmi $\x01, $\x03\0"
+ /* 402 */ "fsflagsi $\x01, $\x03\0"
+ /* 418 */ "fadd.d $\x01, $\x02, $\x03\0"
+ /* 436 */ "fadd.s $\x01, $\x02, $\x03\0"
+ /* 454 */ "fcvt.d.l $\x01, $\x02\0"
+ /* 470 */ "fcvt.d.lu $\x01, $\x02\0"
+ /* 487 */ "fcvt.lu.d $\x01, $\x02\0"
+ /* 504 */ "fcvt.lu.s $\x01, $\x02\0"
+ /* 521 */ "fcvt.l.d $\x01, $\x02\0"
+ /* 537 */ "fcvt.l.s $\x01, $\x02\0"
+ /* 553 */ "fcvt.s.d $\x01, $\x02\0"
+ /* 569 */ "fcvt.s.l $\x01, $\x02\0"
+ /* 585 */ "fcvt.s.lu $\x01, $\x02\0"
+ /* 602 */ "fcvt.s.w $\x01, $\x02\0"
+ /* 618 */ "fcvt.s.wu $\x01, $\x02\0"
+ /* 635 */ "fcvt.wu.d $\x01, $\x02\0"
+ /* 652 */ "fcvt.wu.s $\x01, $\x02\0"
+ /* 669 */ "fcvt.w.d $\x01, $\x02\0"
+ /* 685 */ "fcvt.w.s $\x01, $\x02\0"
+ /* 701 */ "fdiv.d $\x01, $\x02, $\x03\0"
+ /* 719 */ "fdiv.s $\x01, $\x02, $\x03\0"
+ /* 737 */ "fence\0"
+ /* 743 */ "fmadd.d $\x01, $\x02, $\x03, $\x04\0"
+ /* 766 */ "fmadd.s $\x01, $\x02, $\x03, $\x04\0"
+ /* 789 */ "fmsub.d $\x01, $\x02, $\x03, $\x04\0"
+ /* 812 */ "fmsub.s $\x01, $\x02, $\x03, $\x04\0"
+ /* 835 */ "fmul.d $\x01, $\x02, $\x03\0"
+ /* 853 */ "fmul.s $\x01, $\x02, $\x03\0"
+ /* 871 */ "fnmadd.d $\x01, $\x02, $\x03, $\x04\0"
+ /* 895 */ "fnmadd.s $\x01, $\x02, $\x03, $\x04\0"
+ /* 919 */ "fnmsub.d $\x01, $\x02, $\x03, $\x04\0"
+ /* 943 */ "fnmsub.s $\x01, $\x02, $\x03, $\x04\0"
+ /* 967 */ "fneg.d $\x01, $\x02\0"
+ /* 981 */ "fneg.s $\x01, $\x02\0"
+ /* 995 */ "fabs.d $\x01, $\x02\0"
+ /* 1009 */ "fabs.s $\x01, $\x02\0"
+ /* 1023 */ "fmv.d $\x01, $\x02\0"
+ /* 1036 */ "fmv.s $\x01, $\x02\0"
+ /* 1049 */ "fsqrt.d $\x01, $\x02\0"
+ /* 1064 */ "fsqrt.s $\x01, $\x02\0"
+ /* 1079 */ "fsub.d $\x01, $\x02, $\x03\0"
+ /* 1097 */ "fsub.s $\x01, $\x02, $\x03\0"
+ /* 1115 */ "j $\x02\0"
+ /* 1120 */ "jal $\x02\0"
+ /* 1127 */ "ret\0"
+ /* 1131 */ "jr $\x02\0"
+ /* 1137 */ "jalr $\x02\0"
+ /* 1145 */ "jalr $\x01, $\x02\0"
+ /* 1157 */ "jr $\x03($\x02)\0"
+ /* 1167 */ "jalr $\x03($\x02)\0"
+ /* 1179 */ "sfence.vma\0"
+ /* 1190 */ "sfence.vma $\x01\0"
+ /* 1204 */ "sltz $\x01, $\x02\0"
+ /* 1216 */ "sgtz $\x01, $\x03\0"
+ /* 1228 */ "seqz $\x01, $\x02\0"
+ /* 1240 */ "snez $\x01, $\x03\0"
+ /* 1252 */ "neg $\x01, $\x03\0"
+ /* 1263 */ "negw $\x01, $\x03\0"
+ /* 1275 */ "not $\x01, $\x02\0"
+ ;
+
+#ifndef NDEBUG
+ static struct SortCheck {
+ SortCheck(ArrayRef<PatternsForOpcode> OpToPatterns) {
+ assert(std::is_sorted(
+ OpToPatterns.begin(), OpToPatterns.end(),
+ [](const PatternsForOpcode &L, const PatternsForOpcode &R) {
+ return L.Opcode < R.Opcode;
+ }) &&
+ "tablegen failed to sort opcode patterns");
+ }
+ } sortCheckVar(OpToPatterns);
+#endif
+
+ AliasMatchingData M {
+ makeArrayRef(OpToPatterns),
+ makeArrayRef(Patterns),
+ makeArrayRef(Conds),
+ StringRef(AsmStrings, array_lengthof(AsmStrings)),
+ &RISCVInstPrinterValidateMCOperand,
+ };
+ const char *AsmString = matchAliasPatterns(MI, &STI, M);
+ if (!AsmString) return false;
+
+ unsigned I = 0;
+ while (AsmString[I] != ' ' && AsmString[I] != '\t' &&
+ AsmString[I] != '$' && AsmString[I] != '\0')
+ ++I;
+ OS << '\t' << StringRef(AsmString, I);
+ if (AsmString[I] != '\0') {
+ if (AsmString[I] == ' ' || AsmString[I] == '\t') {
+ OS << '\t';
+ ++I;
+ }
+ do {
+ if (AsmString[I] == '$') {
+ ++I;
+ if (AsmString[I] == (char)0xff) {
+ ++I;
+ int OpIdx = AsmString[I++] - 1;
+ int PrintMethodIdx = AsmString[I++] - 1;
+ printCustomAliasOperand(MI, OpIdx, PrintMethodIdx, STI, OS);
+ } else
+ printOperand(MI, unsigned(AsmString[I++]) - 1, STI, OS);
+ } else {
+ OS << AsmString[I++];
+ }
+ } while (AsmString[I] != '\0');
+ }
+
+ return true;
+}
+
+void RISCVInstPrinter::printCustomAliasOperand(
+ const MCInst *MI, unsigned OpIdx,
+ unsigned PrintMethodIdx,
+ const MCSubtargetInfo &STI,
+ raw_ostream &OS) {
+ switch (PrintMethodIdx) {
+ default:
+ llvm_unreachable("Unknown PrintMethod kind");
+ break;
+ case 0:
+ printCSRSystemRegister(MI, OpIdx, STI, OS);
+ break;
+ }
+}
+
+static bool RISCVInstPrinterValidateMCOperand(const MCOperand &MCOp,
+ const MCSubtargetInfo &STI,
+ unsigned PredicateIndex) {
+ switch (PredicateIndex) {
+ default:
+ llvm_unreachable("Unknown MCOperandPredicate kind");
+ break;
+ case 1: {
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<12, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 2: {
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<20, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 3: {
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isInt<12>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ }
+}
+
+#endif // PRINT_ALIAS_INSTR
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenCompressInstEmitter.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenCompressInstEmitter.inc
new file mode 100644
index 0000000..88aee77
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenCompressInstEmitter.inc
@@ -0,0 +1,2609 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Compress instruction Source Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GEN_COMPRESS_INSTR
+#undef GEN_COMPRESS_INSTR
+
+static bool RISCVValidateMCOperand(const MCOperand &MCOp,
+ const MCSubtargetInfo &STI,
+ unsigned PredicateIndex) {
+ switch (PredicateIndex) {
+ default:
+ llvm_unreachable("Unknown MCOperandPredicate kind");
+ break;
+ case 1: {
+ // uimm10_lsb00nonzero
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedUInt<8, 2>(Imm) && (Imm != 0);
+
+ }
+ case 2: {
+ // simm6nonzero
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return (Imm != 0) && isInt<6>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 3: {
+ // simm6
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isInt<6>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 4: {
+ // simm10_lsb0000nonzero
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedInt<6, 4>(Imm) && (Imm != 0);
+
+ }
+ case 5: {
+ // simm9_lsb0
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<8, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+
+ }
+ case 6: {
+ // uimm8_lsb000
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedUInt<5, 3>(Imm);
+
+ }
+ case 7: {
+ // uimm9_lsb000
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedUInt<6, 3>(Imm);
+
+ }
+ case 8: {
+ // uimm7_lsb00
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedUInt<5, 2>(Imm);
+
+ }
+ case 9: {
+ // uimm8_lsb00
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ return isShiftedUInt<6, 2>(Imm);
+
+ }
+ case 10: {
+ // simm12_lsb0
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<11, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 11: {
+ // c_lui_imm
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return (Imm != 0) && (isUInt<5>(Imm) ||
+ (Imm >= 0xfffe0 && Imm <= 0xfffff));
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 12: {
+ // uimmlog2xlennonzero
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ if (STI.getTargetTriple().isArch64Bit())
+ return isUInt<6>(Imm) && (Imm != 0);
+ return isUInt<5>(Imm) && (Imm != 0);
+
+ }
+ }
+}
+
+static bool compressInst(MCInst& OutInst,
+ const MCInst &MI,
+ const MCSubtargetInfo &STI,
+ MCContext &Context) {
+ const MCRegisterInfo &MRI = *Context.getRegisterInfo();
+ switch (MI.getOpcode()) {
+ default: return false;
+ case RISCV::ADD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.mv $rs1, $rs2
+ OutInst.setOpcode(RISCV::C_MV);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.mv $rs1, $rs2
+ OutInst.setOpcode(RISCV::C_MV);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.add $rs1, $rs2
+ OutInst.setOpcode(RISCV::C_ADD);
+ // Operand: rs1_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.add $rs1, $rs2
+ OutInst.setOpcode(RISCV::C_ADD);
+ // Operand: rs1_wb
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case ADD
+ case RISCV::ADDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // c.addi4spn $rd, $rs1, $imm
+ OutInst.setOpcode(RISCV::C_ADDI4SPN);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0)) {
+ // c.nop
+ OutInst.setOpcode(RISCV::C_NOP);
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 2)) {
+ // c.addi $rd, $imm
+ OutInst.setOpcode(RISCV::C_ADDI);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 3)) {
+ // c.li $rd, $imm
+ OutInst.setOpcode(RISCV::C_LI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X2) &&
+ (MI.getOperand(1).getReg() == RISCV::X2) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 4)) {
+ // c.addi16sp $rd, $imm
+ OutInst.setOpcode(RISCV::C_ADDI16SP);
+ // Operand: rd_wb
+ OutInst.addOperand(MCOperand::createReg(RISCV::X2));
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X2));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.mv $rs1, $rs2
+ OutInst.setOpcode(RISCV::C_MV);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case ADDI
+ case RISCV::ADDIW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 3)) {
+ // c.addiw $rd, $imm
+ OutInst.setOpcode(RISCV::C_ADDIW);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 3)) {
+ // c.li $rd, $imm
+ OutInst.setOpcode(RISCV::C_LI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case ADDIW
+ case RISCV::ADDW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.addw $rd, $rs2
+ OutInst.setOpcode(RISCV::C_ADDW);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.addw $rd, $rs2
+ OutInst.setOpcode(RISCV::C_ADDW);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case ADDW
+ case RISCV::AND: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.and $rd, $rs2
+ OutInst.setOpcode(RISCV::C_AND);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.and $rd, $rs2
+ OutInst.setOpcode(RISCV::C_AND);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case AND
+ case RISCV::ANDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 3)) {
+ // c.andi $rs1, $imm
+ OutInst.setOpcode(RISCV::C_ANDI);
+ // Operand: rs1_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case ANDI
+ case RISCV::BEQ: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 5)) {
+ // c.beqz $rs1, $imm
+ OutInst.setOpcode(RISCV::C_BEQZ);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case BEQ
+ case RISCV::BNE: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 5)) {
+ // c.bnez $rs1, $imm
+ OutInst.setOpcode(RISCV::C_BNEZ);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case BNE
+ case RISCV::EBREAK: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // c.ebreak
+ OutInst.setOpcode(RISCV::C_EBREAK);
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case EBREAK
+ case RISCV::FLD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 6)) {
+ // c.fld $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FLD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 7)) {
+ // c.fldsp $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FLDSP);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case FLD
+ case RISCV::FLW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 8)) {
+ // c.flw $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FLW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 9)) {
+ // c.flwsp $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FLWSP);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case FLW
+ case RISCV::FSD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 6)) {
+ // c.fsd $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FSD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 7)) {
+ // c.fsdsp $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FSDSP);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case FSD
+ case RISCV::FSW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 8)) {
+ // c.fsw $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FSW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 9)) {
+ // c.fswsp $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_FSWSP);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case FSW
+ case RISCV::JAL: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X1) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 10)) {
+ // c.jal $offset
+ OutInst.setOpcode(RISCV::C_JAL);
+ // Operand: offset
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 10)) {
+ // c.j $offset
+ OutInst.setOpcode(RISCV::C_J);
+ // Operand: offset
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case JAL
+ case RISCV::JALR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.jr $rs1
+ OutInst.setOpcode(RISCV::C_JR);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X1) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.jalr $rs1
+ OutInst.setOpcode(RISCV::C_JALR);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case JALR
+ case RISCV::LD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 6)) {
+ // c.ld $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_LD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 7)) {
+ // c.ldsp $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_LDSP);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case LD
+ case RISCV::LUI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0X2RegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 11)) {
+ // c.lui $rd, $imm
+ OutInst.setOpcode(RISCV::C_LUI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case LUI
+ case RISCV::LW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 8)) {
+ // c.lw $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_LW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 9)) {
+ // c.lwsp $rd, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_LWSP);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case LW
+ case RISCV::OR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.or $rd, $rs2
+ OutInst.setOpcode(RISCV::C_OR);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.or $rd, $rs2
+ OutInst.setOpcode(RISCV::C_OR);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case OR
+ case RISCV::SD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 6)) {
+ // c.sd $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_SD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 7)) {
+ // c.sdsp $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_SDSP);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SD
+ case RISCV::SLLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 12)) {
+ // c.slli $rd, $imm
+ OutInst.setOpcode(RISCV::C_SLLI);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SLLI
+ case RISCV::SRAI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 12)) {
+ // c.srai $rs1, $imm
+ OutInst.setOpcode(RISCV::C_SRAI);
+ // Operand: rs1_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SRAI
+ case RISCV::SRLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 12)) {
+ // c.srli $rs1, $imm
+ OutInst.setOpcode(RISCV::C_SRLI);
+ // Operand: rs1_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SRLI
+ case RISCV::SUB: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.sub $rd, $rs2
+ OutInst.setOpcode(RISCV::C_SUB);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SUB
+ case RISCV::SUBW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.subw $rd, $rs2
+ OutInst.setOpcode(RISCV::C_SUBW);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SUBW
+ case RISCV::SW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 8)) {
+ // c.sw $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_SW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 9)) {
+ // c.swsp $rs2, ${imm}(${rs1})
+ OutInst.setOpcode(RISCV::C_SWSP);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case SW
+ case RISCV::UNIMP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // c.unimp
+ OutInst.setOpcode(RISCV::C_UNIMP);
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case UNIMP
+ case RISCV::XOR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.xor $rd, $rs2
+ OutInst.setOpcode(RISCV::C_XOR);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.xor $rd, $rs2
+ OutInst.setOpcode(RISCV::C_XOR);
+ // Operand: rd_wb
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+
+ } // case XOR
+ } // switch
+ return false;
+}
+
+#endif //GEN_COMPRESS_INSTR
+
+#ifdef GEN_UNCOMPRESS_INSTR
+#undef GEN_UNCOMPRESS_INSTR
+
+static bool RISCVValidateMCOperand(const MCOperand &MCOp,
+ const MCSubtargetInfo &STI,
+ unsigned PredicateIndex) {
+ switch (PredicateIndex) {
+ default:
+ llvm_unreachable("Unknown MCOperandPredicate kind");
+ break;
+ case 1: {
+ // simm12
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isInt<12>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 2: {
+ // simm13_lsb0
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<12, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 3: {
+ // simm21_lsb0_jal
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isShiftedInt<20, 1>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 4: {
+ // uimm20_lui
+
+ int64_t Imm;
+ if (MCOp.evaluateAsConstantImm(Imm))
+ return isUInt<20>(Imm);
+ return MCOp.isBareSymbolRef();
+
+ }
+ case 5: {
+ // uimmlog2xlen
+
+ int64_t Imm;
+ if (!MCOp.evaluateAsConstantImm(Imm))
+ return false;
+ if (STI.getTargetTriple().isArch64Bit())
+ return isUInt<6>(Imm);
+ return isUInt<5>(Imm);
+
+ }
+ }
+}
+
+static bool uncompressInst(MCInst& OutInst,
+ const MCInst &MI,
+ const MCRegisterInfo &MRI,
+ const MCSubtargetInfo &STI) {
+ switch (MI.getOpcode()) {
+ default: return false;
+ case RISCV::C_ADD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // add $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg()))) {
+ // add $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADD
+ case RISCV::C_ADDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADDI
+ case RISCV::C_ADDI16SP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X2) &&
+ (MI.getOperand(1).getReg() == RISCV::X2) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X2));
+ // Operand: rs1
+ OutInst.addOperand(MCOperand::createReg(RISCV::X2));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADDI16SP
+ case RISCV::C_ADDI4SPN: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADDI4SPN
+ case RISCV::C_ADDIW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // addiw $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDIW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADDIW
+ case RISCV::C_ADDW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // addw $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADDW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg()))) {
+ // addw $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADDW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ADDW
+ case RISCV::C_AND: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // and $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::AND);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg()))) {
+ // and $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::AND);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_AND
+ case RISCV::C_ANDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // andi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ANDI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_ANDI
+ case RISCV::C_BEQZ: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 2)) {
+ // beq $rs1, $rs2, $imm12
+ OutInst.setOpcode(RISCV::BEQ);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_BEQZ
+ case RISCV::C_BNEZ: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 2)) {
+ // bne $rs1, $rs2, $imm12
+ OutInst.setOpcode(RISCV::BNE);
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_BNEZ
+ case RISCV::C_EBREAK: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // ebreak
+ OutInst.setOpcode(RISCV::EBREAK);
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_EBREAK
+ case RISCV::C_FLD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fld $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FLD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FLD
+ case RISCV::C_FLDSP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fld $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FLD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FLDSP
+ case RISCV::C_FLW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // flw $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FLW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FLW
+ case RISCV::C_FLWSP: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // flw $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FLW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FLWSP
+ case RISCV::C_FSD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fsd $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FSD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FSD
+ case RISCV::C_FSDSP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fsd $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FSD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FSDSP
+ case RISCV::C_FSW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fsw $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FSW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FSW
+ case RISCV::C_FSWSP: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // fsw $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::FSW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_FSWSP
+ case RISCV::C_J: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ RISCVValidateMCOperand(MI.getOperand(0), STI, 3)) {
+ // jal $rd, $imm20
+ OutInst.setOpcode(RISCV::JAL);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm20
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_J
+ case RISCV::C_JAL: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ RISCVValidateMCOperand(MI.getOperand(0), STI, 3)) {
+ // jal $rd, $imm20
+ OutInst.setOpcode(RISCV::JAL);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X1));
+ // Operand: imm20
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_JAL
+ case RISCV::C_JALR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MCOperand::createImm(0), STI, 1)) {
+ // jalr $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X1));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm12
+ OutInst.addOperand(MCOperand::createImm(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_JALR
+ case RISCV::C_JR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MCOperand::createImm(0), STI, 1)) {
+ // jalr $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm12
+ OutInst.addOperand(MCOperand::createImm(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_JR
+ case RISCV::C_LD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // ld $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::LD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LD
+ case RISCV::C_LDSP: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // ld $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::LD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LDSP
+ case RISCV::C_LI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 1)) {
+ // addiw $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDIW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LI
+ case RISCV::C_LUI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(1), STI, 4)) {
+ // lui $rd, $imm20
+ OutInst.setOpcode(RISCV::LUI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: imm20
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LUI
+ case RISCV::C_LW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // lw $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::LW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LW
+ case RISCV::C_LWSP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // lw $rd, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::LW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_LWSP
+ case RISCV::C_MV: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // add $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(1));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // add $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::ADD);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: rs2
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MCOperand::createImm(0), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MCOperand::createImm(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_MV
+ case RISCV::C_NOP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ RISCVValidateMCOperand(MCOperand::createImm(0), STI, 1)) {
+ // addi $rd, $rs1, $imm12
+ OutInst.setOpcode(RISCV::ADDI);
+ // Operand: rd
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs1
+ OutInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm12
+ OutInst.addOperand(MCOperand::createImm(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_NOP
+ case RISCV::C_OR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // or $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::OR);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg()))) {
+ // or $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::OR);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_OR
+ case RISCV::C_SD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // sd $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::SD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SD
+ case RISCV::C_SDSP: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // sd $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::SD);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SDSP
+ case RISCV::C_SLLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 5)) {
+ // slli $rd, $rs1, $shamt
+ OutInst.setOpcode(RISCV::SLLI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: shamt
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SLLI
+ case RISCV::C_SRAI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 5)) {
+ // srai $rd, $rs1, $shamt
+ OutInst.setOpcode(RISCV::SRAI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: shamt
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SRAI
+ case RISCV::C_SRLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 5)) {
+ // srli $rd, $rs1, $shamt
+ OutInst.setOpcode(RISCV::SRLI);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: shamt
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SRLI
+ case RISCV::C_SUB: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // sub $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::SUB);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SUB
+ case RISCV::C_SUBW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // subw $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::SUBW);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SUBW
+ case RISCV::C_SW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // sw $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::SW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SW
+ case RISCV::C_SWSP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(1).getReg())) &&
+ RISCVValidateMCOperand(MI.getOperand(2), STI, 1)) {
+ // sw $rs2, ${imm12}(${rs1})
+ OutInst.setOpcode(RISCV::SW);
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(1));
+ // Operand: imm12
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_SWSP
+ case RISCV::C_UNIMP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // unimp
+ OutInst.setOpcode(RISCV::UNIMP);
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ break;
+ } // case C_UNIMP
+ case RISCV::C_XOR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // xor $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::XOR);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(2));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg()))) {
+ // xor $rd, $rs1, $rs2
+ OutInst.setOpcode(RISCV::XOR);
+ // Operand: rd
+ OutInst.addOperand(MI.getOperand(0));
+ // Operand: rs1
+ OutInst.addOperand(MI.getOperand(2));
+ // Operand: rs2
+ OutInst.addOperand(MI.getOperand(0));
+ OutInst.setLoc(MI.getLoc());
+ return true;
+ } // if
+
+ } // case C_XOR
+ } // switch
+ return false;
+}
+
+#endif //GEN_UNCOMPRESS_INSTR
+
+
+#ifdef GEN_CHECK_COMPRESS_INSTR
+#undef GEN_CHECK_COMPRESS_INSTR
+
+static bool RISCVValidateMachineOperand(const MachineOperand &MO,
+ const RISCVSubtarget *Subtarget,
+ unsigned PredicateIndex) {
+ int64_t Imm = MO.getImm();
+ switch (PredicateIndex) {
+ default:
+ llvm_unreachable("Unknown ImmLeaf Predicate kind");
+ break;
+ case 1: {
+ // simm6nonzero
+ return (Imm != 0) && isInt<6>(Imm);
+ }
+ case 2: {
+ // simm10_lsb0000nonzero
+ return (Imm != 0) && isShiftedInt<6, 4>(Imm);
+ }
+ case 3: {
+ // uimm10_lsb00nonzero
+ return isShiftedUInt<8, 2>(Imm) && (Imm != 0);
+ }
+ case 4: {
+ // simm6
+ return isInt<6>(Imm);
+ }
+ case 5: {
+ // simm9_lsb0
+ return isShiftedInt<8, 1>(Imm);
+ }
+ case 6: {
+ // uimm8_lsb000
+ return isShiftedUInt<5, 3>(Imm);
+ }
+ case 7: {
+ // uimm9_lsb000
+ return isShiftedUInt<6, 3>(Imm);
+ }
+ case 8: {
+ // uimm7_lsb00
+ return isShiftedUInt<5, 2>(Imm);
+ }
+ case 9: {
+ // uimm8_lsb00
+ return isShiftedUInt<6, 2>(Imm);
+ }
+ case 10: {
+ // simm12_lsb0
+ return isShiftedInt<11, 1>(Imm);
+ }
+ case 11: {
+ // c_lui_imm
+ return (Imm != 0) &&
+ (isUInt<5>(Imm) ||
+ (Imm >= 0xfffe0 && Imm <= 0xfffff));
+ }
+ case 12: {
+ // uimmlog2xlennonzero
+
+ if (Subtarget->is64Bit())
+ return isUInt<6>(Imm) && (Imm != 0);
+ return isUInt<5>(Imm) && (Imm != 0);
+
+ }
+ }
+}
+
+static bool isCompressibleInst(const MachineInstr& MI,
+ const RISCVSubtarget *Subtarget,
+ const MCRegisterInfo &MRI,
+ const MCSubtargetInfo &STI) {
+ switch (MI.getOpcode()) {
+ default: return false;
+ case RISCV::ADD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.add $rs1, $rs2
+ // Operand: rs1_wb
+ // Operand: rs1
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.add $rs1, $rs2
+ // Operand: rs1_wb
+ // Operand: rs1
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.mv $rs1, $rs2
+ // Operand: rs1
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.mv $rs1, $rs2
+ // Operand: rs1
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case ADD
+ case RISCV::ADDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 1)) {
+ // c.addi $rd, $imm
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X2) &&
+ (MI.getOperand(1).getReg() == RISCV::X2) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 2)) {
+ // c.addi16sp $rd, $imm
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 3)) {
+ // c.addi4spn $rd, $rs1, $imm
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 4)) {
+ // c.li $rd, $imm
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.mv $rs1, $rs2
+ // Operand: rs1
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0)) {
+ // c.nop
+ return true;
+ } // if
+ break;
+ } // case ADDI
+ case RISCV::ADDIW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 4)) {
+ // c.addiw $rd, $imm
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 4)) {
+ // c.li $rd, $imm
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case ADDIW
+ case RISCV::ADDW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.addw $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.addw $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case ADDW
+ case RISCV::AND: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.and $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.and $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case AND
+ case RISCV::ANDI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 4)) {
+ // c.andi $rs1, $imm
+ // Operand: rs1_wb
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case ANDI
+ case RISCV::BEQ: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 5)) {
+ // c.beqz $rs1, $imm
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case BEQ
+ case RISCV::BNE: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == RISCV::X0) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 5)) {
+ // c.bnez $rs1, $imm
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case BNE
+ case RISCV::EBREAK: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // c.ebreak
+ return true;
+ } // if
+ break;
+ } // case EBREAK
+ case RISCV::FLD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 6)) {
+ // c.fld $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 7)) {
+ // c.fldsp $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case FLD
+ case RISCV::FLW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 8)) {
+ // c.flw $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 9)) {
+ // c.flwsp $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case FLW
+ case RISCV::FSD: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 6)) {
+ // c.fsd $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtD] &&
+ (MRI.getRegClass(RISCV::FPR64RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 7)) {
+ // c.fsdsp $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case FSD
+ case RISCV::FSW: {
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32CRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 8)) {
+ // c.fsw $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtF] &&
+ (MRI.getRegClass(RISCV::FPR32RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 9)) {
+ // c.fswsp $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case FSW
+ case RISCV::JAL: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ MI.getOperand(1).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(1), Subtarget, 10)) {
+ // c.j $offset
+ // Operand: offset
+ return true;
+ } // if
+ if (!STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X1) &&
+ MI.getOperand(1).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(1), Subtarget, 10)) {
+ // c.jal $offset
+ // Operand: offset
+ return true;
+ } // if
+ break;
+ } // case JAL
+ case RISCV::JALR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X1) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.jalr $rs1
+ // Operand: rs1
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(0).getReg() == RISCV::X0) &&
+ (MI.getOperand(2).isImm()) &&
+ (MI.getOperand(2).getImm() == 0) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.jr $rs1
+ // Operand: rs1
+ return true;
+ } // if
+ break;
+ } // case JALR
+ case RISCV::LD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 6)) {
+ // c.ld $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 7)) {
+ // c.ldsp $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case LD
+ case RISCV::LUI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0X2RegClassID).contains(MI.getOperand(0).getReg())) &&
+ MI.getOperand(1).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(1), Subtarget, 11)) {
+ // c.lui $rd, $imm
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case LUI
+ case RISCV::LW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 8)) {
+ // c.lw $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 9)) {
+ // c.lwsp $rd, ${imm}(${rs1})
+ // Operand: rd
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case LW
+ case RISCV::OR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.or $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.or $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case OR
+ case RISCV::SD: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 6)) {
+ // c.sd $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 7)) {
+ // c.sdsp $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case SD
+ case RISCV::SLLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRNoX0RegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 12)) {
+ // c.slli $rd, $imm
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case SLLI
+ case RISCV::SRAI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 12)) {
+ // c.srai $rs1, $imm
+ // Operand: rs1_wb
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case SRAI
+ case RISCV::SRLI: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 12)) {
+ // c.srli $rs1, $imm
+ // Operand: rs1_wb
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case SRLI
+ case RISCV::SUB: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.sub $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case SUB
+ case RISCV::SUBW: {
+ if (STI.getFeatureBits()[RISCV::Feature64Bit] &&
+ STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.subw $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ break;
+ } // case SUBW
+ case RISCV::SW: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 8)) {
+ // c.sw $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MRI.getRegClass(RISCV::GPRRegClassID).contains(MI.getOperand(0).getReg())) &&
+ (MRI.getRegClass(RISCV::SPRegClassID).contains(MI.getOperand(1).getReg())) &&
+ MI.getOperand(2).isImm() &&
+ RISCVValidateMachineOperand(MI.getOperand(2), Subtarget, 9)) {
+ // c.swsp $rs2, ${imm}(${rs1})
+ // Operand: rs2
+ // Operand: rs1
+ // Operand: imm
+ return true;
+ } // if
+ break;
+ } // case SW
+ case RISCV::UNIMP: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC]) {
+ // c.unimp
+ return true;
+ } // if
+ break;
+ } // case UNIMP
+ case RISCV::XOR: {
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(1).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg()))) {
+ // c.xor $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+ if (STI.getFeatureBits()[RISCV::FeatureStdExtC] &&
+ (MI.getOperand(2).getReg() == MI.getOperand(0).getReg()) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(2).getReg())) &&
+ (MRI.getRegClass(RISCV::GPRCRegClassID).contains(MI.getOperand(1).getReg()))) {
+ // c.xor $rd, $rs2
+ // Operand: rd_wb
+ // Operand: rd
+ // Operand: rs2
+ return true;
+ } // if
+
+ } // case XOR
+ } // switch
+ return false;
+}
+
+#endif //GEN_CHECK_COMPRESS_INSTR
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDAGISel.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDAGISel.inc
new file mode 100644
index 0000000..aec8641
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDAGISel.inc
@@ -0,0 +1,14257 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* DAG Instruction Selector for the RISCV target *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+// *** NOTE: This file is #included into the middle of the target
+// *** instruction selector class. These functions are really methods.
+
+// If GET_DAGISEL_DECL is #defined with any value, only function
+// declarations will be included when this file is included.
+// If GET_DAGISEL_BODY is #defined, its value should be the name of
+// the instruction selector class. Function bodies will be emitted
+// and each function's name will be qualified with the name of the
+// class.
+//
+// When neither of the GET_DAGISEL* macros is defined, the functions
+// are emitted inline.
+
+#if defined(GET_DAGISEL_DECL) && defined(GET_DAGISEL_BODY)
+#error GET_DAGISEL_DECL and GET_DAGISEL_BODY cannot be both defined, undef both for inline definitions
+#endif
+
+#ifdef GET_DAGISEL_BODY
+#define LOCAL_DAGISEL_STRINGIZE(X) LOCAL_DAGISEL_STRINGIZE_(X)
+#define LOCAL_DAGISEL_STRINGIZE_(X) #X
+static_assert(sizeof(LOCAL_DAGISEL_STRINGIZE(GET_DAGISEL_BODY)) > 1,
+ "GET_DAGISEL_BODY is empty: it should be defined with the class name");
+#undef LOCAL_DAGISEL_STRINGIZE_
+#undef LOCAL_DAGISEL_STRINGIZE
+#endif
+
+#if !defined(GET_DAGISEL_DECL) && !defined(GET_DAGISEL_BODY)
+#define DAGISEL_INLINE 1
+#else
+#define DAGISEL_INLINE 0
+#endif
+
+#if !DAGISEL_INLINE
+#define DAGISEL_CLASS_COLONCOLON GET_DAGISEL_BODY ::
+#else
+#define DAGISEL_CLASS_COLONCOLON
+#endif
+
+#ifdef GET_DAGISEL_DECL
+void SelectCode(SDNode *N);
+#endif
+#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
+void DAGISEL_CLASS_COLONCOLON SelectCode(SDNode *N)
+{
+ // Some target values are emitted as 2 bytes, TARGET_VAL handles
+ // this.
+ #define TARGET_VAL(X) X & 255, unsigned(X) >> 8
+ static const unsigned char MatcherTable[] = {
+/* 0*/ OPC_SwitchOpcode /*81 cases */, 12|128,5/*652*/, TARGET_VAL(ISD::AND),// ->657
+/* 5*/ OPC_Scope, 41|128,4/*553*/, /*->561*/ // 2 children in Scope
+/* 8*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 14*/ OPC_Scope, 75|128,3/*459*/, /*->476*/ // 2 children in Scope
+/* 17*/ OPC_MoveChild0,
+/* 18*/ OPC_SwitchOpcode /*2 cases */, 96|128,1/*224*/, TARGET_VAL(RISCVISD::DIVUW),// ->247
+/* 23*/ OPC_MoveChild0,
+/* 24*/ OPC_Scope, 110, /*->136*/ // 2 children in Scope
+/* 26*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 32*/ OPC_RecordChild0, // #0 = $rs1
+/* 33*/ OPC_MoveParent,
+/* 34*/ OPC_MoveChild1,
+/* 35*/ OPC_Scope, 49, /*->86*/ // 2 children in Scope
+/* 37*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 43*/ OPC_RecordChild0, // #1 = $rs2
+/* 44*/ OPC_MoveParent,
+/* 45*/ OPC_MoveParent,
+/* 46*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->73
+/* 49*/ OPC_Scope, 10, /*->61*/ // 2 children in Scope
+/* 51*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 53*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 27
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 61*/ /*Scope*/ 10, /*->72*/
+/* 62*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 64*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 27
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 72*/ 0, /*End of Scope*/
+/* 73*/ /*SwitchType*/ 10, MVT::i64,// ->85
+/* 75*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 77*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_divuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })), 4294967295:{ *:[i64] }) - Complexity = 27
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 85*/ 0, // EndSwitchType
+/* 86*/ /*Scope*/ 48, /*->135*/
+/* 87*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 90*/ OPC_RecordChild0, // #1 = $rs2
+/* 91*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 93*/ OPC_MoveParent,
+/* 94*/ OPC_MoveParent,
+/* 95*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->122
+/* 98*/ OPC_Scope, 10, /*->110*/ // 2 children in Scope
+/* 100*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 102*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 110*/ /*Scope*/ 10, /*->121*/
+/* 111*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 113*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 121*/ 0, /*End of Scope*/
+/* 122*/ /*SwitchType*/ 10, MVT::i64,// ->134
+/* 124*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 126*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_divuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i64] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 134*/ 0, // EndSwitchType
+/* 135*/ 0, /*End of Scope*/
+/* 136*/ /*Scope*/ 109, /*->246*/
+/* 137*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 140*/ OPC_RecordChild0, // #0 = $rs1
+/* 141*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 143*/ OPC_MoveParent,
+/* 144*/ OPC_MoveChild1,
+/* 145*/ OPC_Scope, 49, /*->196*/ // 2 children in Scope
+/* 147*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 153*/ OPC_RecordChild0, // #1 = $rs2
+/* 154*/ OPC_MoveParent,
+/* 155*/ OPC_MoveParent,
+/* 156*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->183
+/* 159*/ OPC_Scope, 10, /*->171*/ // 2 children in Scope
+/* 161*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 163*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 171*/ /*Scope*/ 10, /*->182*/
+/* 172*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 174*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 182*/ 0, /*End of Scope*/
+/* 183*/ /*SwitchType*/ 10, MVT::i64,// ->195
+/* 185*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 187*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_divuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })), 4294967295:{ *:[i64] }) - Complexity = 23
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 195*/ 0, // EndSwitchType
+/* 196*/ /*Scope*/ 48, /*->245*/
+/* 197*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 200*/ OPC_RecordChild0, // #1 = $rs2
+/* 201*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 203*/ OPC_MoveParent,
+/* 204*/ OPC_MoveParent,
+/* 205*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->232
+/* 208*/ OPC_Scope, 10, /*->220*/ // 2 children in Scope
+/* 210*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 212*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 220*/ /*Scope*/ 10, /*->231*/
+/* 221*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 223*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 231*/ 0, /*End of Scope*/
+/* 232*/ /*SwitchType*/ 10, MVT::i64,// ->244
+/* 234*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 236*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_divuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i64] }) - Complexity = 19
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 244*/ 0, // EndSwitchType
+/* 245*/ 0, /*End of Scope*/
+/* 246*/ 0, /*End of Scope*/
+/* 247*/ /*SwitchOpcode*/ 96|128,1/*224*/, TARGET_VAL(RISCVISD::REMUW),// ->475
+/* 251*/ OPC_MoveChild0,
+/* 252*/ OPC_Scope, 110, /*->364*/ // 2 children in Scope
+/* 254*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 260*/ OPC_RecordChild0, // #0 = $rs1
+/* 261*/ OPC_MoveParent,
+/* 262*/ OPC_MoveChild1,
+/* 263*/ OPC_Scope, 49, /*->314*/ // 2 children in Scope
+/* 265*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 271*/ OPC_RecordChild0, // #1 = $rs2
+/* 272*/ OPC_MoveParent,
+/* 273*/ OPC_MoveParent,
+/* 274*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->301
+/* 277*/ OPC_Scope, 10, /*->289*/ // 2 children in Scope
+/* 279*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 281*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 27
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 289*/ /*Scope*/ 10, /*->300*/
+/* 290*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 292*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 27
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 300*/ 0, /*End of Scope*/
+/* 301*/ /*SwitchType*/ 10, MVT::i64,// ->313
+/* 303*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 305*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_remuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })), 4294967295:{ *:[i64] }) - Complexity = 27
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 313*/ 0, // EndSwitchType
+/* 314*/ /*Scope*/ 48, /*->363*/
+/* 315*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 318*/ OPC_RecordChild0, // #1 = $rs2
+/* 319*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 321*/ OPC_MoveParent,
+/* 322*/ OPC_MoveParent,
+/* 323*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->350
+/* 326*/ OPC_Scope, 10, /*->338*/ // 2 children in Scope
+/* 328*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 330*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 338*/ /*Scope*/ 10, /*->349*/
+/* 339*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 341*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 349*/ 0, /*End of Scope*/
+/* 350*/ /*SwitchType*/ 10, MVT::i64,// ->362
+/* 352*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 354*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_remuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i64] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 362*/ 0, // EndSwitchType
+/* 363*/ 0, /*End of Scope*/
+/* 364*/ /*Scope*/ 109, /*->474*/
+/* 365*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 368*/ OPC_RecordChild0, // #0 = $rs1
+/* 369*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 371*/ OPC_MoveParent,
+/* 372*/ OPC_MoveChild1,
+/* 373*/ OPC_Scope, 49, /*->424*/ // 2 children in Scope
+/* 375*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 381*/ OPC_RecordChild0, // #1 = $rs2
+/* 382*/ OPC_MoveParent,
+/* 383*/ OPC_MoveParent,
+/* 384*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->411
+/* 387*/ OPC_Scope, 10, /*->399*/ // 2 children in Scope
+/* 389*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 391*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 399*/ /*Scope*/ 10, /*->410*/
+/* 400*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 402*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })), 4294967295:{ *:[i32] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 410*/ 0, /*End of Scope*/
+/* 411*/ /*SwitchType*/ 10, MVT::i64,// ->423
+/* 413*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 415*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_remuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })), 4294967295:{ *:[i64] }) - Complexity = 23
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 423*/ 0, // EndSwitchType
+/* 424*/ /*Scope*/ 48, /*->473*/
+/* 425*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 428*/ OPC_RecordChild0, // #1 = $rs2
+/* 429*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 431*/ OPC_MoveParent,
+/* 432*/ OPC_MoveParent,
+/* 433*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->460
+/* 436*/ OPC_Scope, 10, /*->448*/ // 2 children in Scope
+/* 438*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 440*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 448*/ /*Scope*/ 10, /*->459*/
+/* 449*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 451*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i32] }) - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 459*/ 0, /*End of Scope*/
+/* 460*/ /*SwitchType*/ 10, MVT::i64,// ->472
+/* 462*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 464*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } (riscv_remuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>), 4294967295:{ *:[i64] }) - Complexity = 19
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 472*/ 0, // EndSwitchType
+/* 473*/ 0, /*End of Scope*/
+/* 474*/ 0, /*End of Scope*/
+/* 475*/ 0, // EndSwitchOpcode
+/* 476*/ /*Scope*/ 83, /*->560*/
+/* 477*/ OPC_RecordChild0, // #0 = $rs1
+/* 478*/ OPC_SwitchType /*2 cases */, 52, MVT::i32,// ->533
+/* 481*/ OPC_Scope, 24, /*->507*/ // 2 children in Scope
+/* 483*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 485*/ OPC_EmitInteger, MVT::i32, 32,
+/* 488*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 496*/ OPC_EmitInteger, MVT::i32, 32,
+/* 499*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }) - Complexity = 8
+ // Dst: (SRLI:{ *:[i32] } (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 32:{ *:[i32] }), 32:{ *:[i32] })
+/* 507*/ /*Scope*/ 24, /*->532*/
+/* 508*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 510*/ OPC_EmitInteger, MVT::i32, 32,
+/* 513*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 521*/ OPC_EmitInteger, MVT::i32, 32,
+/* 524*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }) - Complexity = 8
+ // Dst: (SRLI:{ *:[i32] } (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 32:{ *:[i32] }), 32:{ *:[i32] })
+/* 532*/ 0, /*End of Scope*/
+/* 533*/ /*SwitchType*/ 24, MVT::i64,// ->559
+/* 535*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 537*/ OPC_EmitInteger, MVT::i64, 32,
+/* 540*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2
+/* 548*/ OPC_EmitInteger, MVT::i64, 32,
+/* 551*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }) - Complexity = 8
+ // Dst: (SRLI:{ *:[i64] } (SLLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 32:{ *:[i64] }), 32:{ *:[i64] })
+/* 559*/ 0, // EndSwitchType
+/* 560*/ 0, /*End of Scope*/
+/* 561*/ /*Scope*/ 94, /*->656*/
+/* 562*/ OPC_RecordChild0, // #0 = $rs1
+/* 563*/ OPC_RecordChild1, // #1 = $imm12
+/* 564*/ OPC_Scope, 51, /*->617*/ // 3 children in Scope
+/* 566*/ OPC_MoveChild1,
+/* 567*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 570*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 572*/ OPC_MoveParent,
+/* 573*/ OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->602
+/* 576*/ OPC_Scope, 12, /*->590*/ // 2 children in Scope
+/* 578*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 580*/ OPC_EmitConvertToTarget, 1,
+/* 582*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ANDI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ANDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 590*/ /*Scope*/ 10, /*->601*/
+/* 591*/ OPC_EmitConvertToTarget, 1,
+/* 593*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ANDI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ANDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 601*/ 0, /*End of Scope*/
+/* 602*/ /*SwitchType*/ 12, MVT::i64,// ->616
+/* 604*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 606*/ OPC_EmitConvertToTarget, 1,
+/* 608*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ANDI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ANDI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 616*/ 0, // EndSwitchType
+/* 617*/ /*Scope*/ 24, /*->642*/
+/* 618*/ OPC_CheckType, MVT::i32,
+/* 620*/ OPC_Scope, 10, /*->632*/ // 2 children in Scope
+/* 622*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 624*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 632*/ /*Scope*/ 8, /*->641*/
+/* 633*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 641*/ 0, /*End of Scope*/
+/* 642*/ /*Scope*/ 12, /*->655*/
+/* 643*/ OPC_CheckType, MVT::i64,
+/* 645*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 647*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (AND:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 655*/ 0, /*End of Scope*/
+/* 656*/ 0, /*End of Scope*/
+/* 657*/ /*SwitchOpcode*/ 91|128,3/*475*/, TARGET_VAL(ISD::AssertZext),// ->1136
+/* 661*/ OPC_MoveChild0,
+/* 662*/ OPC_SwitchOpcode /*2 cases */, 104|128,1/*232*/, TARGET_VAL(RISCVISD::DIVUW),// ->899
+/* 667*/ OPC_MoveChild0,
+/* 668*/ OPC_Scope, 114, /*->784*/ // 2 children in Scope
+/* 670*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 676*/ OPC_RecordChild0, // #0 = $rs1
+/* 677*/ OPC_MoveParent,
+/* 678*/ OPC_MoveChild1,
+/* 679*/ OPC_Scope, 51, /*->732*/ // 2 children in Scope
+/* 681*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 687*/ OPC_RecordChild0, // #1 = $rs2
+/* 688*/ OPC_MoveParent,
+/* 689*/ OPC_MoveParent,
+/* 690*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 692*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->719
+/* 695*/ OPC_Scope, 10, /*->707*/ // 2 children in Scope
+/* 697*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 699*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 707*/ /*Scope*/ 10, /*->718*/
+/* 708*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 710*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 718*/ 0, /*End of Scope*/
+/* 719*/ /*SwitchType*/ 10, MVT::i64,// ->731
+/* 721*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 723*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_divuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 731*/ 0, // EndSwitchType
+/* 732*/ /*Scope*/ 50, /*->783*/
+/* 733*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 736*/ OPC_RecordChild0, // #1 = $rs2
+/* 737*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 739*/ OPC_MoveParent,
+/* 740*/ OPC_MoveParent,
+/* 741*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 743*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->770
+/* 746*/ OPC_Scope, 10, /*->758*/ // 2 children in Scope
+/* 748*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 750*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 758*/ /*Scope*/ 10, /*->769*/
+/* 759*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 761*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 769*/ 0, /*End of Scope*/
+/* 770*/ /*SwitchType*/ 10, MVT::i64,// ->782
+/* 772*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 774*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_divuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 782*/ 0, // EndSwitchType
+/* 783*/ 0, /*End of Scope*/
+/* 784*/ /*Scope*/ 113, /*->898*/
+/* 785*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 788*/ OPC_RecordChild0, // #0 = $rs1
+/* 789*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 791*/ OPC_MoveParent,
+/* 792*/ OPC_MoveChild1,
+/* 793*/ OPC_Scope, 51, /*->846*/ // 2 children in Scope
+/* 795*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 801*/ OPC_RecordChild0, // #1 = $rs2
+/* 802*/ OPC_MoveParent,
+/* 803*/ OPC_MoveParent,
+/* 804*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 806*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->833
+/* 809*/ OPC_Scope, 10, /*->821*/ // 2 children in Scope
+/* 811*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 813*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 821*/ /*Scope*/ 10, /*->832*/
+/* 822*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 824*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 832*/ 0, /*End of Scope*/
+/* 833*/ /*SwitchType*/ 10, MVT::i64,// ->845
+/* 835*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 837*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_divuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 845*/ 0, // EndSwitchType
+/* 846*/ /*Scope*/ 50, /*->897*/
+/* 847*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 850*/ OPC_RecordChild0, // #1 = $rs2
+/* 851*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 853*/ OPC_MoveParent,
+/* 854*/ OPC_MoveParent,
+/* 855*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 857*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->884
+/* 860*/ OPC_Scope, 10, /*->872*/ // 2 children in Scope
+/* 862*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 864*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 872*/ /*Scope*/ 10, /*->883*/
+/* 873*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 875*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_divuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 883*/ 0, /*End of Scope*/
+/* 884*/ /*SwitchType*/ 10, MVT::i64,// ->896
+/* 886*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 888*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_divuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 896*/ 0, // EndSwitchType
+/* 897*/ 0, /*End of Scope*/
+/* 898*/ 0, /*End of Scope*/
+/* 899*/ /*SwitchOpcode*/ 104|128,1/*232*/, TARGET_VAL(RISCVISD::REMUW),// ->1135
+/* 903*/ OPC_MoveChild0,
+/* 904*/ OPC_Scope, 114, /*->1020*/ // 2 children in Scope
+/* 906*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 912*/ OPC_RecordChild0, // #0 = $rs1
+/* 913*/ OPC_MoveParent,
+/* 914*/ OPC_MoveChild1,
+/* 915*/ OPC_Scope, 51, /*->968*/ // 2 children in Scope
+/* 917*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 923*/ OPC_RecordChild0, // #1 = $rs2
+/* 924*/ OPC_MoveParent,
+/* 925*/ OPC_MoveParent,
+/* 926*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 928*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->955
+/* 931*/ OPC_Scope, 10, /*->943*/ // 2 children in Scope
+/* 933*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 935*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 943*/ /*Scope*/ 10, /*->954*/
+/* 944*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 946*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 954*/ 0, /*End of Scope*/
+/* 955*/ /*SwitchType*/ 10, MVT::i64,// ->967
+/* 957*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 959*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_remuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })))<<P:Predicate_assertzexti32>> - Complexity = 23
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 967*/ 0, // EndSwitchType
+/* 968*/ /*Scope*/ 50, /*->1019*/
+/* 969*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 972*/ OPC_RecordChild0, // #1 = $rs2
+/* 973*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 975*/ OPC_MoveParent,
+/* 976*/ OPC_MoveParent,
+/* 977*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 979*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->1006
+/* 982*/ OPC_Scope, 10, /*->994*/ // 2 children in Scope
+/* 984*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 986*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 994*/ /*Scope*/ 10, /*->1005*/
+/* 995*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 997*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }), (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 1005*/ 0, /*End of Scope*/
+/* 1006*/ /*SwitchType*/ 10, MVT::i64,// ->1018
+/* 1008*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1010*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_remuw:{ *:[i64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }), (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 1018*/ 0, // EndSwitchType
+/* 1019*/ 0, /*End of Scope*/
+/* 1020*/ /*Scope*/ 113, /*->1134*/
+/* 1021*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 1024*/ OPC_RecordChild0, // #0 = $rs1
+/* 1025*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 1027*/ OPC_MoveParent,
+/* 1028*/ OPC_MoveChild1,
+/* 1029*/ OPC_Scope, 51, /*->1082*/ // 2 children in Scope
+/* 1031*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 1037*/ OPC_RecordChild0, // #1 = $rs2
+/* 1038*/ OPC_MoveParent,
+/* 1039*/ OPC_MoveParent,
+/* 1040*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 1042*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->1069
+/* 1045*/ OPC_Scope, 10, /*->1057*/ // 2 children in Scope
+/* 1047*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1049*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 1057*/ /*Scope*/ 10, /*->1068*/
+/* 1058*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 1060*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, 4294967295:{ *:[i32] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 1068*/ 0, /*End of Scope*/
+/* 1069*/ /*SwitchType*/ 10, MVT::i64,// ->1081
+/* 1071*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1073*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_remuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, 4294967295:{ *:[i64] })))<<P:Predicate_assertzexti32>> - Complexity = 19
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 1081*/ 0, // EndSwitchType
+/* 1082*/ /*Scope*/ 50, /*->1133*/
+/* 1083*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 1086*/ OPC_RecordChild0, // #1 = $rs2
+/* 1087*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 1089*/ OPC_MoveParent,
+/* 1090*/ OPC_MoveParent,
+/* 1091*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 1093*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->1120
+/* 1096*/ OPC_Scope, 10, /*->1108*/ // 2 children in Scope
+/* 1098*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1100*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 1108*/ /*Scope*/ 10, /*->1119*/
+/* 1109*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 1111*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i32] } (riscv_remuw:{ *:[i32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 1119*/ 0, /*End of Scope*/
+/* 1120*/ /*SwitchType*/ 10, MVT::i64,// ->1132
+/* 1122*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1124*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (assertzext:{ *:[i64] } (riscv_remuw:{ *:[i64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>, (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertzexti32>>))<<P:Predicate_assertzexti32>> - Complexity = 15
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 1132*/ 0, // EndSwitchType
+/* 1133*/ 0, /*End of Scope*/
+/* 1134*/ 0, /*End of Scope*/
+/* 1135*/ 0, // EndSwitchOpcode
+/* 1136*/ /*SwitchOpcode*/ 80|128,30/*3920*/, TARGET_VAL(ISD::LOAD),// ->5060
+/* 1140*/ OPC_RecordMemRef,
+/* 1141*/ OPC_RecordNode, // #0 = 'ld' chained node
+/* 1142*/ OPC_Scope, 48|128,15/*1968*/, /*->3113*/ // 4 children in Scope
+/* 1145*/ OPC_MoveChild1,
+/* 1146*/ OPC_SwitchOpcode /*2 cases */, 57|128,5/*697*/, TARGET_VAL(ISD::OR),// ->1848
+/* 1151*/ OPC_RecordChild0, // #1 = $rs1
+/* 1152*/ OPC_RecordChild1, // #2 = $imm12
+/* 1153*/ OPC_MoveChild1,
+/* 1154*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 1157*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 1159*/ OPC_MoveParent,
+/* 1160*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 1162*/ OPC_SwitchType /*2 cases */, 59|128,3/*443*/, MVT::i32,// ->1609
+/* 1166*/ OPC_MoveParent,
+/* 1167*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 1169*/ OPC_CheckType, MVT::i32,
+/* 1171*/ OPC_Scope, 38, /*->1211*/ // 10 children in Scope
+/* 1173*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1175*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 1177*/ OPC_Scope, 16, /*->1195*/ // 2 children in Scope
+/* 1179*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1181*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1184*/ OPC_EmitMergeInputChains1_0,
+/* 1185*/ OPC_EmitConvertToTarget, 2,
+/* 1187*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1195*/ /*Scope*/ 14, /*->1210*/
+/* 1196*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1199*/ OPC_EmitMergeInputChains1_0,
+/* 1200*/ OPC_EmitConvertToTarget, 2,
+/* 1202*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1210*/ 0, /*End of Scope*/
+/* 1211*/ /*Scope*/ 38, /*->1250*/
+/* 1212*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1214*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 1216*/ OPC_Scope, 16, /*->1234*/ // 2 children in Scope
+/* 1218*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1220*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1223*/ OPC_EmitMergeInputChains1_0,
+/* 1224*/ OPC_EmitConvertToTarget, 2,
+/* 1226*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1234*/ /*Scope*/ 14, /*->1249*/
+/* 1235*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1238*/ OPC_EmitMergeInputChains1_0,
+/* 1239*/ OPC_EmitConvertToTarget, 2,
+/* 1241*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1249*/ 0, /*End of Scope*/
+/* 1250*/ /*Scope*/ 38, /*->1289*/
+/* 1251*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1253*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 1255*/ OPC_Scope, 16, /*->1273*/ // 2 children in Scope
+/* 1257*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1259*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1262*/ OPC_EmitMergeInputChains1_0,
+/* 1263*/ OPC_EmitConvertToTarget, 2,
+/* 1265*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1273*/ /*Scope*/ 14, /*->1288*/
+/* 1274*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1277*/ OPC_EmitMergeInputChains1_0,
+/* 1278*/ OPC_EmitConvertToTarget, 2,
+/* 1280*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1288*/ 0, /*End of Scope*/
+/* 1289*/ /*Scope*/ 38, /*->1328*/
+/* 1290*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1292*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 1294*/ OPC_Scope, 16, /*->1312*/ // 2 children in Scope
+/* 1296*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1298*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1301*/ OPC_EmitMergeInputChains1_0,
+/* 1302*/ OPC_EmitConvertToTarget, 2,
+/* 1304*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1312*/ /*Scope*/ 14, /*->1327*/
+/* 1313*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1316*/ OPC_EmitMergeInputChains1_0,
+/* 1317*/ OPC_EmitConvertToTarget, 2,
+/* 1319*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1327*/ 0, /*End of Scope*/
+/* 1328*/ /*Scope*/ 38, /*->1367*/
+/* 1329*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 1331*/ OPC_Scope, 16, /*->1349*/ // 2 children in Scope
+/* 1333*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1335*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1338*/ OPC_EmitMergeInputChains1_0,
+/* 1339*/ OPC_EmitConvertToTarget, 2,
+/* 1341*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1349*/ /*Scope*/ 16, /*->1366*/
+/* 1350*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 1352*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1355*/ OPC_EmitMergeInputChains1_0,
+/* 1356*/ OPC_EmitConvertToTarget, 2,
+/* 1358*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1366*/ 0, /*End of Scope*/
+/* 1367*/ /*Scope*/ 78, /*->1446*/
+/* 1368*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 1370*/ OPC_Scope, 36, /*->1408*/ // 2 children in Scope
+/* 1372*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 1374*/ OPC_Scope, 16, /*->1392*/ // 2 children in Scope
+/* 1376*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1378*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1381*/ OPC_EmitMergeInputChains1_0,
+/* 1382*/ OPC_EmitConvertToTarget, 2,
+/* 1384*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 18
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1392*/ /*Scope*/ 14, /*->1407*/
+/* 1393*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1396*/ OPC_EmitMergeInputChains1_0,
+/* 1397*/ OPC_EmitConvertToTarget, 2,
+/* 1399*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 18
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1407*/ 0, /*End of Scope*/
+/* 1408*/ /*Scope*/ 36, /*->1445*/
+/* 1409*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 1411*/ OPC_Scope, 16, /*->1429*/ // 2 children in Scope
+/* 1413*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1415*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1418*/ OPC_EmitMergeInputChains1_0,
+/* 1419*/ OPC_EmitConvertToTarget, 2,
+/* 1421*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 18
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1429*/ /*Scope*/ 14, /*->1444*/
+/* 1430*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1433*/ OPC_EmitMergeInputChains1_0,
+/* 1434*/ OPC_EmitConvertToTarget, 2,
+/* 1436*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 18
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1444*/ 0, /*End of Scope*/
+/* 1445*/ 0, /*End of Scope*/
+/* 1446*/ /*Scope*/ 40, /*->1487*/
+/* 1447*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1449*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 1451*/ OPC_Scope, 16, /*->1469*/ // 2 children in Scope
+/* 1453*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1455*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1458*/ OPC_EmitMergeInputChains1_0,
+/* 1459*/ OPC_EmitConvertToTarget, 2,
+/* 1461*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1469*/ /*Scope*/ 16, /*->1486*/
+/* 1470*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 1472*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1475*/ OPC_EmitMergeInputChains1_0,
+/* 1476*/ OPC_EmitConvertToTarget, 2,
+/* 1478*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1486*/ 0, /*End of Scope*/
+/* 1487*/ /*Scope*/ 40, /*->1528*/
+/* 1488*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1490*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 1492*/ OPC_Scope, 16, /*->1510*/ // 2 children in Scope
+/* 1494*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1496*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1499*/ OPC_EmitMergeInputChains1_0,
+/* 1500*/ OPC_EmitConvertToTarget, 2,
+/* 1502*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1510*/ /*Scope*/ 16, /*->1527*/
+/* 1511*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 1513*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1516*/ OPC_EmitMergeInputChains1_0,
+/* 1517*/ OPC_EmitConvertToTarget, 2,
+/* 1519*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1527*/ 0, /*End of Scope*/
+/* 1528*/ /*Scope*/ 40, /*->1569*/
+/* 1529*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 1531*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 1533*/ OPC_Scope, 16, /*->1551*/ // 2 children in Scope
+/* 1535*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1537*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1540*/ OPC_EmitMergeInputChains1_0,
+/* 1541*/ OPC_EmitConvertToTarget, 2,
+/* 1543*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 18
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1551*/ /*Scope*/ 16, /*->1568*/
+/* 1552*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 1554*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1557*/ OPC_EmitMergeInputChains1_0,
+/* 1558*/ OPC_EmitConvertToTarget, 2,
+/* 1560*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 18
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1568*/ 0, /*End of Scope*/
+/* 1569*/ /*Scope*/ 38, /*->1608*/
+/* 1570*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 1572*/ OPC_Scope, 16, /*->1590*/ // 2 children in Scope
+/* 1574*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1576*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1579*/ OPC_EmitMergeInputChains1_0,
+/* 1580*/ OPC_EmitConvertToTarget, 2,
+/* 1582*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1590*/ /*Scope*/ 16, /*->1607*/
+/* 1591*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 1593*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1596*/ OPC_EmitMergeInputChains1_0,
+/* 1597*/ OPC_EmitConvertToTarget, 2,
+/* 1599*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1607*/ 0, /*End of Scope*/
+/* 1608*/ 0, /*End of Scope*/
+/* 1609*/ /*SwitchType*/ 107|128,1/*235*/, MVT::i64,// ->1847
+/* 1612*/ OPC_MoveParent,
+/* 1613*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 1615*/ OPC_CheckType, MVT::i64,
+/* 1617*/ OPC_Scope, 20, /*->1639*/ // 10 children in Scope
+/* 1619*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1621*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 1623*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1625*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1628*/ OPC_EmitMergeInputChains1_0,
+/* 1629*/ OPC_EmitConvertToTarget, 2,
+/* 1631*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1639*/ /*Scope*/ 20, /*->1660*/
+/* 1640*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1642*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 1644*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1646*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1649*/ OPC_EmitMergeInputChains1_0,
+/* 1650*/ OPC_EmitConvertToTarget, 2,
+/* 1652*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 18
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1660*/ /*Scope*/ 20, /*->1681*/
+/* 1661*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1663*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 1665*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1667*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1670*/ OPC_EmitMergeInputChains1_0,
+/* 1671*/ OPC_EmitConvertToTarget, 2,
+/* 1673*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1681*/ /*Scope*/ 20, /*->1702*/
+/* 1682*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1684*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 1686*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1688*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1691*/ OPC_EmitMergeInputChains1_0,
+/* 1692*/ OPC_EmitConvertToTarget, 2,
+/* 1694*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 18
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1702*/ /*Scope*/ 18, /*->1721*/
+/* 1703*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 1705*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1707*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1710*/ OPC_EmitMergeInputChains1_0,
+/* 1711*/ OPC_EmitConvertToTarget, 2,
+/* 1713*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1721*/ /*Scope*/ 42, /*->1764*/
+/* 1722*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 1724*/ OPC_Scope, 18, /*->1744*/ // 2 children in Scope
+/* 1726*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 1728*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1730*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1733*/ OPC_EmitMergeInputChains1_0,
+/* 1734*/ OPC_EmitConvertToTarget, 2,
+/* 1736*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 18
+ // Dst: (LBU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1744*/ /*Scope*/ 18, /*->1763*/
+/* 1745*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 1747*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1749*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1752*/ OPC_EmitMergeInputChains1_0,
+/* 1753*/ OPC_EmitConvertToTarget, 2,
+/* 1755*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 18
+ // Dst: (LHU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1763*/ 0, /*End of Scope*/
+/* 1764*/ /*Scope*/ 20, /*->1785*/
+/* 1765*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1767*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 1769*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1771*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1774*/ OPC_EmitMergeInputChains1_0,
+/* 1775*/ OPC_EmitConvertToTarget, 2,
+/* 1777*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1785*/ /*Scope*/ 20, /*->1806*/
+/* 1786*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1788*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 1790*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1792*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1795*/ OPC_EmitMergeInputChains1_0,
+/* 1796*/ OPC_EmitConvertToTarget, 2,
+/* 1798*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 18
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1806*/ /*Scope*/ 20, /*->1827*/
+/* 1807*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 1809*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 1811*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1813*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1816*/ OPC_EmitMergeInputChains1_0,
+/* 1817*/ OPC_EmitConvertToTarget, 2,
+/* 1819*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 18
+ // Dst: (LWU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1827*/ /*Scope*/ 18, /*->1846*/
+/* 1828*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 1830*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 1832*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1835*/ OPC_EmitMergeInputChains1_0,
+/* 1836*/ OPC_EmitConvertToTarget, 2,
+/* 1838*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 1846*/ 0, /*End of Scope*/
+/* 1847*/ 0, // EndSwitchType
+/* 1848*/ /*SwitchOpcode*/ 108|128,9/*1260*/, TARGET_VAL(ISD::ADD),// ->3112
+/* 1852*/ OPC_RecordChild0, // #1 = $rs1
+/* 1853*/ OPC_RecordChild1, // #2 = $imm12
+/* 1854*/ OPC_MoveChild1,
+/* 1855*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 1858*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 1860*/ OPC_MoveParent,
+/* 1861*/ OPC_SwitchType /*2 cases */, 45|128,6/*813*/, MVT::i32,// ->2678
+/* 1865*/ OPC_MoveParent,
+/* 1866*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 1868*/ OPC_CheckType, MVT::i32,
+/* 1870*/ OPC_Scope, 38, /*->1910*/ // 20 children in Scope
+/* 1872*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1874*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 1876*/ OPC_Scope, 16, /*->1894*/ // 2 children in Scope
+/* 1878*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1880*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1883*/ OPC_EmitMergeInputChains1_0,
+/* 1884*/ OPC_EmitConvertToTarget, 2,
+/* 1886*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1894*/ /*Scope*/ 14, /*->1909*/
+/* 1895*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1898*/ OPC_EmitMergeInputChains1_0,
+/* 1899*/ OPC_EmitConvertToTarget, 2,
+/* 1901*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1909*/ 0, /*End of Scope*/
+/* 1910*/ /*Scope*/ 38, /*->1949*/
+/* 1911*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1913*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 1915*/ OPC_Scope, 16, /*->1933*/ // 2 children in Scope
+/* 1917*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1919*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1922*/ OPC_EmitMergeInputChains1_0,
+/* 1923*/ OPC_EmitConvertToTarget, 2,
+/* 1925*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1933*/ /*Scope*/ 14, /*->1948*/
+/* 1934*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1937*/ OPC_EmitMergeInputChains1_0,
+/* 1938*/ OPC_EmitConvertToTarget, 2,
+/* 1940*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1948*/ 0, /*End of Scope*/
+/* 1949*/ /*Scope*/ 38, /*->1988*/
+/* 1950*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 1952*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 1954*/ OPC_Scope, 16, /*->1972*/ // 2 children in Scope
+/* 1956*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1958*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1961*/ OPC_EmitMergeInputChains1_0,
+/* 1962*/ OPC_EmitConvertToTarget, 2,
+/* 1964*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1972*/ /*Scope*/ 14, /*->1987*/
+/* 1973*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 1976*/ OPC_EmitMergeInputChains1_0,
+/* 1977*/ OPC_EmitConvertToTarget, 2,
+/* 1979*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 1987*/ 0, /*End of Scope*/
+/* 1988*/ /*Scope*/ 38, /*->2027*/
+/* 1989*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 1991*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 1993*/ OPC_Scope, 16, /*->2011*/ // 2 children in Scope
+/* 1995*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 1997*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2000*/ OPC_EmitMergeInputChains1_0,
+/* 2001*/ OPC_EmitConvertToTarget, 2,
+/* 2003*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2011*/ /*Scope*/ 14, /*->2026*/
+/* 2012*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2015*/ OPC_EmitMergeInputChains1_0,
+/* 2016*/ OPC_EmitConvertToTarget, 2,
+/* 2018*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2026*/ 0, /*End of Scope*/
+/* 2027*/ /*Scope*/ 38, /*->2066*/
+/* 2028*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2030*/ OPC_Scope, 16, /*->2048*/ // 2 children in Scope
+/* 2032*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2034*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2037*/ OPC_EmitMergeInputChains1_0,
+/* 2038*/ OPC_EmitConvertToTarget, 2,
+/* 2040*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2048*/ /*Scope*/ 16, /*->2065*/
+/* 2049*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 2051*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2054*/ OPC_EmitMergeInputChains1_0,
+/* 2055*/ OPC_EmitConvertToTarget, 2,
+/* 2057*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2065*/ 0, /*End of Scope*/
+/* 2066*/ /*Scope*/ 78, /*->2145*/
+/* 2067*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2069*/ OPC_Scope, 36, /*->2107*/ // 2 children in Scope
+/* 2071*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 2073*/ OPC_Scope, 16, /*->2091*/ // 2 children in Scope
+/* 2075*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2077*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2080*/ OPC_EmitMergeInputChains1_0,
+/* 2081*/ OPC_EmitConvertToTarget, 2,
+/* 2083*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 17
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2091*/ /*Scope*/ 14, /*->2106*/
+/* 2092*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2095*/ OPC_EmitMergeInputChains1_0,
+/* 2096*/ OPC_EmitConvertToTarget, 2,
+/* 2098*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 17
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2106*/ 0, /*End of Scope*/
+/* 2107*/ /*Scope*/ 36, /*->2144*/
+/* 2108*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 2110*/ OPC_Scope, 16, /*->2128*/ // 2 children in Scope
+/* 2112*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2114*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2117*/ OPC_EmitMergeInputChains1_0,
+/* 2118*/ OPC_EmitConvertToTarget, 2,
+/* 2120*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 17
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2128*/ /*Scope*/ 14, /*->2143*/
+/* 2129*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2132*/ OPC_EmitMergeInputChains1_0,
+/* 2133*/ OPC_EmitConvertToTarget, 2,
+/* 2135*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 17
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2143*/ 0, /*End of Scope*/
+/* 2144*/ 0, /*End of Scope*/
+/* 2145*/ /*Scope*/ 40, /*->2186*/
+/* 2146*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2148*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 2150*/ OPC_Scope, 16, /*->2168*/ // 2 children in Scope
+/* 2152*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2154*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2157*/ OPC_EmitMergeInputChains1_0,
+/* 2158*/ OPC_EmitConvertToTarget, 2,
+/* 2160*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2168*/ /*Scope*/ 16, /*->2185*/
+/* 2169*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2171*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2174*/ OPC_EmitMergeInputChains1_0,
+/* 2175*/ OPC_EmitConvertToTarget, 2,
+/* 2177*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2185*/ 0, /*End of Scope*/
+/* 2186*/ /*Scope*/ 40, /*->2227*/
+/* 2187*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2189*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 2191*/ OPC_Scope, 16, /*->2209*/ // 2 children in Scope
+/* 2193*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2195*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2198*/ OPC_EmitMergeInputChains1_0,
+/* 2199*/ OPC_EmitConvertToTarget, 2,
+/* 2201*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2209*/ /*Scope*/ 16, /*->2226*/
+/* 2210*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2212*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2215*/ OPC_EmitMergeInputChains1_0,
+/* 2216*/ OPC_EmitConvertToTarget, 2,
+/* 2218*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2226*/ 0, /*End of Scope*/
+/* 2227*/ /*Scope*/ 40, /*->2268*/
+/* 2228*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2230*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 2232*/ OPC_Scope, 16, /*->2250*/ // 2 children in Scope
+/* 2234*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2236*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2239*/ OPC_EmitMergeInputChains1_0,
+/* 2240*/ OPC_EmitConvertToTarget, 2,
+/* 2242*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 17
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2250*/ /*Scope*/ 16, /*->2267*/
+/* 2251*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2253*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2256*/ OPC_EmitMergeInputChains1_0,
+/* 2257*/ OPC_EmitConvertToTarget, 2,
+/* 2259*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 17
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2267*/ 0, /*End of Scope*/
+/* 2268*/ /*Scope*/ 38, /*->2307*/
+/* 2269*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2271*/ OPC_Scope, 16, /*->2289*/ // 2 children in Scope
+/* 2273*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2275*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2278*/ OPC_EmitMergeInputChains1_0,
+/* 2279*/ OPC_EmitConvertToTarget, 2,
+/* 2281*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2289*/ /*Scope*/ 16, /*->2306*/
+/* 2290*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2292*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2295*/ OPC_EmitMergeInputChains1_0,
+/* 2296*/ OPC_EmitConvertToTarget, 2,
+/* 2298*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2306*/ 0, /*End of Scope*/
+/* 2307*/ /*Scope*/ 32, /*->2340*/
+/* 2308*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2310*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 2312*/ OPC_Scope, 13, /*->2327*/ // 2 children in Scope
+/* 2314*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2316*/ OPC_EmitMergeInputChains1_0,
+/* 2317*/ OPC_EmitConvertToTarget, 2,
+/* 2319*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2327*/ /*Scope*/ 11, /*->2339*/
+/* 2328*/ OPC_EmitMergeInputChains1_0,
+/* 2329*/ OPC_EmitConvertToTarget, 2,
+/* 2331*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2339*/ 0, /*End of Scope*/
+/* 2340*/ /*Scope*/ 32, /*->2373*/
+/* 2341*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2343*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 2345*/ OPC_Scope, 13, /*->2360*/ // 2 children in Scope
+/* 2347*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2349*/ OPC_EmitMergeInputChains1_0,
+/* 2350*/ OPC_EmitConvertToTarget, 2,
+/* 2352*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2360*/ /*Scope*/ 11, /*->2372*/
+/* 2361*/ OPC_EmitMergeInputChains1_0,
+/* 2362*/ OPC_EmitConvertToTarget, 2,
+/* 2364*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2372*/ 0, /*End of Scope*/
+/* 2373*/ /*Scope*/ 32, /*->2406*/
+/* 2374*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2376*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 2378*/ OPC_Scope, 13, /*->2393*/ // 2 children in Scope
+/* 2380*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2382*/ OPC_EmitMergeInputChains1_0,
+/* 2383*/ OPC_EmitConvertToTarget, 2,
+/* 2385*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2393*/ /*Scope*/ 11, /*->2405*/
+/* 2394*/ OPC_EmitMergeInputChains1_0,
+/* 2395*/ OPC_EmitConvertToTarget, 2,
+/* 2397*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2405*/ 0, /*End of Scope*/
+/* 2406*/ /*Scope*/ 32, /*->2439*/
+/* 2407*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2409*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 2411*/ OPC_Scope, 13, /*->2426*/ // 2 children in Scope
+/* 2413*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2415*/ OPC_EmitMergeInputChains1_0,
+/* 2416*/ OPC_EmitConvertToTarget, 2,
+/* 2418*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2426*/ /*Scope*/ 11, /*->2438*/
+/* 2427*/ OPC_EmitMergeInputChains1_0,
+/* 2428*/ OPC_EmitConvertToTarget, 2,
+/* 2430*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2438*/ 0, /*End of Scope*/
+/* 2439*/ /*Scope*/ 32, /*->2472*/
+/* 2440*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2442*/ OPC_Scope, 13, /*->2457*/ // 2 children in Scope
+/* 2444*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2446*/ OPC_EmitMergeInputChains1_0,
+/* 2447*/ OPC_EmitConvertToTarget, 2,
+/* 2449*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2457*/ /*Scope*/ 13, /*->2471*/
+/* 2458*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 2460*/ OPC_EmitMergeInputChains1_0,
+/* 2461*/ OPC_EmitConvertToTarget, 2,
+/* 2463*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2471*/ 0, /*End of Scope*/
+/* 2472*/ /*Scope*/ 66, /*->2539*/
+/* 2473*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2475*/ OPC_Scope, 30, /*->2507*/ // 2 children in Scope
+/* 2477*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 2479*/ OPC_Scope, 13, /*->2494*/ // 2 children in Scope
+/* 2481*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2483*/ OPC_EmitMergeInputChains1_0,
+/* 2484*/ OPC_EmitConvertToTarget, 2,
+/* 2486*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 11
+ // Dst: (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2494*/ /*Scope*/ 11, /*->2506*/
+/* 2495*/ OPC_EmitMergeInputChains1_0,
+/* 2496*/ OPC_EmitConvertToTarget, 2,
+/* 2498*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 11
+ // Dst: (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2506*/ 0, /*End of Scope*/
+/* 2507*/ /*Scope*/ 30, /*->2538*/
+/* 2508*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 2510*/ OPC_Scope, 13, /*->2525*/ // 2 children in Scope
+/* 2512*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2514*/ OPC_EmitMergeInputChains1_0,
+/* 2515*/ OPC_EmitConvertToTarget, 2,
+/* 2517*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 11
+ // Dst: (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2525*/ /*Scope*/ 11, /*->2537*/
+/* 2526*/ OPC_EmitMergeInputChains1_0,
+/* 2527*/ OPC_EmitConvertToTarget, 2,
+/* 2529*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 11
+ // Dst: (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2537*/ 0, /*End of Scope*/
+/* 2538*/ 0, /*End of Scope*/
+/* 2539*/ /*Scope*/ 34, /*->2574*/
+/* 2540*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2542*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 2544*/ OPC_Scope, 13, /*->2559*/ // 2 children in Scope
+/* 2546*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2548*/ OPC_EmitMergeInputChains1_0,
+/* 2549*/ OPC_EmitConvertToTarget, 2,
+/* 2551*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2559*/ /*Scope*/ 13, /*->2573*/
+/* 2560*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2562*/ OPC_EmitMergeInputChains1_0,
+/* 2563*/ OPC_EmitConvertToTarget, 2,
+/* 2565*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2573*/ 0, /*End of Scope*/
+/* 2574*/ /*Scope*/ 34, /*->2609*/
+/* 2575*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2577*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 2579*/ OPC_Scope, 13, /*->2594*/ // 2 children in Scope
+/* 2581*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2583*/ OPC_EmitMergeInputChains1_0,
+/* 2584*/ OPC_EmitConvertToTarget, 2,
+/* 2586*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2594*/ /*Scope*/ 13, /*->2608*/
+/* 2595*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2597*/ OPC_EmitMergeInputChains1_0,
+/* 2598*/ OPC_EmitConvertToTarget, 2,
+/* 2600*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2608*/ 0, /*End of Scope*/
+/* 2609*/ /*Scope*/ 34, /*->2644*/
+/* 2610*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2612*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 2614*/ OPC_Scope, 13, /*->2629*/ // 2 children in Scope
+/* 2616*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2618*/ OPC_EmitMergeInputChains1_0,
+/* 2619*/ OPC_EmitConvertToTarget, 2,
+/* 2621*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 11
+ // Dst: (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2629*/ /*Scope*/ 13, /*->2643*/
+/* 2630*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2632*/ OPC_EmitMergeInputChains1_0,
+/* 2633*/ OPC_EmitConvertToTarget, 2,
+/* 2635*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 11
+ // Dst: (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2643*/ 0, /*End of Scope*/
+/* 2644*/ /*Scope*/ 32, /*->2677*/
+/* 2645*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2647*/ OPC_Scope, 13, /*->2662*/ // 2 children in Scope
+/* 2649*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 2651*/ OPC_EmitMergeInputChains1_0,
+/* 2652*/ OPC_EmitConvertToTarget, 2,
+/* 2654*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2662*/ /*Scope*/ 13, /*->2676*/
+/* 2663*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 2665*/ OPC_EmitMergeInputChains1_0,
+/* 2666*/ OPC_EmitConvertToTarget, 2,
+/* 2668*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 2676*/ 0, /*End of Scope*/
+/* 2677*/ 0, /*End of Scope*/
+/* 2678*/ /*SwitchType*/ 46|128,3/*430*/, MVT::i64,// ->3111
+/* 2681*/ OPC_MoveParent,
+/* 2682*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 2684*/ OPC_CheckType, MVT::i64,
+/* 2686*/ OPC_Scope, 20, /*->2708*/ // 20 children in Scope
+/* 2688*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2690*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 2692*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2694*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2697*/ OPC_EmitMergeInputChains1_0,
+/* 2698*/ OPC_EmitConvertToTarget, 2,
+/* 2700*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2708*/ /*Scope*/ 20, /*->2729*/
+/* 2709*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2711*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 2713*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2715*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2718*/ OPC_EmitMergeInputChains1_0,
+/* 2719*/ OPC_EmitConvertToTarget, 2,
+/* 2721*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 17
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2729*/ /*Scope*/ 20, /*->2750*/
+/* 2730*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2732*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 2734*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2736*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2739*/ OPC_EmitMergeInputChains1_0,
+/* 2740*/ OPC_EmitConvertToTarget, 2,
+/* 2742*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2750*/ /*Scope*/ 20, /*->2771*/
+/* 2751*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2753*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 2755*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2757*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2760*/ OPC_EmitMergeInputChains1_0,
+/* 2761*/ OPC_EmitConvertToTarget, 2,
+/* 2763*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 17
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2771*/ /*Scope*/ 18, /*->2790*/
+/* 2772*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2774*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2776*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2779*/ OPC_EmitMergeInputChains1_0,
+/* 2780*/ OPC_EmitConvertToTarget, 2,
+/* 2782*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2790*/ /*Scope*/ 42, /*->2833*/
+/* 2791*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2793*/ OPC_Scope, 18, /*->2813*/ // 2 children in Scope
+/* 2795*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 2797*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2799*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2802*/ OPC_EmitMergeInputChains1_0,
+/* 2803*/ OPC_EmitConvertToTarget, 2,
+/* 2805*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 17
+ // Dst: (LBU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2813*/ /*Scope*/ 18, /*->2832*/
+/* 2814*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 2816*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2818*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2821*/ OPC_EmitMergeInputChains1_0,
+/* 2822*/ OPC_EmitConvertToTarget, 2,
+/* 2824*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 17
+ // Dst: (LHU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2832*/ 0, /*End of Scope*/
+/* 2833*/ /*Scope*/ 20, /*->2854*/
+/* 2834*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2836*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 2838*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2840*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2843*/ OPC_EmitMergeInputChains1_0,
+/* 2844*/ OPC_EmitConvertToTarget, 2,
+/* 2846*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2854*/ /*Scope*/ 20, /*->2875*/
+/* 2855*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2857*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 2859*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2861*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2864*/ OPC_EmitMergeInputChains1_0,
+/* 2865*/ OPC_EmitConvertToTarget, 2,
+/* 2867*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 17
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2875*/ /*Scope*/ 20, /*->2896*/
+/* 2876*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 2878*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 2880*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2882*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2885*/ OPC_EmitMergeInputChains1_0,
+/* 2886*/ OPC_EmitConvertToTarget, 2,
+/* 2888*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 17
+ // Dst: (LWU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2896*/ /*Scope*/ 18, /*->2915*/
+/* 2897*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2899*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2901*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 2904*/ OPC_EmitMergeInputChains1_0,
+/* 2905*/ OPC_EmitConvertToTarget, 2,
+/* 2907*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2915*/ /*Scope*/ 17, /*->2933*/
+/* 2916*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2918*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 2920*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2922*/ OPC_EmitMergeInputChains1_0,
+/* 2923*/ OPC_EmitConvertToTarget, 2,
+/* 2925*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2933*/ /*Scope*/ 17, /*->2951*/
+/* 2934*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2936*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 2938*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2940*/ OPC_EmitMergeInputChains1_0,
+/* 2941*/ OPC_EmitConvertToTarget, 2,
+/* 2943*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 11
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2951*/ /*Scope*/ 17, /*->2969*/
+/* 2952*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 2954*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 2956*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2958*/ OPC_EmitMergeInputChains1_0,
+/* 2959*/ OPC_EmitConvertToTarget, 2,
+/* 2961*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2969*/ /*Scope*/ 17, /*->2987*/
+/* 2970*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 2972*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 2974*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2976*/ OPC_EmitMergeInputChains1_0,
+/* 2977*/ OPC_EmitConvertToTarget, 2,
+/* 2979*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 11
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 2987*/ /*Scope*/ 15, /*->3003*/
+/* 2988*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 2990*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 2992*/ OPC_EmitMergeInputChains1_0,
+/* 2993*/ OPC_EmitConvertToTarget, 2,
+/* 2995*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3003*/ /*Scope*/ 36, /*->3040*/
+/* 3004*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 3006*/ OPC_Scope, 15, /*->3023*/ // 2 children in Scope
+/* 3008*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 3010*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3012*/ OPC_EmitMergeInputChains1_0,
+/* 3013*/ OPC_EmitConvertToTarget, 2,
+/* 3015*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 11
+ // Dst: (LBU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3023*/ /*Scope*/ 15, /*->3039*/
+/* 3024*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 3026*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3028*/ OPC_EmitMergeInputChains1_0,
+/* 3029*/ OPC_EmitConvertToTarget, 2,
+/* 3031*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 11
+ // Dst: (LHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3039*/ 0, /*End of Scope*/
+/* 3040*/ /*Scope*/ 17, /*->3058*/
+/* 3041*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3043*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 3045*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3047*/ OPC_EmitMergeInputChains1_0,
+/* 3048*/ OPC_EmitConvertToTarget, 2,
+/* 3050*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3058*/ /*Scope*/ 17, /*->3076*/
+/* 3059*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3061*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 3063*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3065*/ OPC_EmitMergeInputChains1_0,
+/* 3066*/ OPC_EmitConvertToTarget, 2,
+/* 3068*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 11
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3076*/ /*Scope*/ 17, /*->3094*/
+/* 3077*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 3079*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 3081*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3083*/ OPC_EmitMergeInputChains1_0,
+/* 3084*/ OPC_EmitConvertToTarget, 2,
+/* 3086*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 11
+ // Dst: (LWU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3094*/ /*Scope*/ 15, /*->3110*/
+/* 3095*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 3097*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3099*/ OPC_EmitMergeInputChains1_0,
+/* 3100*/ OPC_EmitConvertToTarget, 2,
+/* 3102*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 3110*/ 0, /*End of Scope*/
+/* 3111*/ 0, // EndSwitchType
+/* 3112*/ 0, // EndSwitchOpcode
+/* 3113*/ /*Scope*/ 51|128,10/*1331*/, /*->4446*/
+/* 3115*/ OPC_RecordChild1, // #1 = $rs1
+/* 3116*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 3118*/ OPC_Scope, 63, /*->3183*/ // 12 children in Scope
+/* 3120*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3122*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 3124*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3163
+/* 3127*/ OPC_Scope, 17, /*->3146*/ // 2 children in Scope
+/* 3129*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3131*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3134*/ OPC_EmitMergeInputChains1_0,
+/* 3135*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3138*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3146*/ /*Scope*/ 15, /*->3162*/
+/* 3147*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3150*/ OPC_EmitMergeInputChains1_0,
+/* 3151*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3154*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3162*/ 0, /*End of Scope*/
+/* 3163*/ /*SwitchType*/ 17, MVT::i64,// ->3182
+/* 3165*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3167*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3170*/ OPC_EmitMergeInputChains1_0,
+/* 3171*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3174*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3182*/ 0, // EndSwitchType
+/* 3183*/ /*Scope*/ 63, /*->3247*/
+/* 3184*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3186*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 3188*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3227
+/* 3191*/ OPC_Scope, 17, /*->3210*/ // 2 children in Scope
+/* 3193*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3195*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3198*/ OPC_EmitMergeInputChains1_0,
+/* 3199*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3202*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3210*/ /*Scope*/ 15, /*->3226*/
+/* 3211*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3214*/ OPC_EmitMergeInputChains1_0,
+/* 3215*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3218*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3226*/ 0, /*End of Scope*/
+/* 3227*/ /*SwitchType*/ 17, MVT::i64,// ->3246
+/* 3229*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3231*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3234*/ OPC_EmitMergeInputChains1_0,
+/* 3235*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3238*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 10
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3246*/ 0, // EndSwitchType
+/* 3247*/ /*Scope*/ 63, /*->3311*/
+/* 3248*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3250*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 3252*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3291
+/* 3255*/ OPC_Scope, 17, /*->3274*/ // 2 children in Scope
+/* 3257*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3259*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3262*/ OPC_EmitMergeInputChains1_0,
+/* 3263*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3266*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3274*/ /*Scope*/ 15, /*->3290*/
+/* 3275*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3278*/ OPC_EmitMergeInputChains1_0,
+/* 3279*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3282*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3290*/ 0, /*End of Scope*/
+/* 3291*/ /*SwitchType*/ 17, MVT::i64,// ->3310
+/* 3293*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3295*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3298*/ OPC_EmitMergeInputChains1_0,
+/* 3299*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3302*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3310*/ 0, // EndSwitchType
+/* 3311*/ /*Scope*/ 63, /*->3375*/
+/* 3312*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3314*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 3316*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3355
+/* 3319*/ OPC_Scope, 17, /*->3338*/ // 2 children in Scope
+/* 3321*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3323*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3326*/ OPC_EmitMergeInputChains1_0,
+/* 3327*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3330*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3338*/ /*Scope*/ 15, /*->3354*/
+/* 3339*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3342*/ OPC_EmitMergeInputChains1_0,
+/* 3343*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3346*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3354*/ 0, /*End of Scope*/
+/* 3355*/ /*SwitchType*/ 17, MVT::i64,// ->3374
+/* 3357*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3359*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3362*/ OPC_EmitMergeInputChains1_0,
+/* 3363*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3366*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 10
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3374*/ 0, // EndSwitchType
+/* 3375*/ /*Scope*/ 63, /*->3439*/
+/* 3376*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 3378*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->3419
+/* 3381*/ OPC_Scope, 17, /*->3400*/ // 2 children in Scope
+/* 3383*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3385*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3388*/ OPC_EmitMergeInputChains1_0,
+/* 3389*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3392*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3400*/ /*Scope*/ 17, /*->3418*/
+/* 3401*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 3403*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3406*/ OPC_EmitMergeInputChains1_0,
+/* 3407*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3410*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3418*/ 0, /*End of Scope*/
+/* 3419*/ /*SwitchType*/ 17, MVT::i64,// ->3438
+/* 3421*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3423*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3426*/ OPC_EmitMergeInputChains1_0,
+/* 3427*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3430*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3438*/ 0, // EndSwitchType
+/* 3439*/ /*Scope*/ 0|128,1/*128*/, /*->3569*/
+/* 3441*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 3443*/ OPC_Scope, 61, /*->3506*/ // 2 children in Scope
+/* 3445*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 3447*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3486
+/* 3450*/ OPC_Scope, 17, /*->3469*/ // 2 children in Scope
+/* 3452*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3454*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3457*/ OPC_EmitMergeInputChains1_0,
+/* 3458*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3461*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 10
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3469*/ /*Scope*/ 15, /*->3485*/
+/* 3470*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3473*/ OPC_EmitMergeInputChains1_0,
+/* 3474*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3477*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 10
+ // Dst: (LBU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3485*/ 0, /*End of Scope*/
+/* 3486*/ /*SwitchType*/ 17, MVT::i64,// ->3505
+/* 3488*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3490*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3493*/ OPC_EmitMergeInputChains1_0,
+/* 3494*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3497*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 10
+ // Dst: (LBU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3505*/ 0, // EndSwitchType
+/* 3506*/ /*Scope*/ 61, /*->3568*/
+/* 3507*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 3509*/ OPC_SwitchType /*2 cases */, 36, MVT::i32,// ->3548
+/* 3512*/ OPC_Scope, 17, /*->3531*/ // 2 children in Scope
+/* 3514*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3516*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3519*/ OPC_EmitMergeInputChains1_0,
+/* 3520*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3523*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 10
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3531*/ /*Scope*/ 15, /*->3547*/
+/* 3532*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3535*/ OPC_EmitMergeInputChains1_0,
+/* 3536*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3539*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 10
+ // Dst: (LHU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3547*/ 0, /*End of Scope*/
+/* 3548*/ /*SwitchType*/ 17, MVT::i64,// ->3567
+/* 3550*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3552*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3555*/ OPC_EmitMergeInputChains1_0,
+/* 3556*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3559*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 10
+ // Dst: (LHU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3567*/ 0, // EndSwitchType
+/* 3568*/ 0, /*End of Scope*/
+/* 3569*/ /*Scope*/ 65, /*->3635*/
+/* 3570*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3572*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 3574*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->3615
+/* 3577*/ OPC_Scope, 17, /*->3596*/ // 2 children in Scope
+/* 3579*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3581*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3584*/ OPC_EmitMergeInputChains1_0,
+/* 3585*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3588*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3596*/ /*Scope*/ 17, /*->3614*/
+/* 3597*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 3599*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3602*/ OPC_EmitMergeInputChains1_0,
+/* 3603*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3606*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3614*/ 0, /*End of Scope*/
+/* 3615*/ /*SwitchType*/ 17, MVT::i64,// ->3634
+/* 3617*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3619*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3622*/ OPC_EmitMergeInputChains1_0,
+/* 3623*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3626*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3634*/ 0, // EndSwitchType
+/* 3635*/ /*Scope*/ 65, /*->3701*/
+/* 3636*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3638*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 3640*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->3681
+/* 3643*/ OPC_Scope, 17, /*->3662*/ // 2 children in Scope
+/* 3645*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3647*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3650*/ OPC_EmitMergeInputChains1_0,
+/* 3651*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3654*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3662*/ /*Scope*/ 17, /*->3680*/
+/* 3663*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 3665*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3668*/ OPC_EmitMergeInputChains1_0,
+/* 3669*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3672*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3680*/ 0, /*End of Scope*/
+/* 3681*/ /*SwitchType*/ 17, MVT::i64,// ->3700
+/* 3683*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3685*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3688*/ OPC_EmitMergeInputChains1_0,
+/* 3689*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3692*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 10
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3700*/ 0, // EndSwitchType
+/* 3701*/ /*Scope*/ 65, /*->3767*/
+/* 3702*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 3704*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 3706*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->3747
+/* 3709*/ OPC_Scope, 17, /*->3728*/ // 2 children in Scope
+/* 3711*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3713*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3716*/ OPC_EmitMergeInputChains1_0,
+/* 3717*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3720*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 10
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3728*/ /*Scope*/ 17, /*->3746*/
+/* 3729*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 3731*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3734*/ OPC_EmitMergeInputChains1_0,
+/* 3735*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3738*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 10
+ // Dst: (LWU:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3746*/ 0, /*End of Scope*/
+/* 3747*/ /*SwitchType*/ 17, MVT::i64,// ->3766
+/* 3749*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3751*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3754*/ OPC_EmitMergeInputChains1_0,
+/* 3755*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3758*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 10
+ // Dst: (LWU:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3766*/ 0, // EndSwitchType
+/* 3767*/ /*Scope*/ 63, /*->3831*/
+/* 3768*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 3770*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->3811
+/* 3773*/ OPC_Scope, 17, /*->3792*/ // 2 children in Scope
+/* 3775*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3777*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3780*/ OPC_EmitMergeInputChains1_0,
+/* 3781*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3784*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3792*/ /*Scope*/ 17, /*->3810*/
+/* 3793*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 3795*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3798*/ OPC_EmitMergeInputChains1_0,
+/* 3799*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3802*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3810*/ 0, /*End of Scope*/
+/* 3811*/ /*SwitchType*/ 17, MVT::i64,// ->3830
+/* 3813*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 3815*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 3818*/ OPC_EmitMergeInputChains1_0,
+/* 3819*/ OPC_EmitInteger, MVT::i64, 0,
+/* 3822*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 3830*/ 0, // EndSwitchType
+/* 3831*/ /*Scope*/ 14|128,3/*398*/, /*->4231*/
+/* 3833*/ OPC_CheckChild1Type, MVT::i32,
+/* 3835*/ OPC_CheckType, MVT::i32,
+/* 3837*/ OPC_Scope, 34, /*->3873*/ // 10 children in Scope
+/* 3839*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3841*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 3843*/ OPC_Scope, 14, /*->3859*/ // 2 children in Scope
+/* 3845*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3847*/ OPC_EmitMergeInputChains1_0,
+/* 3848*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3851*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3859*/ /*Scope*/ 12, /*->3872*/
+/* 3860*/ OPC_EmitMergeInputChains1_0,
+/* 3861*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3864*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3872*/ 0, /*End of Scope*/
+/* 3873*/ /*Scope*/ 34, /*->3908*/
+/* 3874*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3876*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 3878*/ OPC_Scope, 14, /*->3894*/ // 2 children in Scope
+/* 3880*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3882*/ OPC_EmitMergeInputChains1_0,
+/* 3883*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3886*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3894*/ /*Scope*/ 12, /*->3907*/
+/* 3895*/ OPC_EmitMergeInputChains1_0,
+/* 3896*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3899*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3907*/ 0, /*End of Scope*/
+/* 3908*/ /*Scope*/ 34, /*->3943*/
+/* 3909*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 3911*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 3913*/ OPC_Scope, 14, /*->3929*/ // 2 children in Scope
+/* 3915*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3917*/ OPC_EmitMergeInputChains1_0,
+/* 3918*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3921*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3929*/ /*Scope*/ 12, /*->3942*/
+/* 3930*/ OPC_EmitMergeInputChains1_0,
+/* 3931*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3934*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3942*/ 0, /*End of Scope*/
+/* 3943*/ /*Scope*/ 34, /*->3978*/
+/* 3944*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 3946*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 3948*/ OPC_Scope, 14, /*->3964*/ // 2 children in Scope
+/* 3950*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3952*/ OPC_EmitMergeInputChains1_0,
+/* 3953*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3956*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3964*/ /*Scope*/ 12, /*->3977*/
+/* 3965*/ OPC_EmitMergeInputChains1_0,
+/* 3966*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3969*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3977*/ 0, /*End of Scope*/
+/* 3978*/ /*Scope*/ 34, /*->4013*/
+/* 3979*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 3981*/ OPC_Scope, 14, /*->3997*/ // 2 children in Scope
+/* 3983*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 3985*/ OPC_EmitMergeInputChains1_0,
+/* 3986*/ OPC_EmitInteger, MVT::i32, 0,
+/* 3989*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 3997*/ /*Scope*/ 14, /*->4012*/
+/* 3998*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 4000*/ OPC_EmitMergeInputChains1_0,
+/* 4001*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4004*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4012*/ 0, /*End of Scope*/
+/* 4013*/ /*Scope*/ 70, /*->4084*/
+/* 4014*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 4016*/ OPC_Scope, 32, /*->4050*/ // 2 children in Scope
+/* 4018*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 4020*/ OPC_Scope, 14, /*->4036*/ // 2 children in Scope
+/* 4022*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4024*/ OPC_EmitMergeInputChains1_0,
+/* 4025*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4028*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 4
+ // Dst: (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4036*/ /*Scope*/ 12, /*->4049*/
+/* 4037*/ OPC_EmitMergeInputChains1_0,
+/* 4038*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4041*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 4
+ // Dst: (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4049*/ 0, /*End of Scope*/
+/* 4050*/ /*Scope*/ 32, /*->4083*/
+/* 4051*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 4053*/ OPC_Scope, 14, /*->4069*/ // 2 children in Scope
+/* 4055*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4057*/ OPC_EmitMergeInputChains1_0,
+/* 4058*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4061*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 4
+ // Dst: (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4069*/ /*Scope*/ 12, /*->4082*/
+/* 4070*/ OPC_EmitMergeInputChains1_0,
+/* 4071*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4074*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 4
+ // Dst: (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4082*/ 0, /*End of Scope*/
+/* 4083*/ 0, /*End of Scope*/
+/* 4084*/ /*Scope*/ 36, /*->4121*/
+/* 4085*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 4087*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 4089*/ OPC_Scope, 14, /*->4105*/ // 2 children in Scope
+/* 4091*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4093*/ OPC_EmitMergeInputChains1_0,
+/* 4094*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4097*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4105*/ /*Scope*/ 14, /*->4120*/
+/* 4106*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 4108*/ OPC_EmitMergeInputChains1_0,
+/* 4109*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4112*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4120*/ 0, /*End of Scope*/
+/* 4121*/ /*Scope*/ 36, /*->4158*/
+/* 4122*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 4124*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 4126*/ OPC_Scope, 14, /*->4142*/ // 2 children in Scope
+/* 4128*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4130*/ OPC_EmitMergeInputChains1_0,
+/* 4131*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4134*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4142*/ /*Scope*/ 14, /*->4157*/
+/* 4143*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 4145*/ OPC_EmitMergeInputChains1_0,
+/* 4146*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4149*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4157*/ 0, /*End of Scope*/
+/* 4158*/ /*Scope*/ 36, /*->4195*/
+/* 4159*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 4161*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 4163*/ OPC_Scope, 14, /*->4179*/ // 2 children in Scope
+/* 4165*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4167*/ OPC_EmitMergeInputChains1_0,
+/* 4168*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4171*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 4
+ // Dst: (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4179*/ /*Scope*/ 14, /*->4194*/
+/* 4180*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 4182*/ OPC_EmitMergeInputChains1_0,
+/* 4183*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4186*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 4
+ // Dst: (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4194*/ 0, /*End of Scope*/
+/* 4195*/ /*Scope*/ 34, /*->4230*/
+/* 4196*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4198*/ OPC_Scope, 14, /*->4214*/ // 2 children in Scope
+/* 4200*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4202*/ OPC_EmitMergeInputChains1_0,
+/* 4203*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4206*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4214*/ /*Scope*/ 14, /*->4229*/
+/* 4215*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 4217*/ OPC_EmitMergeInputChains1_0,
+/* 4218*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4221*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4229*/ 0, /*End of Scope*/
+/* 4230*/ 0, /*End of Scope*/
+/* 4231*/ /*Scope*/ 84|128,1/*212*/, /*->4445*/
+/* 4233*/ OPC_CheckChild1Type, MVT::i64,
+/* 4235*/ OPC_CheckType, MVT::i64,
+/* 4237*/ OPC_Scope, 18, /*->4257*/ // 10 children in Scope
+/* 4239*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 4241*/ OPC_CheckPredicate, 5, // Predicate_sextloadi8
+/* 4243*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4245*/ OPC_EmitMergeInputChains1_0,
+/* 4246*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4249*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4257*/ /*Scope*/ 18, /*->4276*/
+/* 4258*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 4260*/ OPC_CheckPredicate, 5, // Predicate_extloadi8
+/* 4262*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4264*/ OPC_EmitMergeInputChains1_0,
+/* 4265*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4268*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> - Complexity = 4
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4276*/ /*Scope*/ 18, /*->4295*/
+/* 4277*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 4279*/ OPC_CheckPredicate, 7, // Predicate_sextloadi16
+/* 4281*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4283*/ OPC_EmitMergeInputChains1_0,
+/* 4284*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4287*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4295*/ /*Scope*/ 18, /*->4314*/
+/* 4296*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 4298*/ OPC_CheckPredicate, 7, // Predicate_extloadi16
+/* 4300*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4302*/ OPC_EmitMergeInputChains1_0,
+/* 4303*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4306*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> - Complexity = 4
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4314*/ /*Scope*/ 16, /*->4331*/
+/* 4315*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4317*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4319*/ OPC_EmitMergeInputChains1_0,
+/* 4320*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4323*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4331*/ /*Scope*/ 38, /*->4370*/
+/* 4332*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 4334*/ OPC_Scope, 16, /*->4352*/ // 2 children in Scope
+/* 4336*/ OPC_CheckPredicate, 5, // Predicate_zextloadi8
+/* 4338*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4340*/ OPC_EmitMergeInputChains1_0,
+/* 4341*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4344*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LBU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> - Complexity = 4
+ // Dst: (LBU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4352*/ /*Scope*/ 16, /*->4369*/
+/* 4353*/ OPC_CheckPredicate, 7, // Predicate_zextloadi16
+/* 4355*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4357*/ OPC_EmitMergeInputChains1_0,
+/* 4358*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4361*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LHU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> - Complexity = 4
+ // Dst: (LHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4369*/ 0, /*End of Scope*/
+/* 4370*/ /*Scope*/ 18, /*->4389*/
+/* 4371*/ OPC_CheckPredicate, 4, // Predicate_sextload
+/* 4373*/ OPC_CheckPredicate, 10, // Predicate_sextloadi32
+/* 4375*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4377*/ OPC_EmitMergeInputChains1_0,
+/* 4378*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4381*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4389*/ /*Scope*/ 18, /*->4408*/
+/* 4390*/ OPC_CheckPredicate, 6, // Predicate_extload
+/* 4392*/ OPC_CheckPredicate, 10, // Predicate_extloadi32
+/* 4394*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4396*/ OPC_EmitMergeInputChains1_0,
+/* 4397*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4400*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> - Complexity = 4
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4408*/ /*Scope*/ 18, /*->4427*/
+/* 4409*/ OPC_CheckPredicate, 9, // Predicate_zextload
+/* 4411*/ OPC_CheckPredicate, 10, // Predicate_zextloadi32
+/* 4413*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4415*/ OPC_EmitMergeInputChains1_0,
+/* 4416*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4419*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LWU), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> - Complexity = 4
+ // Dst: (LWU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4427*/ /*Scope*/ 16, /*->4444*/
+/* 4428*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4430*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4432*/ OPC_EmitMergeInputChains1_0,
+/* 4433*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4436*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4444*/ 0, /*End of Scope*/
+/* 4445*/ 0, /*End of Scope*/
+/* 4446*/ /*Scope*/ 126|128,2/*382*/, /*->4830*/
+/* 4448*/ OPC_MoveChild1,
+/* 4449*/ OPC_SwitchOpcode /*2 cases */, 15|128,1/*143*/, TARGET_VAL(ISD::OR),// ->4597
+/* 4454*/ OPC_RecordChild0, // #1 = $rs1
+/* 4455*/ OPC_RecordChild1, // #2 = $imm12
+/* 4456*/ OPC_MoveChild1,
+/* 4457*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 4460*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 4462*/ OPC_MoveParent,
+/* 4463*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 4465*/ OPC_SwitchType /*2 cases */, 83, MVT::i32,// ->4551
+/* 4468*/ OPC_MoveParent,
+/* 4469*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 4471*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4473*/ OPC_SwitchType /*2 cases */, 36, MVT::f32,// ->4512
+/* 4476*/ OPC_Scope, 16, /*->4494*/ // 2 children in Scope
+/* 4478*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4480*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4483*/ OPC_EmitMergeInputChains1_0,
+/* 4484*/ OPC_EmitConvertToTarget, 2,
+/* 4486*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4494*/ /*Scope*/ 16, /*->4511*/
+/* 4495*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 4497*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4500*/ OPC_EmitMergeInputChains1_0,
+/* 4501*/ OPC_EmitConvertToTarget, 2,
+/* 4503*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4511*/ 0, /*End of Scope*/
+/* 4512*/ /*SwitchType*/ 36, MVT::f64,// ->4550
+/* 4514*/ OPC_Scope, 16, /*->4532*/ // 2 children in Scope
+/* 4516*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4518*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4521*/ OPC_EmitMergeInputChains1_0,
+/* 4522*/ OPC_EmitConvertToTarget, 2,
+/* 4524*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4532*/ /*Scope*/ 16, /*->4549*/
+/* 4533*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 4535*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4538*/ OPC_EmitMergeInputChains1_0,
+/* 4539*/ OPC_EmitConvertToTarget, 2,
+/* 4541*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4549*/ 0, /*End of Scope*/
+/* 4550*/ 0, // EndSwitchType
+/* 4551*/ /*SwitchType*/ 43, MVT::i64,// ->4596
+/* 4553*/ OPC_MoveParent,
+/* 4554*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 4556*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4558*/ OPC_SwitchType /*2 cases */, 16, MVT::f32,// ->4577
+/* 4561*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4563*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4566*/ OPC_EmitMergeInputChains1_0,
+/* 4567*/ OPC_EmitConvertToTarget, 2,
+/* 4569*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4577*/ /*SwitchType*/ 16, MVT::f64,// ->4595
+/* 4579*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4581*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4584*/ OPC_EmitMergeInputChains1_0,
+/* 4585*/ OPC_EmitConvertToTarget, 2,
+/* 4587*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 18
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4595*/ 0, // EndSwitchType
+/* 4596*/ 0, // EndSwitchType
+/* 4597*/ /*SwitchOpcode*/ 100|128,1/*228*/, TARGET_VAL(ISD::ADD),// ->4829
+/* 4601*/ OPC_RecordChild0, // #1 = $rs1
+/* 4602*/ OPC_RecordChild1, // #2 = $imm12
+/* 4603*/ OPC_MoveChild1,
+/* 4604*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 4607*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 4609*/ OPC_MoveParent,
+/* 4610*/ OPC_SwitchType /*2 cases */, 11|128,1/*139*/, MVT::i32,// ->4753
+/* 4614*/ OPC_MoveParent,
+/* 4615*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 4617*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4619*/ OPC_SwitchType /*2 cases */, 64, MVT::f32,// ->4686
+/* 4622*/ OPC_Scope, 16, /*->4640*/ // 4 children in Scope
+/* 4624*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4626*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4629*/ OPC_EmitMergeInputChains1_0,
+/* 4630*/ OPC_EmitConvertToTarget, 2,
+/* 4632*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4640*/ /*Scope*/ 16, /*->4657*/
+/* 4641*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 4643*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4646*/ OPC_EmitMergeInputChains1_0,
+/* 4647*/ OPC_EmitConvertToTarget, 2,
+/* 4649*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4657*/ /*Scope*/ 13, /*->4671*/
+/* 4658*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4660*/ OPC_EmitMergeInputChains1_0,
+/* 4661*/ OPC_EmitConvertToTarget, 2,
+/* 4663*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4671*/ /*Scope*/ 13, /*->4685*/
+/* 4672*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 4674*/ OPC_EmitMergeInputChains1_0,
+/* 4675*/ OPC_EmitConvertToTarget, 2,
+/* 4677*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4685*/ 0, /*End of Scope*/
+/* 4686*/ /*SwitchType*/ 64, MVT::f64,// ->4752
+/* 4688*/ OPC_Scope, 16, /*->4706*/ // 4 children in Scope
+/* 4690*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4692*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4695*/ OPC_EmitMergeInputChains1_0,
+/* 4696*/ OPC_EmitConvertToTarget, 2,
+/* 4698*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4706*/ /*Scope*/ 16, /*->4723*/
+/* 4707*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 4709*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4712*/ OPC_EmitMergeInputChains1_0,
+/* 4713*/ OPC_EmitConvertToTarget, 2,
+/* 4715*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4723*/ /*Scope*/ 13, /*->4737*/
+/* 4724*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4726*/ OPC_EmitMergeInputChains1_0,
+/* 4727*/ OPC_EmitConvertToTarget, 2,
+/* 4729*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4737*/ /*Scope*/ 13, /*->4751*/
+/* 4738*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 4740*/ OPC_EmitMergeInputChains1_0,
+/* 4741*/ OPC_EmitConvertToTarget, 2,
+/* 4743*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 4751*/ 0, /*End of Scope*/
+/* 4752*/ 0, // EndSwitchType
+/* 4753*/ /*SwitchType*/ 73, MVT::i64,// ->4828
+/* 4755*/ OPC_MoveParent,
+/* 4756*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 4758*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4760*/ OPC_SwitchType /*2 cases */, 31, MVT::f32,// ->4794
+/* 4763*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4765*/ OPC_Scope, 14, /*->4781*/ // 2 children in Scope
+/* 4767*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4770*/ OPC_EmitMergeInputChains1_0,
+/* 4771*/ OPC_EmitConvertToTarget, 2,
+/* 4773*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4781*/ /*Scope*/ 11, /*->4793*/
+/* 4782*/ OPC_EmitMergeInputChains1_0,
+/* 4783*/ OPC_EmitConvertToTarget, 2,
+/* 4785*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f32] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4793*/ 0, /*End of Scope*/
+/* 4794*/ /*SwitchType*/ 31, MVT::f64,// ->4827
+/* 4796*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4798*/ OPC_Scope, 14, /*->4814*/ // 2 children in Scope
+/* 4800*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 4803*/ OPC_EmitMergeInputChains1_0,
+/* 4804*/ OPC_EmitConvertToTarget, 2,
+/* 4806*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 3, 4,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 17
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4814*/ /*Scope*/ 11, /*->4826*/
+/* 4815*/ OPC_EmitMergeInputChains1_0,
+/* 4816*/ OPC_EmitConvertToTarget, 2,
+/* 4818*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 3,
+ // Src: (ld:{ *:[f64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 11
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 4826*/ 0, /*End of Scope*/
+/* 4827*/ 0, // EndSwitchType
+/* 4828*/ 0, // EndSwitchType
+/* 4829*/ 0, // EndSwitchOpcode
+/* 4830*/ /*Scope*/ 99|128,1/*227*/, /*->5059*/
+/* 4832*/ OPC_RecordChild1, // #1 = $rs1
+/* 4833*/ OPC_CheckPredicate, 3, // Predicate_unindexedload
+/* 4835*/ OPC_CheckPredicate, 8, // Predicate_load
+/* 4837*/ OPC_SwitchType /*2 cases */, 108, MVT::f32,// ->4948
+/* 4840*/ OPC_Scope, 17, /*->4859*/ // 5 children in Scope
+/* 4842*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4844*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4847*/ OPC_EmitMergeInputChains1_0,
+/* 4848*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4851*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4859*/ /*Scope*/ 17, /*->4877*/
+/* 4860*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4862*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4865*/ OPC_EmitMergeInputChains1_0,
+/* 4866*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4869*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4877*/ /*Scope*/ 17, /*->4895*/
+/* 4878*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 4880*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4883*/ OPC_EmitMergeInputChains1_0,
+/* 4884*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4887*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLW:{ *:[f32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4895*/ /*Scope*/ 34, /*->4930*/
+/* 4896*/ OPC_CheckChild1Type, MVT::i32,
+/* 4898*/ OPC_Scope, 14, /*->4914*/ // 2 children in Scope
+/* 4900*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4902*/ OPC_EmitMergeInputChains1_0,
+/* 4903*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4906*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4914*/ /*Scope*/ 14, /*->4929*/
+/* 4915*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 4917*/ OPC_EmitMergeInputChains1_0,
+/* 4918*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4921*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4929*/ 0, /*End of Scope*/
+/* 4930*/ /*Scope*/ 16, /*->4947*/
+/* 4931*/ OPC_CheckChild1Type, MVT::i64,
+/* 4933*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4935*/ OPC_EmitMergeInputChains1_0,
+/* 4936*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4939*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f32, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f32] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLW:{ *:[f32] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4947*/ 0, /*End of Scope*/
+/* 4948*/ /*SwitchType*/ 108, MVT::f64,// ->5058
+/* 4950*/ OPC_Scope, 17, /*->4969*/ // 5 children in Scope
+/* 4952*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 4954*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4957*/ OPC_EmitMergeInputChains1_0,
+/* 4958*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4961*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 4969*/ /*Scope*/ 17, /*->4987*/
+/* 4970*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 4972*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4975*/ OPC_EmitMergeInputChains1_0,
+/* 4976*/ OPC_EmitInteger, MVT::i64, 0,
+/* 4979*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 4987*/ /*Scope*/ 17, /*->5005*/
+/* 4988*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 4990*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 4993*/ OPC_EmitMergeInputChains1_0,
+/* 4994*/ OPC_EmitInteger, MVT::i32, 0,
+/* 4997*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 2, 3,
+ // Src: (ld:{ *:[f64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 10
+ // Dst: (FLD:{ *:[f64] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5005*/ /*Scope*/ 34, /*->5040*/
+/* 5006*/ OPC_CheckChild1Type, MVT::i32,
+/* 5008*/ OPC_Scope, 14, /*->5024*/ // 2 children in Scope
+/* 5010*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5012*/ OPC_EmitMergeInputChains1_0,
+/* 5013*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5016*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f64] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5024*/ /*Scope*/ 14, /*->5039*/
+/* 5025*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 5027*/ OPC_EmitMergeInputChains1_0,
+/* 5028*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5031*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f64] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5039*/ 0, /*End of Scope*/
+/* 5040*/ /*Scope*/ 16, /*->5057*/
+/* 5041*/ OPC_CheckChild1Type, MVT::i64,
+/* 5043*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 5045*/ OPC_EmitMergeInputChains1_0,
+/* 5046*/ OPC_EmitInteger, MVT::i64, 0,
+/* 5049*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::f64, 2/*#Ops*/, 1, 2,
+ // Src: (ld:{ *:[f64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> - Complexity = 4
+ // Dst: (FLD:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 5057*/ 0, /*End of Scope*/
+/* 5058*/ 0, // EndSwitchType
+/* 5059*/ 0, /*End of Scope*/
+/* 5060*/ /*SwitchOpcode*/ 59|128,17/*2235*/, TARGET_VAL(ISD::STORE),// ->7299
+/* 5064*/ OPC_RecordMemRef,
+/* 5065*/ OPC_RecordNode, // #0 = 'st' chained node
+/* 5066*/ OPC_RecordChild1, // #1 = $rs2
+/* 5067*/ OPC_Scope, 118|128,7/*1014*/, /*->6084*/ // 4 children in Scope
+/* 5070*/ OPC_CheckChild1Type, MVT::i32,
+/* 5072*/ OPC_Scope, 97|128,4/*609*/, /*->5684*/ // 2 children in Scope
+/* 5075*/ OPC_MoveChild2,
+/* 5076*/ OPC_SwitchOpcode /*2 cases */, 88|128,1/*216*/, TARGET_VAL(ISD::OR),// ->5297
+/* 5081*/ OPC_RecordChild0, // #2 = $rs1
+/* 5082*/ OPC_RecordChild1, // #3 = $imm12
+/* 5083*/ OPC_MoveChild1,
+/* 5084*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 5087*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 5089*/ OPC_MoveParent,
+/* 5090*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 5092*/ OPC_CheckType, MVT::i32,
+/* 5094*/ OPC_MoveParent,
+/* 5095*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 5097*/ OPC_Scope, 78, /*->5177*/ // 4 children in Scope
+/* 5099*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5101*/ OPC_Scope, 36, /*->5139*/ // 2 children in Scope
+/* 5103*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 5105*/ OPC_Scope, 16, /*->5123*/ // 2 children in Scope
+/* 5107*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5109*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5112*/ OPC_EmitMergeInputChains1_0,
+/* 5113*/ OPC_EmitConvertToTarget, 3,
+/* 5115*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5123*/ /*Scope*/ 14, /*->5138*/
+/* 5124*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5127*/ OPC_EmitMergeInputChains1_0,
+/* 5128*/ OPC_EmitConvertToTarget, 3,
+/* 5130*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5138*/ 0, /*End of Scope*/
+/* 5139*/ /*Scope*/ 36, /*->5176*/
+/* 5140*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 5142*/ OPC_Scope, 16, /*->5160*/ // 2 children in Scope
+/* 5144*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5146*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5149*/ OPC_EmitMergeInputChains1_0,
+/* 5150*/ OPC_EmitConvertToTarget, 3,
+/* 5152*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5160*/ /*Scope*/ 14, /*->5175*/
+/* 5161*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5164*/ OPC_EmitMergeInputChains1_0,
+/* 5165*/ OPC_EmitConvertToTarget, 3,
+/* 5167*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5175*/ 0, /*End of Scope*/
+/* 5176*/ 0, /*End of Scope*/
+/* 5177*/ /*Scope*/ 38, /*->5216*/
+/* 5178*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5180*/ OPC_Scope, 16, /*->5198*/ // 2 children in Scope
+/* 5182*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5184*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5187*/ OPC_EmitMergeInputChains1_0,
+/* 5188*/ OPC_EmitConvertToTarget, 3,
+/* 5190*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5198*/ /*Scope*/ 16, /*->5215*/
+/* 5199*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 5201*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5204*/ OPC_EmitMergeInputChains1_0,
+/* 5205*/ OPC_EmitConvertToTarget, 3,
+/* 5207*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5215*/ 0, /*End of Scope*/
+/* 5216*/ /*Scope*/ 40, /*->5257*/
+/* 5217*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5219*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 5221*/ OPC_Scope, 16, /*->5239*/ // 2 children in Scope
+/* 5223*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5225*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5228*/ OPC_EmitMergeInputChains1_0,
+/* 5229*/ OPC_EmitConvertToTarget, 3,
+/* 5231*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5239*/ /*Scope*/ 16, /*->5256*/
+/* 5240*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5242*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5245*/ OPC_EmitMergeInputChains1_0,
+/* 5246*/ OPC_EmitConvertToTarget, 3,
+/* 5248*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5256*/ 0, /*End of Scope*/
+/* 5257*/ /*Scope*/ 38, /*->5296*/
+/* 5258*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5260*/ OPC_Scope, 16, /*->5278*/ // 2 children in Scope
+/* 5262*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5264*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5267*/ OPC_EmitMergeInputChains1_0,
+/* 5268*/ OPC_EmitConvertToTarget, 3,
+/* 5270*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5278*/ /*Scope*/ 16, /*->5295*/
+/* 5279*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5281*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5284*/ OPC_EmitMergeInputChains1_0,
+/* 5285*/ OPC_EmitConvertToTarget, 3,
+/* 5287*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5295*/ 0, /*End of Scope*/
+/* 5296*/ 0, /*End of Scope*/
+/* 5297*/ /*SwitchOpcode*/ 126|128,2/*382*/, TARGET_VAL(ISD::ADD),// ->5683
+/* 5301*/ OPC_RecordChild0, // #2 = $rs1
+/* 5302*/ OPC_RecordChild1, // #3 = $imm12
+/* 5303*/ OPC_MoveChild1,
+/* 5304*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 5307*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 5309*/ OPC_MoveParent,
+/* 5310*/ OPC_CheckType, MVT::i32,
+/* 5312*/ OPC_MoveParent,
+/* 5313*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 5315*/ OPC_Scope, 78, /*->5395*/ // 8 children in Scope
+/* 5317*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5319*/ OPC_Scope, 36, /*->5357*/ // 2 children in Scope
+/* 5321*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 5323*/ OPC_Scope, 16, /*->5341*/ // 2 children in Scope
+/* 5325*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5327*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5330*/ OPC_EmitMergeInputChains1_0,
+/* 5331*/ OPC_EmitConvertToTarget, 3,
+/* 5333*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5341*/ /*Scope*/ 14, /*->5356*/
+/* 5342*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5345*/ OPC_EmitMergeInputChains1_0,
+/* 5346*/ OPC_EmitConvertToTarget, 3,
+/* 5348*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5356*/ 0, /*End of Scope*/
+/* 5357*/ /*Scope*/ 36, /*->5394*/
+/* 5358*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 5360*/ OPC_Scope, 16, /*->5378*/ // 2 children in Scope
+/* 5362*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5364*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5367*/ OPC_EmitMergeInputChains1_0,
+/* 5368*/ OPC_EmitConvertToTarget, 3,
+/* 5370*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5378*/ /*Scope*/ 14, /*->5393*/
+/* 5379*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5382*/ OPC_EmitMergeInputChains1_0,
+/* 5383*/ OPC_EmitConvertToTarget, 3,
+/* 5385*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5393*/ 0, /*End of Scope*/
+/* 5394*/ 0, /*End of Scope*/
+/* 5395*/ /*Scope*/ 38, /*->5434*/
+/* 5396*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5398*/ OPC_Scope, 16, /*->5416*/ // 2 children in Scope
+/* 5400*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5402*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5405*/ OPC_EmitMergeInputChains1_0,
+/* 5406*/ OPC_EmitConvertToTarget, 3,
+/* 5408*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5416*/ /*Scope*/ 16, /*->5433*/
+/* 5417*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 5419*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5422*/ OPC_EmitMergeInputChains1_0,
+/* 5423*/ OPC_EmitConvertToTarget, 3,
+/* 5425*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5433*/ 0, /*End of Scope*/
+/* 5434*/ /*Scope*/ 40, /*->5475*/
+/* 5435*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5437*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 5439*/ OPC_Scope, 16, /*->5457*/ // 2 children in Scope
+/* 5441*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5443*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5446*/ OPC_EmitMergeInputChains1_0,
+/* 5447*/ OPC_EmitConvertToTarget, 3,
+/* 5449*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5457*/ /*Scope*/ 16, /*->5474*/
+/* 5458*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5460*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5463*/ OPC_EmitMergeInputChains1_0,
+/* 5464*/ OPC_EmitConvertToTarget, 3,
+/* 5466*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5474*/ 0, /*End of Scope*/
+/* 5475*/ /*Scope*/ 38, /*->5514*/
+/* 5476*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5478*/ OPC_Scope, 16, /*->5496*/ // 2 children in Scope
+/* 5480*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5482*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5485*/ OPC_EmitMergeInputChains1_0,
+/* 5486*/ OPC_EmitConvertToTarget, 3,
+/* 5488*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5496*/ /*Scope*/ 16, /*->5513*/
+/* 5497*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5499*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 5502*/ OPC_EmitMergeInputChains1_0,
+/* 5503*/ OPC_EmitConvertToTarget, 3,
+/* 5505*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5513*/ 0, /*End of Scope*/
+/* 5514*/ /*Scope*/ 66, /*->5581*/
+/* 5515*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5517*/ OPC_Scope, 30, /*->5549*/ // 2 children in Scope
+/* 5519*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 5521*/ OPC_Scope, 13, /*->5536*/ // 2 children in Scope
+/* 5523*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5525*/ OPC_EmitMergeInputChains1_0,
+/* 5526*/ OPC_EmitConvertToTarget, 3,
+/* 5528*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5536*/ /*Scope*/ 11, /*->5548*/
+/* 5537*/ OPC_EmitMergeInputChains1_0,
+/* 5538*/ OPC_EmitConvertToTarget, 3,
+/* 5540*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5548*/ 0, /*End of Scope*/
+/* 5549*/ /*Scope*/ 30, /*->5580*/
+/* 5550*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 5552*/ OPC_Scope, 13, /*->5567*/ // 2 children in Scope
+/* 5554*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5556*/ OPC_EmitMergeInputChains1_0,
+/* 5557*/ OPC_EmitConvertToTarget, 3,
+/* 5559*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5567*/ /*Scope*/ 11, /*->5579*/
+/* 5568*/ OPC_EmitMergeInputChains1_0,
+/* 5569*/ OPC_EmitConvertToTarget, 3,
+/* 5571*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5579*/ 0, /*End of Scope*/
+/* 5580*/ 0, /*End of Scope*/
+/* 5581*/ /*Scope*/ 32, /*->5614*/
+/* 5582*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5584*/ OPC_Scope, 13, /*->5599*/ // 2 children in Scope
+/* 5586*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5588*/ OPC_EmitMergeInputChains1_0,
+/* 5589*/ OPC_EmitConvertToTarget, 3,
+/* 5591*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5599*/ /*Scope*/ 13, /*->5613*/
+/* 5600*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 5602*/ OPC_EmitMergeInputChains1_0,
+/* 5603*/ OPC_EmitConvertToTarget, 3,
+/* 5605*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5613*/ 0, /*End of Scope*/
+/* 5614*/ /*Scope*/ 34, /*->5649*/
+/* 5615*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5617*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 5619*/ OPC_Scope, 13, /*->5634*/ // 2 children in Scope
+/* 5621*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5623*/ OPC_EmitMergeInputChains1_0,
+/* 5624*/ OPC_EmitConvertToTarget, 3,
+/* 5626*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5634*/ /*Scope*/ 13, /*->5648*/
+/* 5635*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5637*/ OPC_EmitMergeInputChains1_0,
+/* 5638*/ OPC_EmitConvertToTarget, 3,
+/* 5640*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5648*/ 0, /*End of Scope*/
+/* 5649*/ /*Scope*/ 32, /*->5682*/
+/* 5650*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5652*/ OPC_Scope, 13, /*->5667*/ // 2 children in Scope
+/* 5654*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5656*/ OPC_EmitMergeInputChains1_0,
+/* 5657*/ OPC_EmitConvertToTarget, 3,
+/* 5659*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5667*/ /*Scope*/ 13, /*->5681*/
+/* 5668*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5670*/ OPC_EmitMergeInputChains1_0,
+/* 5671*/ OPC_EmitConvertToTarget, 3,
+/* 5673*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 5681*/ 0, /*End of Scope*/
+/* 5682*/ 0, /*End of Scope*/
+/* 5683*/ 0, // EndSwitchOpcode
+/* 5684*/ /*Scope*/ 13|128,3/*397*/, /*->6083*/
+/* 5686*/ OPC_RecordChild2, // #2 = $rs1
+/* 5687*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 5689*/ OPC_Scope, 82, /*->5773*/ // 5 children in Scope
+/* 5691*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5693*/ OPC_Scope, 38, /*->5733*/ // 2 children in Scope
+/* 5695*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 5697*/ OPC_Scope, 17, /*->5716*/ // 2 children in Scope
+/* 5699*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5701*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5704*/ OPC_EmitMergeInputChains1_0,
+/* 5705*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5708*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5716*/ /*Scope*/ 15, /*->5732*/
+/* 5717*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5720*/ OPC_EmitMergeInputChains1_0,
+/* 5721*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5724*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5732*/ 0, /*End of Scope*/
+/* 5733*/ /*Scope*/ 38, /*->5772*/
+/* 5734*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 5736*/ OPC_Scope, 17, /*->5755*/ // 2 children in Scope
+/* 5738*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5740*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5743*/ OPC_EmitMergeInputChains1_0,
+/* 5744*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5747*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5755*/ /*Scope*/ 15, /*->5771*/
+/* 5756*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5759*/ OPC_EmitMergeInputChains1_0,
+/* 5760*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5763*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5771*/ 0, /*End of Scope*/
+/* 5772*/ 0, /*End of Scope*/
+/* 5773*/ /*Scope*/ 40, /*->5814*/
+/* 5774*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5776*/ OPC_Scope, 17, /*->5795*/ // 2 children in Scope
+/* 5778*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5780*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5783*/ OPC_EmitMergeInputChains1_0,
+/* 5784*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5787*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5795*/ /*Scope*/ 17, /*->5813*/
+/* 5796*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 5798*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5801*/ OPC_EmitMergeInputChains1_0,
+/* 5802*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5805*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5813*/ 0, /*End of Scope*/
+/* 5814*/ /*Scope*/ 42, /*->5857*/
+/* 5815*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5817*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 5819*/ OPC_Scope, 17, /*->5838*/ // 2 children in Scope
+/* 5821*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5823*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5826*/ OPC_EmitMergeInputChains1_0,
+/* 5827*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5830*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5838*/ /*Scope*/ 17, /*->5856*/
+/* 5839*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5841*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5844*/ OPC_EmitMergeInputChains1_0,
+/* 5845*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5848*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5856*/ 0, /*End of Scope*/
+/* 5857*/ /*Scope*/ 40, /*->5898*/
+/* 5858*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5860*/ OPC_Scope, 17, /*->5879*/ // 2 children in Scope
+/* 5862*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5864*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5867*/ OPC_EmitMergeInputChains1_0,
+/* 5868*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5871*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5879*/ /*Scope*/ 17, /*->5897*/
+/* 5880*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 5882*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 5885*/ OPC_EmitMergeInputChains1_0,
+/* 5886*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5889*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5897*/ 0, /*End of Scope*/
+/* 5898*/ /*Scope*/ 54|128,1/*182*/, /*->6082*/
+/* 5900*/ OPC_CheckChild2Type, MVT::i32,
+/* 5902*/ OPC_Scope, 70, /*->5974*/ // 4 children in Scope
+/* 5904*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 5906*/ OPC_Scope, 32, /*->5940*/ // 2 children in Scope
+/* 5908*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 5910*/ OPC_Scope, 14, /*->5926*/ // 2 children in Scope
+/* 5912*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5914*/ OPC_EmitMergeInputChains1_0,
+/* 5915*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5918*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5926*/ /*Scope*/ 12, /*->5939*/
+/* 5927*/ OPC_EmitMergeInputChains1_0,
+/* 5928*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5931*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5939*/ 0, /*End of Scope*/
+/* 5940*/ /*Scope*/ 32, /*->5973*/
+/* 5941*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 5943*/ OPC_Scope, 14, /*->5959*/ // 2 children in Scope
+/* 5945*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5947*/ OPC_EmitMergeInputChains1_0,
+/* 5948*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5951*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5959*/ /*Scope*/ 12, /*->5972*/
+/* 5960*/ OPC_EmitMergeInputChains1_0,
+/* 5961*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5964*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5972*/ 0, /*End of Scope*/
+/* 5973*/ 0, /*End of Scope*/
+/* 5974*/ /*Scope*/ 34, /*->6009*/
+/* 5975*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 5977*/ OPC_Scope, 14, /*->5993*/ // 2 children in Scope
+/* 5979*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 5981*/ OPC_EmitMergeInputChains1_0,
+/* 5982*/ OPC_EmitInteger, MVT::i32, 0,
+/* 5985*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 5993*/ /*Scope*/ 14, /*->6008*/
+/* 5994*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 5996*/ OPC_EmitMergeInputChains1_0,
+/* 5997*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6000*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6008*/ 0, /*End of Scope*/
+/* 6009*/ /*Scope*/ 36, /*->6046*/
+/* 6010*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6012*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6014*/ OPC_Scope, 14, /*->6030*/ // 2 children in Scope
+/* 6016*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6018*/ OPC_EmitMergeInputChains1_0,
+/* 6019*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6022*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6030*/ /*Scope*/ 14, /*->6045*/
+/* 6031*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 6033*/ OPC_EmitMergeInputChains1_0,
+/* 6034*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6037*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6045*/ 0, /*End of Scope*/
+/* 6046*/ /*Scope*/ 34, /*->6081*/
+/* 6047*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6049*/ OPC_Scope, 14, /*->6065*/ // 2 children in Scope
+/* 6051*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6053*/ OPC_EmitMergeInputChains1_0,
+/* 6054*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6057*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6065*/ /*Scope*/ 14, /*->6080*/
+/* 6066*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 6068*/ OPC_EmitMergeInputChains1_0,
+/* 6069*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6072*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6080*/ 0, /*End of Scope*/
+/* 6081*/ 0, /*End of Scope*/
+/* 6082*/ 0, /*End of Scope*/
+/* 6083*/ 0, /*End of Scope*/
+/* 6084*/ /*Scope*/ 40|128,4/*552*/, /*->6638*/
+/* 6086*/ OPC_CheckChild1Type, MVT::i64,
+/* 6088*/ OPC_Scope, 79|128,2/*335*/, /*->6426*/ // 2 children in Scope
+/* 6091*/ OPC_MoveChild2,
+/* 6092*/ OPC_SwitchOpcode /*2 cases */, 120, TARGET_VAL(ISD::OR),// ->6216
+/* 6096*/ OPC_RecordChild0, // #2 = $rs1
+/* 6097*/ OPC_RecordChild1, // #3 = $imm12
+/* 6098*/ OPC_MoveChild1,
+/* 6099*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 6102*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 6104*/ OPC_MoveParent,
+/* 6105*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 6107*/ OPC_CheckType, MVT::i64,
+/* 6109*/ OPC_MoveParent,
+/* 6110*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6112*/ OPC_Scope, 42, /*->6156*/ // 4 children in Scope
+/* 6114*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6116*/ OPC_Scope, 18, /*->6136*/ // 2 children in Scope
+/* 6118*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 6120*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6122*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6125*/ OPC_EmitMergeInputChains1_0,
+/* 6126*/ OPC_EmitConvertToTarget, 3,
+/* 6128*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6136*/ /*Scope*/ 18, /*->6155*/
+/* 6137*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 6139*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6141*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6144*/ OPC_EmitMergeInputChains1_0,
+/* 6145*/ OPC_EmitConvertToTarget, 3,
+/* 6147*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6155*/ 0, /*End of Scope*/
+/* 6156*/ /*Scope*/ 18, /*->6175*/
+/* 6157*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6159*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6161*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6164*/ OPC_EmitMergeInputChains1_0,
+/* 6165*/ OPC_EmitConvertToTarget, 3,
+/* 6167*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6175*/ /*Scope*/ 20, /*->6196*/
+/* 6176*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6178*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6180*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6182*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6185*/ OPC_EmitMergeInputChains1_0,
+/* 6186*/ OPC_EmitConvertToTarget, 3,
+/* 6188*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6196*/ /*Scope*/ 18, /*->6215*/
+/* 6197*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6199*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6201*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6204*/ OPC_EmitMergeInputChains1_0,
+/* 6205*/ OPC_EmitConvertToTarget, 3,
+/* 6207*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6215*/ 0, /*End of Scope*/
+/* 6216*/ /*SwitchOpcode*/ 77|128,1/*205*/, TARGET_VAL(ISD::ADD),// ->6425
+/* 6220*/ OPC_RecordChild0, // #2 = $rs1
+/* 6221*/ OPC_RecordChild1, // #3 = $imm12
+/* 6222*/ OPC_MoveChild1,
+/* 6223*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 6226*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 6228*/ OPC_MoveParent,
+/* 6229*/ OPC_CheckType, MVT::i64,
+/* 6231*/ OPC_MoveParent,
+/* 6232*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6234*/ OPC_Scope, 42, /*->6278*/ // 8 children in Scope
+/* 6236*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6238*/ OPC_Scope, 18, /*->6258*/ // 2 children in Scope
+/* 6240*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 6242*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6244*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6247*/ OPC_EmitMergeInputChains1_0,
+/* 6248*/ OPC_EmitConvertToTarget, 3,
+/* 6250*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6258*/ /*Scope*/ 18, /*->6277*/
+/* 6259*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 6261*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6263*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6266*/ OPC_EmitMergeInputChains1_0,
+/* 6267*/ OPC_EmitConvertToTarget, 3,
+/* 6269*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6277*/ 0, /*End of Scope*/
+/* 6278*/ /*Scope*/ 18, /*->6297*/
+/* 6279*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6281*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6283*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6286*/ OPC_EmitMergeInputChains1_0,
+/* 6287*/ OPC_EmitConvertToTarget, 3,
+/* 6289*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6297*/ /*Scope*/ 20, /*->6318*/
+/* 6298*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6300*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6302*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6304*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6307*/ OPC_EmitMergeInputChains1_0,
+/* 6308*/ OPC_EmitConvertToTarget, 3,
+/* 6310*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6318*/ /*Scope*/ 18, /*->6337*/
+/* 6319*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6321*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 6323*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6326*/ OPC_EmitMergeInputChains1_0,
+/* 6327*/ OPC_EmitConvertToTarget, 3,
+/* 6329*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6337*/ /*Scope*/ 36, /*->6374*/
+/* 6338*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6340*/ OPC_Scope, 15, /*->6357*/ // 2 children in Scope
+/* 6342*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 6344*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6346*/ OPC_EmitMergeInputChains1_0,
+/* 6347*/ OPC_EmitConvertToTarget, 3,
+/* 6349*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6357*/ /*Scope*/ 15, /*->6373*/
+/* 6358*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 6360*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6362*/ OPC_EmitMergeInputChains1_0,
+/* 6363*/ OPC_EmitConvertToTarget, 3,
+/* 6365*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6373*/ 0, /*End of Scope*/
+/* 6374*/ /*Scope*/ 15, /*->6390*/
+/* 6375*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6377*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6379*/ OPC_EmitMergeInputChains1_0,
+/* 6380*/ OPC_EmitConvertToTarget, 3,
+/* 6382*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6390*/ /*Scope*/ 17, /*->6408*/
+/* 6391*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6393*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6395*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6397*/ OPC_EmitMergeInputChains1_0,
+/* 6398*/ OPC_EmitConvertToTarget, 3,
+/* 6400*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6408*/ /*Scope*/ 15, /*->6424*/
+/* 6409*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6411*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6413*/ OPC_EmitMergeInputChains1_0,
+/* 6414*/ OPC_EmitConvertToTarget, 3,
+/* 6416*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6424*/ 0, /*End of Scope*/
+/* 6425*/ 0, // EndSwitchOpcode
+/* 6426*/ /*Scope*/ 81|128,1/*209*/, /*->6637*/
+/* 6428*/ OPC_RecordChild2, // #2 = $rs1
+/* 6429*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6431*/ OPC_Scope, 44, /*->6477*/ // 5 children in Scope
+/* 6433*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6435*/ OPC_Scope, 19, /*->6456*/ // 2 children in Scope
+/* 6437*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 6439*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6441*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6444*/ OPC_EmitMergeInputChains1_0,
+/* 6445*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6448*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6456*/ /*Scope*/ 19, /*->6476*/
+/* 6457*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 6459*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6461*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6464*/ OPC_EmitMergeInputChains1_0,
+/* 6465*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6468*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6476*/ 0, /*End of Scope*/
+/* 6477*/ /*Scope*/ 19, /*->6497*/
+/* 6478*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6480*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6482*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6485*/ OPC_EmitMergeInputChains1_0,
+/* 6486*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6489*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6497*/ /*Scope*/ 21, /*->6519*/
+/* 6498*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6500*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6502*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6504*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6507*/ OPC_EmitMergeInputChains1_0,
+/* 6508*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6511*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6519*/ /*Scope*/ 19, /*->6539*/
+/* 6520*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6522*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6524*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6527*/ OPC_EmitMergeInputChains1_0,
+/* 6528*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6531*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6539*/ /*Scope*/ 96, /*->6636*/
+/* 6540*/ OPC_CheckChild2Type, MVT::i64,
+/* 6542*/ OPC_Scope, 38, /*->6582*/ // 4 children in Scope
+/* 6544*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6546*/ OPC_Scope, 16, /*->6564*/ // 2 children in Scope
+/* 6548*/ OPC_CheckPredicate, 5, // Predicate_truncstorei8
+/* 6550*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6552*/ OPC_EmitMergeInputChains1_0,
+/* 6553*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6556*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6564*/ /*Scope*/ 16, /*->6581*/
+/* 6565*/ OPC_CheckPredicate, 7, // Predicate_truncstorei16
+/* 6567*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6569*/ OPC_EmitMergeInputChains1_0,
+/* 6570*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6573*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6581*/ 0, /*End of Scope*/
+/* 6582*/ /*Scope*/ 16, /*->6599*/
+/* 6583*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6585*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6587*/ OPC_EmitMergeInputChains1_0,
+/* 6588*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6591*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6599*/ /*Scope*/ 18, /*->6618*/
+/* 6600*/ OPC_CheckPredicate, 12, // Predicate_truncstore
+/* 6602*/ OPC_CheckPredicate, 10, // Predicate_truncstorei32
+/* 6604*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6606*/ OPC_EmitMergeInputChains1_0,
+/* 6607*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6610*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_truncstore>><<P:Predicate_truncstorei32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6618*/ /*Scope*/ 16, /*->6635*/
+/* 6619*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6621*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6623*/ OPC_EmitMergeInputChains1_0,
+/* 6624*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6627*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6635*/ 0, /*End of Scope*/
+/* 6636*/ 0, /*End of Scope*/
+/* 6637*/ 0, /*End of Scope*/
+/* 6638*/ /*Scope*/ 72|128,2/*328*/, /*->6968*/
+/* 6640*/ OPC_CheckChild1Type, MVT::f32,
+/* 6642*/ OPC_Scope, 80|128,1/*208*/, /*->6853*/ // 2 children in Scope
+/* 6645*/ OPC_MoveChild2,
+/* 6646*/ OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::OR),// ->6729
+/* 6650*/ OPC_RecordChild0, // #2 = $rs1
+/* 6651*/ OPC_RecordChild1, // #3 = $imm12
+/* 6652*/ OPC_MoveChild1,
+/* 6653*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 6656*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 6658*/ OPC_MoveParent,
+/* 6659*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 6661*/ OPC_SwitchType /*2 cases */, 41, MVT::i32,// ->6705
+/* 6664*/ OPC_MoveParent,
+/* 6665*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6667*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6669*/ OPC_Scope, 16, /*->6687*/ // 2 children in Scope
+/* 6671*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6673*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6676*/ OPC_EmitMergeInputChains1_0,
+/* 6677*/ OPC_EmitConvertToTarget, 3,
+/* 6679*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6687*/ /*Scope*/ 16, /*->6704*/
+/* 6688*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 6690*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6693*/ OPC_EmitMergeInputChains1_0,
+/* 6694*/ OPC_EmitConvertToTarget, 3,
+/* 6696*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6704*/ 0, /*End of Scope*/
+/* 6705*/ /*SwitchType*/ 21, MVT::i64,// ->6728
+/* 6707*/ OPC_MoveParent,
+/* 6708*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6710*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6712*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6714*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6717*/ OPC_EmitMergeInputChains1_0,
+/* 6718*/ OPC_EmitConvertToTarget, 3,
+/* 6720*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6728*/ 0, // EndSwitchType
+/* 6729*/ /*SwitchOpcode*/ 120, TARGET_VAL(ISD::ADD),// ->6852
+/* 6732*/ OPC_RecordChild0, // #2 = $rs1
+/* 6733*/ OPC_RecordChild1, // #3 = $imm12
+/* 6734*/ OPC_MoveChild1,
+/* 6735*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 6738*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 6740*/ OPC_MoveParent,
+/* 6741*/ OPC_SwitchType /*2 cases */, 69, MVT::i32,// ->6813
+/* 6744*/ OPC_MoveParent,
+/* 6745*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6747*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6749*/ OPC_Scope, 16, /*->6767*/ // 4 children in Scope
+/* 6751*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6753*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6756*/ OPC_EmitMergeInputChains1_0,
+/* 6757*/ OPC_EmitConvertToTarget, 3,
+/* 6759*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6767*/ /*Scope*/ 16, /*->6784*/
+/* 6768*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 6770*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6773*/ OPC_EmitMergeInputChains1_0,
+/* 6774*/ OPC_EmitConvertToTarget, 3,
+/* 6776*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6784*/ /*Scope*/ 13, /*->6798*/
+/* 6785*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6787*/ OPC_EmitMergeInputChains1_0,
+/* 6788*/ OPC_EmitConvertToTarget, 3,
+/* 6790*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6798*/ /*Scope*/ 13, /*->6812*/
+/* 6799*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 6801*/ OPC_EmitMergeInputChains1_0,
+/* 6802*/ OPC_EmitConvertToTarget, 3,
+/* 6804*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 6812*/ 0, /*End of Scope*/
+/* 6813*/ /*SwitchType*/ 36, MVT::i64,// ->6851
+/* 6815*/ OPC_MoveParent,
+/* 6816*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6818*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6820*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 6822*/ OPC_Scope, 14, /*->6838*/ // 2 children in Scope
+/* 6824*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 6827*/ OPC_EmitMergeInputChains1_0,
+/* 6828*/ OPC_EmitConvertToTarget, 3,
+/* 6830*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6838*/ /*Scope*/ 11, /*->6850*/
+/* 6839*/ OPC_EmitMergeInputChains1_0,
+/* 6840*/ OPC_EmitConvertToTarget, 3,
+/* 6842*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 6850*/ 0, /*End of Scope*/
+/* 6851*/ 0, // EndSwitchType
+/* 6852*/ 0, // EndSwitchOpcode
+/* 6853*/ /*Scope*/ 113, /*->6967*/
+/* 6854*/ OPC_RecordChild2, // #2 = $rs1
+/* 6855*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6857*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6859*/ OPC_Scope, 17, /*->6878*/ // 5 children in Scope
+/* 6861*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6863*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6866*/ OPC_EmitMergeInputChains1_0,
+/* 6867*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6870*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6878*/ /*Scope*/ 17, /*->6896*/
+/* 6879*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6881*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6884*/ OPC_EmitMergeInputChains1_0,
+/* 6885*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6888*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6896*/ /*Scope*/ 17, /*->6914*/
+/* 6897*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 6899*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 6902*/ OPC_EmitMergeInputChains1_0,
+/* 6903*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6906*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6914*/ /*Scope*/ 34, /*->6949*/
+/* 6915*/ OPC_CheckChild2Type, MVT::i32,
+/* 6917*/ OPC_Scope, 14, /*->6933*/ // 2 children in Scope
+/* 6919*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 6921*/ OPC_EmitMergeInputChains1_0,
+/* 6922*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6925*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6933*/ /*Scope*/ 14, /*->6948*/
+/* 6934*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 6936*/ OPC_EmitMergeInputChains1_0,
+/* 6937*/ OPC_EmitInteger, MVT::i32, 0,
+/* 6940*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 6948*/ 0, /*End of Scope*/
+/* 6949*/ /*Scope*/ 16, /*->6966*/
+/* 6950*/ OPC_CheckChild2Type, MVT::i64,
+/* 6952*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 6954*/ OPC_EmitMergeInputChains1_0,
+/* 6955*/ OPC_EmitInteger, MVT::i64, 0,
+/* 6958*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 6966*/ 0, /*End of Scope*/
+/* 6967*/ 0, /*End of Scope*/
+/* 6968*/ /*Scope*/ 72|128,2/*328*/, /*->7298*/
+/* 6970*/ OPC_CheckChild1Type, MVT::f64,
+/* 6972*/ OPC_Scope, 80|128,1/*208*/, /*->7183*/ // 2 children in Scope
+/* 6975*/ OPC_MoveChild2,
+/* 6976*/ OPC_SwitchOpcode /*2 cases */, 79, TARGET_VAL(ISD::OR),// ->7059
+/* 6980*/ OPC_RecordChild0, // #2 = $rs1
+/* 6981*/ OPC_RecordChild1, // #3 = $imm12
+/* 6982*/ OPC_MoveChild1,
+/* 6983*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 6986*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 6988*/ OPC_MoveParent,
+/* 6989*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 6991*/ OPC_SwitchType /*2 cases */, 41, MVT::i32,// ->7035
+/* 6994*/ OPC_MoveParent,
+/* 6995*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 6997*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 6999*/ OPC_Scope, 16, /*->7017*/ // 2 children in Scope
+/* 7001*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7003*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7006*/ OPC_EmitMergeInputChains1_0,
+/* 7007*/ OPC_EmitConvertToTarget, 3,
+/* 7009*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7017*/ /*Scope*/ 16, /*->7034*/
+/* 7018*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 7020*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7023*/ OPC_EmitMergeInputChains1_0,
+/* 7024*/ OPC_EmitConvertToTarget, 3,
+/* 7026*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7034*/ 0, /*End of Scope*/
+/* 7035*/ /*SwitchType*/ 21, MVT::i64,// ->7058
+/* 7037*/ OPC_MoveParent,
+/* 7038*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 7040*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 7042*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7044*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7047*/ OPC_EmitMergeInputChains1_0,
+/* 7048*/ OPC_EmitConvertToTarget, 3,
+/* 7050*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 18
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7058*/ 0, // EndSwitchType
+/* 7059*/ /*SwitchOpcode*/ 120, TARGET_VAL(ISD::ADD),// ->7182
+/* 7062*/ OPC_RecordChild0, // #2 = $rs1
+/* 7063*/ OPC_RecordChild1, // #3 = $imm12
+/* 7064*/ OPC_MoveChild1,
+/* 7065*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 7068*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 7070*/ OPC_MoveParent,
+/* 7071*/ OPC_SwitchType /*2 cases */, 69, MVT::i32,// ->7143
+/* 7074*/ OPC_MoveParent,
+/* 7075*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 7077*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 7079*/ OPC_Scope, 16, /*->7097*/ // 4 children in Scope
+/* 7081*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7083*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7086*/ OPC_EmitMergeInputChains1_0,
+/* 7087*/ OPC_EmitConvertToTarget, 3,
+/* 7089*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7097*/ /*Scope*/ 16, /*->7114*/
+/* 7098*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 7100*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7103*/ OPC_EmitMergeInputChains1_0,
+/* 7104*/ OPC_EmitConvertToTarget, 3,
+/* 7106*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7114*/ /*Scope*/ 13, /*->7128*/
+/* 7115*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7117*/ OPC_EmitMergeInputChains1_0,
+/* 7118*/ OPC_EmitConvertToTarget, 3,
+/* 7120*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7128*/ /*Scope*/ 13, /*->7142*/
+/* 7129*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 7131*/ OPC_EmitMergeInputChains1_0,
+/* 7132*/ OPC_EmitConvertToTarget, 3,
+/* 7134*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7142*/ 0, /*End of Scope*/
+/* 7143*/ /*SwitchType*/ 36, MVT::i64,// ->7181
+/* 7145*/ OPC_MoveParent,
+/* 7146*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 7148*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 7150*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7152*/ OPC_Scope, 14, /*->7168*/ // 2 children in Scope
+/* 7154*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #4
+/* 7157*/ OPC_EmitMergeInputChains1_0,
+/* 7158*/ OPC_EmitConvertToTarget, 3,
+/* 7160*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 4, 5,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 17
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7168*/ /*Scope*/ 11, /*->7180*/
+/* 7169*/ OPC_EmitMergeInputChains1_0,
+/* 7170*/ OPC_EmitConvertToTarget, 3,
+/* 7172*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 11
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7180*/ 0, /*End of Scope*/
+/* 7181*/ 0, // EndSwitchType
+/* 7182*/ 0, // EndSwitchOpcode
+/* 7183*/ /*Scope*/ 113, /*->7297*/
+/* 7184*/ OPC_RecordChild2, // #2 = $rs1
+/* 7185*/ OPC_CheckPredicate, 11, // Predicate_unindexedstore
+/* 7187*/ OPC_CheckPredicate, 13, // Predicate_store
+/* 7189*/ OPC_Scope, 17, /*->7208*/ // 5 children in Scope
+/* 7191*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7193*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 7196*/ OPC_EmitMergeInputChains1_0,
+/* 7197*/ OPC_EmitInteger, MVT::i32, 0,
+/* 7200*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 7208*/ /*Scope*/ 17, /*->7226*/
+/* 7209*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7211*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 7214*/ OPC_EmitMergeInputChains1_0,
+/* 7215*/ OPC_EmitInteger, MVT::i64, 0,
+/* 7218*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 7226*/ /*Scope*/ 17, /*->7244*/
+/* 7227*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 7229*/ OPC_CheckComplexPat, /*CP*/0, /*#*/2, // SelectAddrFI:$rs1 #3
+/* 7232*/ OPC_EmitMergeInputChains1_0,
+/* 7233*/ OPC_EmitInteger, MVT::i32, 0,
+/* 7236*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 3, 4,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 10
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 7244*/ /*Scope*/ 34, /*->7279*/
+/* 7245*/ OPC_CheckChild2Type, MVT::i32,
+/* 7247*/ OPC_Scope, 14, /*->7263*/ // 2 children in Scope
+/* 7249*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7251*/ OPC_EmitMergeInputChains1_0,
+/* 7252*/ OPC_EmitInteger, MVT::i32, 0,
+/* 7255*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 7263*/ /*Scope*/ 14, /*->7278*/
+/* 7264*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 7266*/ OPC_EmitMergeInputChains1_0,
+/* 7267*/ OPC_EmitInteger, MVT::i32, 0,
+/* 7270*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 7278*/ 0, /*End of Scope*/
+/* 7279*/ /*Scope*/ 16, /*->7296*/
+/* 7280*/ OPC_CheckChild2Type, MVT::i64,
+/* 7282*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 7284*/ OPC_EmitMergeInputChains1_0,
+/* 7285*/ OPC_EmitInteger, MVT::i64, 0,
+/* 7288*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FSD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> - Complexity = 4
+ // Dst: (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 7296*/ 0, /*End of Scope*/
+/* 7297*/ 0, /*End of Scope*/
+/* 7298*/ 0, /*End of Scope*/
+/* 7299*/ /*SwitchOpcode*/ 74|128,9/*1226*/, TARGET_VAL(ISD::ATOMIC_STORE),// ->8529
+/* 7303*/ OPC_RecordMemRef,
+/* 7304*/ OPC_RecordNode, // #0 = 'atomic_store' chained node
+/* 7305*/ OPC_Scope, 90|128,5/*730*/, /*->8038*/ // 2 children in Scope
+/* 7308*/ OPC_MoveChild1,
+/* 7309*/ OPC_SwitchOpcode /*2 cases */, 6|128,2/*262*/, TARGET_VAL(ISD::OR),// ->7576
+/* 7314*/ OPC_RecordChild0, // #1 = $rs1
+/* 7315*/ OPC_RecordChild1, // #2 = $imm12
+/* 7316*/ OPC_MoveChild1,
+/* 7317*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 7320*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 7322*/ OPC_MoveParent,
+/* 7323*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 7325*/ OPC_SwitchType /*2 cases */, 34|128,1/*162*/, MVT::i32,// ->7491
+/* 7329*/ OPC_MoveParent,
+/* 7330*/ OPC_RecordChild2, // #3 = $rs2
+/* 7331*/ OPC_CheckChild2Type, MVT::i32,
+/* 7333*/ OPC_Scope, 38, /*->7373*/ // 4 children in Scope
+/* 7335*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7337*/ OPC_Scope, 16, /*->7355*/ // 2 children in Scope
+/* 7339*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7341*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7344*/ OPC_EmitMergeInputChains1_0,
+/* 7345*/ OPC_EmitConvertToTarget, 2,
+/* 7347*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7355*/ /*Scope*/ 16, /*->7372*/
+/* 7356*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7358*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7361*/ OPC_EmitMergeInputChains1_0,
+/* 7362*/ OPC_EmitConvertToTarget, 2,
+/* 7364*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7372*/ 0, /*End of Scope*/
+/* 7373*/ /*Scope*/ 38, /*->7412*/
+/* 7374*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7376*/ OPC_Scope, 16, /*->7394*/ // 2 children in Scope
+/* 7378*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7380*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7383*/ OPC_EmitMergeInputChains1_0,
+/* 7384*/ OPC_EmitConvertToTarget, 2,
+/* 7386*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7394*/ /*Scope*/ 16, /*->7411*/
+/* 7395*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7397*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7400*/ OPC_EmitMergeInputChains1_0,
+/* 7401*/ OPC_EmitConvertToTarget, 2,
+/* 7403*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7411*/ 0, /*End of Scope*/
+/* 7412*/ /*Scope*/ 38, /*->7451*/
+/* 7413*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 7415*/ OPC_Scope, 16, /*->7433*/ // 2 children in Scope
+/* 7417*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7419*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7422*/ OPC_EmitMergeInputChains1_0,
+/* 7423*/ OPC_EmitConvertToTarget, 2,
+/* 7425*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7433*/ /*Scope*/ 16, /*->7450*/
+/* 7434*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7436*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7439*/ OPC_EmitMergeInputChains1_0,
+/* 7440*/ OPC_EmitConvertToTarget, 2,
+/* 7442*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7450*/ 0, /*End of Scope*/
+/* 7451*/ /*Scope*/ 38, /*->7490*/
+/* 7452*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 7454*/ OPC_Scope, 16, /*->7472*/ // 2 children in Scope
+/* 7456*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7458*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7461*/ OPC_EmitMergeInputChains1_0,
+/* 7462*/ OPC_EmitConvertToTarget, 2,
+/* 7464*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7472*/ /*Scope*/ 16, /*->7489*/
+/* 7473*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 7475*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7478*/ OPC_EmitMergeInputChains1_0,
+/* 7479*/ OPC_EmitConvertToTarget, 2,
+/* 7481*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7489*/ 0, /*End of Scope*/
+/* 7490*/ 0, /*End of Scope*/
+/* 7491*/ /*SwitchType*/ 82, MVT::i64,// ->7575
+/* 7493*/ OPC_MoveParent,
+/* 7494*/ OPC_RecordChild2, // #3 = $rs2
+/* 7495*/ OPC_CheckChild2Type, MVT::i64,
+/* 7497*/ OPC_Scope, 18, /*->7517*/ // 4 children in Scope
+/* 7499*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7501*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7503*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7506*/ OPC_EmitMergeInputChains1_0,
+/* 7507*/ OPC_EmitConvertToTarget, 2,
+/* 7509*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 18
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7517*/ /*Scope*/ 18, /*->7536*/
+/* 7518*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7520*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7522*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7525*/ OPC_EmitMergeInputChains1_0,
+/* 7526*/ OPC_EmitConvertToTarget, 2,
+/* 7528*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 18
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7536*/ /*Scope*/ 18, /*->7555*/
+/* 7537*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 7539*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7541*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7544*/ OPC_EmitMergeInputChains1_0,
+/* 7545*/ OPC_EmitConvertToTarget, 2,
+/* 7547*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 18
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7555*/ /*Scope*/ 18, /*->7574*/
+/* 7556*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 7558*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7560*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7563*/ OPC_EmitMergeInputChains1_0,
+/* 7564*/ OPC_EmitConvertToTarget, 2,
+/* 7566*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 18
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7574*/ 0, /*End of Scope*/
+/* 7575*/ 0, // EndSwitchType
+/* 7576*/ /*SwitchOpcode*/ 73|128,3/*457*/, TARGET_VAL(ISD::ADD),// ->8037
+/* 7580*/ OPC_RecordChild0, // #1 = $rs1
+/* 7581*/ OPC_RecordChild1, // #2 = $imm12
+/* 7582*/ OPC_MoveChild1,
+/* 7583*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 7586*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 7588*/ OPC_MoveParent,
+/* 7589*/ OPC_SwitchType /*2 cases */, 38|128,2/*294*/, MVT::i32,// ->7887
+/* 7593*/ OPC_MoveParent,
+/* 7594*/ OPC_RecordChild2, // #3 = $rs2
+/* 7595*/ OPC_CheckChild2Type, MVT::i32,
+/* 7597*/ OPC_Scope, 38, /*->7637*/ // 8 children in Scope
+/* 7599*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7601*/ OPC_Scope, 16, /*->7619*/ // 2 children in Scope
+/* 7603*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7605*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7608*/ OPC_EmitMergeInputChains1_0,
+/* 7609*/ OPC_EmitConvertToTarget, 2,
+/* 7611*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7619*/ /*Scope*/ 16, /*->7636*/
+/* 7620*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7622*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7625*/ OPC_EmitMergeInputChains1_0,
+/* 7626*/ OPC_EmitConvertToTarget, 2,
+/* 7628*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7636*/ 0, /*End of Scope*/
+/* 7637*/ /*Scope*/ 38, /*->7676*/
+/* 7638*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7640*/ OPC_Scope, 16, /*->7658*/ // 2 children in Scope
+/* 7642*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7644*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7647*/ OPC_EmitMergeInputChains1_0,
+/* 7648*/ OPC_EmitConvertToTarget, 2,
+/* 7650*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7658*/ /*Scope*/ 16, /*->7675*/
+/* 7659*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7661*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7664*/ OPC_EmitMergeInputChains1_0,
+/* 7665*/ OPC_EmitConvertToTarget, 2,
+/* 7667*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7675*/ 0, /*End of Scope*/
+/* 7676*/ /*Scope*/ 38, /*->7715*/
+/* 7677*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 7679*/ OPC_Scope, 16, /*->7697*/ // 2 children in Scope
+/* 7681*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7683*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7686*/ OPC_EmitMergeInputChains1_0,
+/* 7687*/ OPC_EmitConvertToTarget, 2,
+/* 7689*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7697*/ /*Scope*/ 16, /*->7714*/
+/* 7698*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7700*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7703*/ OPC_EmitMergeInputChains1_0,
+/* 7704*/ OPC_EmitConvertToTarget, 2,
+/* 7706*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7714*/ 0, /*End of Scope*/
+/* 7715*/ /*Scope*/ 38, /*->7754*/
+/* 7716*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 7718*/ OPC_Scope, 16, /*->7736*/ // 2 children in Scope
+/* 7720*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7722*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7725*/ OPC_EmitMergeInputChains1_0,
+/* 7726*/ OPC_EmitConvertToTarget, 2,
+/* 7728*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7736*/ /*Scope*/ 16, /*->7753*/
+/* 7737*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 7739*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7742*/ OPC_EmitMergeInputChains1_0,
+/* 7743*/ OPC_EmitConvertToTarget, 2,
+/* 7745*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7753*/ 0, /*End of Scope*/
+/* 7754*/ /*Scope*/ 32, /*->7787*/
+/* 7755*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7757*/ OPC_Scope, 13, /*->7772*/ // 2 children in Scope
+/* 7759*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7761*/ OPC_EmitMergeInputChains1_0,
+/* 7762*/ OPC_EmitConvertToTarget, 2,
+/* 7764*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7772*/ /*Scope*/ 13, /*->7786*/
+/* 7773*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7775*/ OPC_EmitMergeInputChains1_0,
+/* 7776*/ OPC_EmitConvertToTarget, 2,
+/* 7778*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7786*/ 0, /*End of Scope*/
+/* 7787*/ /*Scope*/ 32, /*->7820*/
+/* 7788*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7790*/ OPC_Scope, 13, /*->7805*/ // 2 children in Scope
+/* 7792*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7794*/ OPC_EmitMergeInputChains1_0,
+/* 7795*/ OPC_EmitConvertToTarget, 2,
+/* 7797*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7805*/ /*Scope*/ 13, /*->7819*/
+/* 7806*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7808*/ OPC_EmitMergeInputChains1_0,
+/* 7809*/ OPC_EmitConvertToTarget, 2,
+/* 7811*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7819*/ 0, /*End of Scope*/
+/* 7820*/ /*Scope*/ 32, /*->7853*/
+/* 7821*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 7823*/ OPC_Scope, 13, /*->7838*/ // 2 children in Scope
+/* 7825*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7827*/ OPC_EmitMergeInputChains1_0,
+/* 7828*/ OPC_EmitConvertToTarget, 2,
+/* 7830*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7838*/ /*Scope*/ 13, /*->7852*/
+/* 7839*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 7841*/ OPC_EmitMergeInputChains1_0,
+/* 7842*/ OPC_EmitConvertToTarget, 2,
+/* 7844*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7852*/ 0, /*End of Scope*/
+/* 7853*/ /*Scope*/ 32, /*->7886*/
+/* 7854*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 7856*/ OPC_Scope, 13, /*->7871*/ // 2 children in Scope
+/* 7858*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 7860*/ OPC_EmitMergeInputChains1_0,
+/* 7861*/ OPC_EmitConvertToTarget, 2,
+/* 7863*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7871*/ /*Scope*/ 13, /*->7885*/
+/* 7872*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 7874*/ OPC_EmitMergeInputChains1_0,
+/* 7875*/ OPC_EmitConvertToTarget, 2,
+/* 7877*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 7885*/ 0, /*End of Scope*/
+/* 7886*/ 0, /*End of Scope*/
+/* 7887*/ /*SwitchType*/ 18|128,1/*146*/, MVT::i64,// ->8036
+/* 7890*/ OPC_MoveParent,
+/* 7891*/ OPC_RecordChild2, // #3 = $rs2
+/* 7892*/ OPC_CheckChild2Type, MVT::i64,
+/* 7894*/ OPC_Scope, 18, /*->7914*/ // 8 children in Scope
+/* 7896*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7898*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7900*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7903*/ OPC_EmitMergeInputChains1_0,
+/* 7904*/ OPC_EmitConvertToTarget, 2,
+/* 7906*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 17
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7914*/ /*Scope*/ 18, /*->7933*/
+/* 7915*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7917*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7919*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7922*/ OPC_EmitMergeInputChains1_0,
+/* 7923*/ OPC_EmitConvertToTarget, 2,
+/* 7925*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 17
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7933*/ /*Scope*/ 18, /*->7952*/
+/* 7934*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 7936*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7938*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7941*/ OPC_EmitMergeInputChains1_0,
+/* 7942*/ OPC_EmitConvertToTarget, 2,
+/* 7944*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 17
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7952*/ /*Scope*/ 18, /*->7971*/
+/* 7953*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 7955*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7957*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #4
+/* 7960*/ OPC_EmitMergeInputChains1_0,
+/* 7961*/ OPC_EmitConvertToTarget, 2,
+/* 7963*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 4, 5,
+ // Src: (atomic_store (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 17
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7971*/ /*Scope*/ 15, /*->7987*/
+/* 7972*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 7974*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7976*/ OPC_EmitMergeInputChains1_0,
+/* 7977*/ OPC_EmitConvertToTarget, 2,
+/* 7979*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 11
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 7987*/ /*Scope*/ 15, /*->8003*/
+/* 7988*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 7990*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 7992*/ OPC_EmitMergeInputChains1_0,
+/* 7993*/ OPC_EmitConvertToTarget, 2,
+/* 7995*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 11
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8003*/ /*Scope*/ 15, /*->8019*/
+/* 8004*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 8006*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8008*/ OPC_EmitMergeInputChains1_0,
+/* 8009*/ OPC_EmitConvertToTarget, 2,
+/* 8011*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 11
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8019*/ /*Scope*/ 15, /*->8035*/
+/* 8020*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 8022*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8024*/ OPC_EmitMergeInputChains1_0,
+/* 8025*/ OPC_EmitConvertToTarget, 2,
+/* 8027*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 3, 1, 4,
+ // Src: (atomic_store (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 11
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8035*/ 0, /*End of Scope*/
+/* 8036*/ 0, // EndSwitchType
+/* 8037*/ 0, // EndSwitchOpcode
+/* 8038*/ /*Scope*/ 104|128,3/*488*/, /*->8528*/
+/* 8040*/ OPC_RecordChild1, // #1 = $rs1
+/* 8041*/ OPC_Scope, 2|128,2/*258*/, /*->8302*/ // 3 children in Scope
+/* 8044*/ OPC_RecordChild2, // #2 = $rs2
+/* 8045*/ OPC_Scope, 40|128,1/*168*/, /*->8216*/ // 2 children in Scope
+/* 8048*/ OPC_CheckChild2Type, MVT::i32,
+/* 8050*/ OPC_Scope, 40, /*->8092*/ // 4 children in Scope
+/* 8052*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 8054*/ OPC_Scope, 17, /*->8073*/ // 2 children in Scope
+/* 8056*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8058*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8061*/ OPC_EmitMergeInputChains1_0,
+/* 8062*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8065*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8073*/ /*Scope*/ 17, /*->8091*/
+/* 8074*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8076*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8079*/ OPC_EmitMergeInputChains1_0,
+/* 8080*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8083*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8091*/ 0, /*End of Scope*/
+/* 8092*/ /*Scope*/ 40, /*->8133*/
+/* 8093*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 8095*/ OPC_Scope, 17, /*->8114*/ // 2 children in Scope
+/* 8097*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8099*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8102*/ OPC_EmitMergeInputChains1_0,
+/* 8103*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8106*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8114*/ /*Scope*/ 17, /*->8132*/
+/* 8115*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8117*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8120*/ OPC_EmitMergeInputChains1_0,
+/* 8121*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8124*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8132*/ 0, /*End of Scope*/
+/* 8133*/ /*Scope*/ 40, /*->8174*/
+/* 8134*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 8136*/ OPC_Scope, 17, /*->8155*/ // 2 children in Scope
+/* 8138*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8140*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8143*/ OPC_EmitMergeInputChains1_0,
+/* 8144*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8147*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8155*/ /*Scope*/ 17, /*->8173*/
+/* 8156*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8158*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8161*/ OPC_EmitMergeInputChains1_0,
+/* 8162*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8165*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8173*/ 0, /*End of Scope*/
+/* 8174*/ /*Scope*/ 40, /*->8215*/
+/* 8175*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 8177*/ OPC_Scope, 17, /*->8196*/ // 2 children in Scope
+/* 8179*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8181*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8184*/ OPC_EmitMergeInputChains1_0,
+/* 8185*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8188*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8196*/ /*Scope*/ 17, /*->8214*/
+/* 8197*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 8199*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8202*/ OPC_EmitMergeInputChains1_0,
+/* 8203*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8206*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8214*/ 0, /*End of Scope*/
+/* 8215*/ 0, /*End of Scope*/
+/* 8216*/ /*Scope*/ 84, /*->8301*/
+/* 8217*/ OPC_CheckChild2Type, MVT::i64,
+/* 8219*/ OPC_Scope, 19, /*->8240*/ // 4 children in Scope
+/* 8221*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 8223*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8225*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8228*/ OPC_EmitMergeInputChains1_0,
+/* 8229*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8232*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 10
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8240*/ /*Scope*/ 19, /*->8260*/
+/* 8241*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 8243*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8245*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8248*/ OPC_EmitMergeInputChains1_0,
+/* 8249*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8252*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 10
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8260*/ /*Scope*/ 19, /*->8280*/
+/* 8261*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 8263*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8265*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8268*/ OPC_EmitMergeInputChains1_0,
+/* 8269*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8272*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 10
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8280*/ /*Scope*/ 19, /*->8300*/
+/* 8281*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 8283*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8285*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8288*/ OPC_EmitMergeInputChains1_0,
+/* 8289*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8292*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 3, 4,
+ // Src: (atomic_store AddrFI:{ *:[iPTR] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 10
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8300*/ 0, /*End of Scope*/
+/* 8301*/ 0, /*End of Scope*/
+/* 8302*/ /*Scope*/ 19|128,1/*147*/, /*->8451*/
+/* 8304*/ OPC_CheckChild1Type, MVT::i32,
+/* 8306*/ OPC_RecordChild2, // #2 = $rs2
+/* 8307*/ OPC_CheckChild2Type, MVT::i32,
+/* 8309*/ OPC_Scope, 34, /*->8345*/ // 4 children in Scope
+/* 8311*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 8313*/ OPC_Scope, 14, /*->8329*/ // 2 children in Scope
+/* 8315*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8317*/ OPC_EmitMergeInputChains1_0,
+/* 8318*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8321*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8329*/ /*Scope*/ 14, /*->8344*/
+/* 8330*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8332*/ OPC_EmitMergeInputChains1_0,
+/* 8333*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8336*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8344*/ 0, /*End of Scope*/
+/* 8345*/ /*Scope*/ 34, /*->8380*/
+/* 8346*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 8348*/ OPC_Scope, 14, /*->8364*/ // 2 children in Scope
+/* 8350*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8352*/ OPC_EmitMergeInputChains1_0,
+/* 8353*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8356*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8364*/ /*Scope*/ 14, /*->8379*/
+/* 8365*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8367*/ OPC_EmitMergeInputChains1_0,
+/* 8368*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8371*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8379*/ 0, /*End of Scope*/
+/* 8380*/ /*Scope*/ 34, /*->8415*/
+/* 8381*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 8383*/ OPC_Scope, 14, /*->8399*/ // 2 children in Scope
+/* 8385*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8387*/ OPC_EmitMergeInputChains1_0,
+/* 8388*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8391*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8399*/ /*Scope*/ 14, /*->8414*/
+/* 8400*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8402*/ OPC_EmitMergeInputChains1_0,
+/* 8403*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8406*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8414*/ 0, /*End of Scope*/
+/* 8415*/ /*Scope*/ 34, /*->8450*/
+/* 8416*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 8418*/ OPC_Scope, 14, /*->8434*/ // 2 children in Scope
+/* 8420*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8422*/ OPC_EmitMergeInputChains1_0,
+/* 8423*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8426*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8434*/ /*Scope*/ 14, /*->8449*/
+/* 8435*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 8437*/ OPC_EmitMergeInputChains1_0,
+/* 8438*/ OPC_EmitInteger, MVT::i32, 0,
+/* 8441*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 8449*/ 0, /*End of Scope*/
+/* 8450*/ 0, /*End of Scope*/
+/* 8451*/ /*Scope*/ 75, /*->8527*/
+/* 8452*/ OPC_CheckChild1Type, MVT::i64,
+/* 8454*/ OPC_RecordChild2, // #2 = $rs2
+/* 8455*/ OPC_CheckChild2Type, MVT::i64,
+/* 8457*/ OPC_Scope, 16, /*->8475*/ // 4 children in Scope
+/* 8459*/ OPC_CheckPredicate, 5, // Predicate_atomic_store_8
+/* 8461*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8463*/ OPC_EmitMergeInputChains1_0,
+/* 8464*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8467*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SB), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_8>> - Complexity = 4
+ // Dst: (SB GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8475*/ /*Scope*/ 16, /*->8492*/
+/* 8476*/ OPC_CheckPredicate, 7, // Predicate_atomic_store_16
+/* 8478*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8480*/ OPC_EmitMergeInputChains1_0,
+/* 8481*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8484*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SH), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_16>> - Complexity = 4
+ // Dst: (SH GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8492*/ /*Scope*/ 16, /*->8509*/
+/* 8493*/ OPC_CheckPredicate, 10, // Predicate_atomic_store_32
+/* 8495*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8497*/ OPC_EmitMergeInputChains1_0,
+/* 8498*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8501*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SW), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_32>> - Complexity = 4
+ // Dst: (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8509*/ /*Scope*/ 16, /*->8526*/
+/* 8510*/ OPC_CheckPredicate, 14, // Predicate_atomic_store_64
+/* 8512*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8514*/ OPC_EmitMergeInputChains1_0,
+/* 8515*/ OPC_EmitInteger, MVT::i64, 0,
+/* 8518*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SD), 0|OPFL_Chain|OPFL_MemRefs,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (atomic_store GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_store_64>> - Complexity = 4
+ // Dst: (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 8526*/ 0, /*End of Scope*/
+/* 8527*/ 0, /*End of Scope*/
+/* 8528*/ 0, /*End of Scope*/
+/* 8529*/ /*SwitchOpcode*/ 64|128,9/*1216*/, TARGET_VAL(ISD::ATOMIC_LOAD),// ->9749
+/* 8533*/ OPC_RecordMemRef,
+/* 8534*/ OPC_RecordNode, // #0 = 'atomic_load' chained node
+/* 8535*/ OPC_Scope, 86|128,5/*726*/, /*->9264*/ // 2 children in Scope
+/* 8538*/ OPC_MoveChild1,
+/* 8539*/ OPC_SwitchOpcode /*2 cases */, 4|128,2/*260*/, TARGET_VAL(ISD::OR),// ->8804
+/* 8544*/ OPC_RecordChild0, // #1 = $rs1
+/* 8545*/ OPC_RecordChild1, // #2 = $imm12
+/* 8546*/ OPC_MoveChild1,
+/* 8547*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 8550*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 8552*/ OPC_MoveParent,
+/* 8553*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 8555*/ OPC_SwitchType /*2 cases */, 33|128,1/*161*/, MVT::i32,// ->8720
+/* 8559*/ OPC_MoveParent,
+/* 8560*/ OPC_CheckType, MVT::i32,
+/* 8562*/ OPC_Scope, 38, /*->8602*/ // 4 children in Scope
+/* 8564*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 8566*/ OPC_Scope, 16, /*->8584*/ // 2 children in Scope
+/* 8568*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8570*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8573*/ OPC_EmitMergeInputChains1_0,
+/* 8574*/ OPC_EmitConvertToTarget, 2,
+/* 8576*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8584*/ /*Scope*/ 16, /*->8601*/
+/* 8585*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8587*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8590*/ OPC_EmitMergeInputChains1_0,
+/* 8591*/ OPC_EmitConvertToTarget, 2,
+/* 8593*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_8>> - Complexity = 18
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8601*/ 0, /*End of Scope*/
+/* 8602*/ /*Scope*/ 38, /*->8641*/
+/* 8603*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 8605*/ OPC_Scope, 16, /*->8623*/ // 2 children in Scope
+/* 8607*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8609*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8612*/ OPC_EmitMergeInputChains1_0,
+/* 8613*/ OPC_EmitConvertToTarget, 2,
+/* 8615*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8623*/ /*Scope*/ 16, /*->8640*/
+/* 8624*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8626*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8629*/ OPC_EmitMergeInputChains1_0,
+/* 8630*/ OPC_EmitConvertToTarget, 2,
+/* 8632*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_16>> - Complexity = 18
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8640*/ 0, /*End of Scope*/
+/* 8641*/ /*Scope*/ 38, /*->8680*/
+/* 8642*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 8644*/ OPC_Scope, 16, /*->8662*/ // 2 children in Scope
+/* 8646*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8648*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8651*/ OPC_EmitMergeInputChains1_0,
+/* 8652*/ OPC_EmitConvertToTarget, 2,
+/* 8654*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8662*/ /*Scope*/ 16, /*->8679*/
+/* 8663*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8665*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8668*/ OPC_EmitMergeInputChains1_0,
+/* 8669*/ OPC_EmitConvertToTarget, 2,
+/* 8671*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_32>> - Complexity = 18
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8679*/ 0, /*End of Scope*/
+/* 8680*/ /*Scope*/ 38, /*->8719*/
+/* 8681*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 8683*/ OPC_Scope, 16, /*->8701*/ // 2 children in Scope
+/* 8685*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8687*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8690*/ OPC_EmitMergeInputChains1_0,
+/* 8691*/ OPC_EmitConvertToTarget, 2,
+/* 8693*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_64>> - Complexity = 18
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8701*/ /*Scope*/ 16, /*->8718*/
+/* 8702*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 8704*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8707*/ OPC_EmitMergeInputChains1_0,
+/* 8708*/ OPC_EmitConvertToTarget, 2,
+/* 8710*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (or:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_64>> - Complexity = 18
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8718*/ 0, /*End of Scope*/
+/* 8719*/ 0, /*End of Scope*/
+/* 8720*/ /*SwitchType*/ 81, MVT::i64,// ->8803
+/* 8722*/ OPC_MoveParent,
+/* 8723*/ OPC_CheckType, MVT::i64,
+/* 8725*/ OPC_Scope, 18, /*->8745*/ // 4 children in Scope
+/* 8727*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 8729*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 8731*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8734*/ OPC_EmitMergeInputChains1_0,
+/* 8735*/ OPC_EmitConvertToTarget, 2,
+/* 8737*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_8>> - Complexity = 18
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8745*/ /*Scope*/ 18, /*->8764*/
+/* 8746*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 8748*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8750*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8753*/ OPC_EmitMergeInputChains1_0,
+/* 8754*/ OPC_EmitConvertToTarget, 2,
+/* 8756*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_16>> - Complexity = 18
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8764*/ /*Scope*/ 18, /*->8783*/
+/* 8765*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 8767*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8769*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8772*/ OPC_EmitMergeInputChains1_0,
+/* 8773*/ OPC_EmitConvertToTarget, 2,
+/* 8775*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_32>> - Complexity = 18
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8783*/ /*Scope*/ 18, /*->8802*/
+/* 8784*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 8786*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 8788*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8791*/ OPC_EmitMergeInputChains1_0,
+/* 8792*/ OPC_EmitConvertToTarget, 2,
+/* 8794*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (or:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>>)<<P:Predicate_atomic_load_64>> - Complexity = 18
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 8802*/ 0, /*End of Scope*/
+/* 8803*/ 0, // EndSwitchType
+/* 8804*/ /*SwitchOpcode*/ 71|128,3/*455*/, TARGET_VAL(ISD::ADD),// ->9263
+/* 8808*/ OPC_RecordChild0, // #1 = $rs1
+/* 8809*/ OPC_RecordChild1, // #2 = $imm12
+/* 8810*/ OPC_MoveChild1,
+/* 8811*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 8814*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 8816*/ OPC_MoveParent,
+/* 8817*/ OPC_SwitchType /*2 cases */, 37|128,2/*293*/, MVT::i32,// ->9114
+/* 8821*/ OPC_MoveParent,
+/* 8822*/ OPC_CheckType, MVT::i32,
+/* 8824*/ OPC_Scope, 38, /*->8864*/ // 8 children in Scope
+/* 8826*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 8828*/ OPC_Scope, 16, /*->8846*/ // 2 children in Scope
+/* 8830*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8832*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8835*/ OPC_EmitMergeInputChains1_0,
+/* 8836*/ OPC_EmitConvertToTarget, 2,
+/* 8838*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8846*/ /*Scope*/ 16, /*->8863*/
+/* 8847*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8849*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8852*/ OPC_EmitMergeInputChains1_0,
+/* 8853*/ OPC_EmitConvertToTarget, 2,
+/* 8855*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 17
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8863*/ 0, /*End of Scope*/
+/* 8864*/ /*Scope*/ 38, /*->8903*/
+/* 8865*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 8867*/ OPC_Scope, 16, /*->8885*/ // 2 children in Scope
+/* 8869*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8871*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8874*/ OPC_EmitMergeInputChains1_0,
+/* 8875*/ OPC_EmitConvertToTarget, 2,
+/* 8877*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8885*/ /*Scope*/ 16, /*->8902*/
+/* 8886*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8888*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8891*/ OPC_EmitMergeInputChains1_0,
+/* 8892*/ OPC_EmitConvertToTarget, 2,
+/* 8894*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 17
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8902*/ 0, /*End of Scope*/
+/* 8903*/ /*Scope*/ 38, /*->8942*/
+/* 8904*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 8906*/ OPC_Scope, 16, /*->8924*/ // 2 children in Scope
+/* 8908*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8910*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8913*/ OPC_EmitMergeInputChains1_0,
+/* 8914*/ OPC_EmitConvertToTarget, 2,
+/* 8916*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8924*/ /*Scope*/ 16, /*->8941*/
+/* 8925*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 8927*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8930*/ OPC_EmitMergeInputChains1_0,
+/* 8931*/ OPC_EmitConvertToTarget, 2,
+/* 8933*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 17
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8941*/ 0, /*End of Scope*/
+/* 8942*/ /*Scope*/ 38, /*->8981*/
+/* 8943*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 8945*/ OPC_Scope, 16, /*->8963*/ // 2 children in Scope
+/* 8947*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8949*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8952*/ OPC_EmitMergeInputChains1_0,
+/* 8953*/ OPC_EmitConvertToTarget, 2,
+/* 8955*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 17
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8963*/ /*Scope*/ 16, /*->8980*/
+/* 8964*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 8966*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 8969*/ OPC_EmitMergeInputChains1_0,
+/* 8970*/ OPC_EmitConvertToTarget, 2,
+/* 8972*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 17
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8980*/ 0, /*End of Scope*/
+/* 8981*/ /*Scope*/ 32, /*->9014*/
+/* 8982*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 8984*/ OPC_Scope, 13, /*->8999*/ // 2 children in Scope
+/* 8986*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 8988*/ OPC_EmitMergeInputChains1_0,
+/* 8989*/ OPC_EmitConvertToTarget, 2,
+/* 8991*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 8999*/ /*Scope*/ 13, /*->9013*/
+/* 9000*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9002*/ OPC_EmitMergeInputChains1_0,
+/* 9003*/ OPC_EmitConvertToTarget, 2,
+/* 9005*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 11
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9013*/ 0, /*End of Scope*/
+/* 9014*/ /*Scope*/ 32, /*->9047*/
+/* 9015*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9017*/ OPC_Scope, 13, /*->9032*/ // 2 children in Scope
+/* 9019*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9021*/ OPC_EmitMergeInputChains1_0,
+/* 9022*/ OPC_EmitConvertToTarget, 2,
+/* 9024*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9032*/ /*Scope*/ 13, /*->9046*/
+/* 9033*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9035*/ OPC_EmitMergeInputChains1_0,
+/* 9036*/ OPC_EmitConvertToTarget, 2,
+/* 9038*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 11
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9046*/ 0, /*End of Scope*/
+/* 9047*/ /*Scope*/ 32, /*->9080*/
+/* 9048*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9050*/ OPC_Scope, 13, /*->9065*/ // 2 children in Scope
+/* 9052*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9054*/ OPC_EmitMergeInputChains1_0,
+/* 9055*/ OPC_EmitConvertToTarget, 2,
+/* 9057*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9065*/ /*Scope*/ 13, /*->9079*/
+/* 9066*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9068*/ OPC_EmitMergeInputChains1_0,
+/* 9069*/ OPC_EmitConvertToTarget, 2,
+/* 9071*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 11
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9079*/ 0, /*End of Scope*/
+/* 9080*/ /*Scope*/ 32, /*->9113*/
+/* 9081*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9083*/ OPC_Scope, 13, /*->9098*/ // 2 children in Scope
+/* 9085*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9087*/ OPC_EmitMergeInputChains1_0,
+/* 9088*/ OPC_EmitConvertToTarget, 2,
+/* 9090*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 11
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9098*/ /*Scope*/ 13, /*->9112*/
+/* 9099*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 9101*/ OPC_EmitMergeInputChains1_0,
+/* 9102*/ OPC_EmitConvertToTarget, 2,
+/* 9104*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 11
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9112*/ 0, /*End of Scope*/
+/* 9113*/ 0, /*End of Scope*/
+/* 9114*/ /*SwitchType*/ 17|128,1/*145*/, MVT::i64,// ->9262
+/* 9117*/ OPC_MoveParent,
+/* 9118*/ OPC_CheckType, MVT::i64,
+/* 9120*/ OPC_Scope, 18, /*->9140*/ // 8 children in Scope
+/* 9122*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 9124*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9126*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 9129*/ OPC_EmitMergeInputChains1_0,
+/* 9130*/ OPC_EmitConvertToTarget, 2,
+/* 9132*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 17
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9140*/ /*Scope*/ 18, /*->9159*/
+/* 9141*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9143*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9145*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 9148*/ OPC_EmitMergeInputChains1_0,
+/* 9149*/ OPC_EmitConvertToTarget, 2,
+/* 9151*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 17
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9159*/ /*Scope*/ 18, /*->9178*/
+/* 9160*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9162*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9164*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 9167*/ OPC_EmitMergeInputChains1_0,
+/* 9168*/ OPC_EmitConvertToTarget, 2,
+/* 9170*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 17
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9178*/ /*Scope*/ 18, /*->9197*/
+/* 9179*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9181*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9183*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #3
+/* 9186*/ OPC_EmitMergeInputChains1_0,
+/* 9187*/ OPC_EmitConvertToTarget, 2,
+/* 9189*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 17
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9197*/ /*Scope*/ 15, /*->9213*/
+/* 9198*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 9200*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9202*/ OPC_EmitMergeInputChains1_0,
+/* 9203*/ OPC_EmitConvertToTarget, 2,
+/* 9205*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> - Complexity = 11
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9213*/ /*Scope*/ 15, /*->9229*/
+/* 9214*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9216*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9218*/ OPC_EmitMergeInputChains1_0,
+/* 9219*/ OPC_EmitConvertToTarget, 2,
+/* 9221*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> - Complexity = 11
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9229*/ /*Scope*/ 15, /*->9245*/
+/* 9230*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9232*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9234*/ OPC_EmitMergeInputChains1_0,
+/* 9235*/ OPC_EmitConvertToTarget, 2,
+/* 9237*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> - Complexity = 11
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9245*/ /*Scope*/ 15, /*->9261*/
+/* 9246*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9248*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9250*/ OPC_EmitMergeInputChains1_0,
+/* 9251*/ OPC_EmitConvertToTarget, 2,
+/* 9253*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 3,
+ // Src: (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> - Complexity = 11
+ // Dst: (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9261*/ 0, /*End of Scope*/
+/* 9262*/ 0, // EndSwitchType
+/* 9263*/ 0, // EndSwitchOpcode
+/* 9264*/ /*Scope*/ 98|128,3/*482*/, /*->9748*/
+/* 9266*/ OPC_RecordChild1, // #1 = $rs1
+/* 9267*/ OPC_Scope, 63, /*->9332*/ // 6 children in Scope
+/* 9269*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 9271*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->9312
+/* 9274*/ OPC_Scope, 17, /*->9293*/ // 2 children in Scope
+/* 9276*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9278*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9281*/ OPC_EmitMergeInputChains1_0,
+/* 9282*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9285*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9293*/ /*Scope*/ 17, /*->9311*/
+/* 9294*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9296*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9299*/ OPC_EmitMergeInputChains1_0,
+/* 9300*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9303*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 10
+ // Dst: (LB:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9311*/ 0, /*End of Scope*/
+/* 9312*/ /*SwitchType*/ 17, MVT::i64,// ->9331
+/* 9314*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 9316*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9319*/ OPC_EmitMergeInputChains1_0,
+/* 9320*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9323*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 10
+ // Dst: (LB:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9331*/ 0, // EndSwitchType
+/* 9332*/ /*Scope*/ 63, /*->9396*/
+/* 9333*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9335*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->9376
+/* 9338*/ OPC_Scope, 17, /*->9357*/ // 2 children in Scope
+/* 9340*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9342*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9345*/ OPC_EmitMergeInputChains1_0,
+/* 9346*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9349*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9357*/ /*Scope*/ 17, /*->9375*/
+/* 9358*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9360*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9363*/ OPC_EmitMergeInputChains1_0,
+/* 9364*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9367*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 10
+ // Dst: (LH:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9375*/ 0, /*End of Scope*/
+/* 9376*/ /*SwitchType*/ 17, MVT::i64,// ->9395
+/* 9378*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 9380*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9383*/ OPC_EmitMergeInputChains1_0,
+/* 9384*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9387*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 10
+ // Dst: (LH:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9395*/ 0, // EndSwitchType
+/* 9396*/ /*Scope*/ 63, /*->9460*/
+/* 9397*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9399*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->9440
+/* 9402*/ OPC_Scope, 17, /*->9421*/ // 2 children in Scope
+/* 9404*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9406*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9409*/ OPC_EmitMergeInputChains1_0,
+/* 9410*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9413*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9421*/ /*Scope*/ 17, /*->9439*/
+/* 9422*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9424*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9427*/ OPC_EmitMergeInputChains1_0,
+/* 9428*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9431*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 10
+ // Dst: (LW:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9439*/ 0, /*End of Scope*/
+/* 9440*/ /*SwitchType*/ 17, MVT::i64,// ->9459
+/* 9442*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 9444*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9447*/ OPC_EmitMergeInputChains1_0,
+/* 9448*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9451*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 10
+ // Dst: (LW:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9459*/ 0, // EndSwitchType
+/* 9460*/ /*Scope*/ 63, /*->9524*/
+/* 9461*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9463*/ OPC_SwitchType /*2 cases */, 38, MVT::i32,// ->9504
+/* 9466*/ OPC_Scope, 17, /*->9485*/ // 2 children in Scope
+/* 9468*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9470*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9473*/ OPC_EmitMergeInputChains1_0,
+/* 9474*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9477*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 10
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9485*/ /*Scope*/ 17, /*->9503*/
+/* 9486*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 9488*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9491*/ OPC_EmitMergeInputChains1_0,
+/* 9492*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9495*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i32] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 10
+ // Dst: (LD:{ *:[i32] } AddrFI:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9503*/ 0, /*End of Scope*/
+/* 9504*/ /*SwitchType*/ 17, MVT::i64,// ->9523
+/* 9506*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("64bit"))
+/* 9508*/ OPC_CheckComplexPat, /*CP*/0, /*#*/1, // SelectAddrFI:$rs1 #2
+/* 9511*/ OPC_EmitMergeInputChains1_0,
+/* 9512*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9515*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (atomic_load:{ *:[i64] } AddrFI:{ *:[iPTR] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 10
+ // Dst: (LD:{ *:[i64] } AddrFI:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9523*/ 0, // EndSwitchType
+/* 9524*/ /*Scope*/ 18|128,1/*146*/, /*->9672*/
+/* 9526*/ OPC_CheckChild1Type, MVT::i32,
+/* 9528*/ OPC_CheckType, MVT::i32,
+/* 9530*/ OPC_Scope, 34, /*->9566*/ // 4 children in Scope
+/* 9532*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 9534*/ OPC_Scope, 14, /*->9550*/ // 2 children in Scope
+/* 9536*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9538*/ OPC_EmitMergeInputChains1_0,
+/* 9539*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9542*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9550*/ /*Scope*/ 14, /*->9565*/
+/* 9551*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9553*/ OPC_EmitMergeInputChains1_0,
+/* 9554*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9557*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 4
+ // Dst: (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9565*/ 0, /*End of Scope*/
+/* 9566*/ /*Scope*/ 34, /*->9601*/
+/* 9567*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9569*/ OPC_Scope, 14, /*->9585*/ // 2 children in Scope
+/* 9571*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9573*/ OPC_EmitMergeInputChains1_0,
+/* 9574*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9577*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9585*/ /*Scope*/ 14, /*->9600*/
+/* 9586*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9588*/ OPC_EmitMergeInputChains1_0,
+/* 9589*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9592*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 4
+ // Dst: (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9600*/ 0, /*End of Scope*/
+/* 9601*/ /*Scope*/ 34, /*->9636*/
+/* 9602*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9604*/ OPC_Scope, 14, /*->9620*/ // 2 children in Scope
+/* 9606*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9608*/ OPC_EmitMergeInputChains1_0,
+/* 9609*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9612*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9620*/ /*Scope*/ 14, /*->9635*/
+/* 9621*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 9623*/ OPC_EmitMergeInputChains1_0,
+/* 9624*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9627*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 4
+ // Dst: (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9635*/ 0, /*End of Scope*/
+/* 9636*/ /*Scope*/ 34, /*->9671*/
+/* 9637*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9639*/ OPC_Scope, 14, /*->9655*/ // 2 children in Scope
+/* 9641*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9643*/ OPC_EmitMergeInputChains1_0,
+/* 9644*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9647*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 4
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9655*/ /*Scope*/ 14, /*->9670*/
+/* 9656*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 9658*/ OPC_EmitMergeInputChains1_0,
+/* 9659*/ OPC_EmitInteger, MVT::i32, 0,
+/* 9662*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 4
+ // Dst: (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 9670*/ 0, /*End of Scope*/
+/* 9671*/ 0, /*End of Scope*/
+/* 9672*/ /*Scope*/ 74, /*->9747*/
+/* 9673*/ OPC_CheckChild1Type, MVT::i64,
+/* 9675*/ OPC_CheckType, MVT::i64,
+/* 9677*/ OPC_Scope, 16, /*->9695*/ // 4 children in Scope
+/* 9679*/ OPC_CheckPredicate, 5, // Predicate_atomic_load_8
+/* 9681*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9683*/ OPC_EmitMergeInputChains1_0,
+/* 9684*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9687*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LB), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_8>> - Complexity = 4
+ // Dst: (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9695*/ /*Scope*/ 16, /*->9712*/
+/* 9696*/ OPC_CheckPredicate, 7, // Predicate_atomic_load_16
+/* 9698*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9700*/ OPC_EmitMergeInputChains1_0,
+/* 9701*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9704*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LH), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_16>> - Complexity = 4
+ // Dst: (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9712*/ /*Scope*/ 16, /*->9729*/
+/* 9713*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_32
+/* 9715*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9717*/ OPC_EmitMergeInputChains1_0,
+/* 9718*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9721*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LW), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_32>> - Complexity = 4
+ // Dst: (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9729*/ /*Scope*/ 16, /*->9746*/
+/* 9730*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_64
+/* 9732*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9734*/ OPC_EmitMergeInputChains1_0,
+/* 9735*/ OPC_EmitInteger, MVT::i64, 0,
+/* 9738*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LD), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_64>> - Complexity = 4
+ // Dst: (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 9746*/ 0, /*End of Scope*/
+/* 9747*/ 0, /*End of Scope*/
+/* 9748*/ 0, /*End of Scope*/
+/* 9749*/ /*SwitchOpcode*/ 1|128,1/*129*/, TARGET_VAL(ISD::OR),// ->9882
+/* 9753*/ OPC_RecordChild0, // #0 = $Rs
+/* 9754*/ OPC_RecordChild1, // #1 = $imm12
+/* 9755*/ OPC_Scope, 86, /*->9843*/ // 3 children in Scope
+/* 9757*/ OPC_MoveChild1,
+/* 9758*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 9761*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 9763*/ OPC_MoveParent,
+/* 9764*/ OPC_SwitchType /*2 cases */, 61, MVT::i32,// ->9828
+/* 9767*/ OPC_Scope, 34, /*->9803*/ // 3 children in Scope
+/* 9769*/ OPC_CheckPredicate, 2, // Predicate_IsOrAdd
+/* 9771*/ OPC_Scope, 15, /*->9788*/ // 2 children in Scope
+/* 9773*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9775*/ OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrFI:$Rs #2
+/* 9778*/ OPC_EmitConvertToTarget, 1,
+/* 9780*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (or:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>> - Complexity = 14
+ // Dst: (ADDI:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9788*/ /*Scope*/ 13, /*->9802*/
+/* 9789*/ OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrFI:$Rs #2
+/* 9792*/ OPC_EmitConvertToTarget, 1,
+/* 9794*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (or:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)<<P:Predicate_IsOrAdd>> - Complexity = 14
+ // Dst: (ADDI:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9802*/ 0, /*End of Scope*/
+/* 9803*/ /*Scope*/ 12, /*->9816*/
+/* 9804*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9806*/ OPC_EmitConvertToTarget, 1,
+/* 9808*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9816*/ /*Scope*/ 10, /*->9827*/
+/* 9817*/ OPC_EmitConvertToTarget, 1,
+/* 9819*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 9827*/ 0, /*End of Scope*/
+/* 9828*/ /*SwitchType*/ 12, MVT::i64,// ->9842
+/* 9830*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9832*/ OPC_EmitConvertToTarget, 1,
+/* 9834*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ORI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 9842*/ 0, // EndSwitchType
+/* 9843*/ /*Scope*/ 24, /*->9868*/
+/* 9844*/ OPC_CheckType, MVT::i32,
+/* 9846*/ OPC_Scope, 10, /*->9858*/ // 2 children in Scope
+/* 9848*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 9850*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::OR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (OR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 9858*/ /*Scope*/ 8, /*->9867*/
+/* 9859*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::OR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (OR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 9867*/ 0, /*End of Scope*/
+/* 9868*/ /*Scope*/ 12, /*->9881*/
+/* 9869*/ OPC_CheckType, MVT::i64,
+/* 9871*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9873*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::OR), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (OR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 9881*/ 0, /*End of Scope*/
+/* 9882*/ /*SwitchOpcode*/ 8|128,3/*392*/, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10278
+/* 9886*/ OPC_Scope, 113|128,2/*369*/, /*->10258*/ // 2 children in Scope
+/* 9889*/ OPC_MoveChild0,
+/* 9890*/ OPC_Scope, 34, /*->9926*/ // 9 children in Scope
+/* 9892*/ OPC_CheckOpcode, TARGET_VAL(ISD::SREM),
+/* 9895*/ OPC_MoveChild0,
+/* 9896*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext),
+/* 9899*/ OPC_RecordChild0, // #0 = $rs1
+/* 9900*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 9902*/ OPC_MoveParent,
+/* 9903*/ OPC_MoveChild1,
+/* 9904*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertSext),
+/* 9907*/ OPC_RecordChild0, // #1 = $rs2
+/* 9908*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 9910*/ OPC_MoveParent,
+/* 9911*/ OPC_MoveParent,
+/* 9912*/ OPC_MoveChild1,
+/* 9913*/ OPC_CheckValueType, MVT::i32,
+/* 9915*/ OPC_MoveParent,
+/* 9916*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9918*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (srem:{ *:[i64] } (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertsexti32>>, (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertsexti32>>), i32:{ *:[Other] }) - Complexity = 14
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 9926*/ /*Scope*/ 32, /*->9959*/
+/* 9927*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 9933*/ OPC_MoveChild0,
+/* 9934*/ OPC_CheckOpcode, TARGET_VAL(ISD::FP_TO_UINT),
+/* 9937*/ OPC_RecordChild0, // #0 = $rs1
+/* 9938*/ OPC_CheckChild0Type, MVT::f64,
+/* 9940*/ OPC_MoveParent,
+/* 9941*/ OPC_MoveParent,
+/* 9942*/ OPC_MoveChild1,
+/* 9943*/ OPC_CheckValueType, MVT::i32,
+/* 9945*/ OPC_MoveParent,
+/* 9946*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9948*/ OPC_EmitInteger, MVT::i64, 1,
+/* 9951*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (and:{ *:[i64] } (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1), 4294967295:{ *:[i64] }), i32:{ *:[Other] }) - Complexity = 14
+ // Dst: (FCVT_WU_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 9959*/ /*Scope*/ 96, /*->10056*/
+/* 9960*/ OPC_CheckOpcode, TARGET_VAL(ISD::SREM),
+/* 9963*/ OPC_MoveChild0,
+/* 9964*/ OPC_SwitchOpcode /*2 cases */, 55, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10023
+/* 9968*/ OPC_RecordChild0, // #0 = $rs1
+/* 9969*/ OPC_MoveChild1,
+/* 9970*/ OPC_CheckValueType, MVT::i32,
+/* 9972*/ OPC_MoveParent,
+/* 9973*/ OPC_MoveParent,
+/* 9974*/ OPC_MoveChild1,
+/* 9975*/ OPC_SwitchOpcode /*2 cases */, 19, TARGET_VAL(ISD::AssertSext),// ->9998
+/* 9979*/ OPC_RecordChild0, // #1 = $rs2
+/* 9980*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 9982*/ OPC_MoveParent,
+/* 9983*/ OPC_MoveParent,
+/* 9984*/ OPC_MoveChild1,
+/* 9985*/ OPC_CheckValueType, MVT::i32,
+/* 9987*/ OPC_MoveParent,
+/* 9988*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 9990*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (srem:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }), (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertsexti32>>), i32:{ *:[Other] }) - Complexity = 13
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 9998*/ /*SwitchOpcode*/ 21, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10022
+/* 10001*/ OPC_RecordChild0, // #1 = $rs2
+/* 10002*/ OPC_MoveChild1,
+/* 10003*/ OPC_CheckValueType, MVT::i32,
+/* 10005*/ OPC_MoveParent,
+/* 10006*/ OPC_MoveParent,
+/* 10007*/ OPC_MoveParent,
+/* 10008*/ OPC_MoveChild1,
+/* 10009*/ OPC_CheckValueType, MVT::i32,
+/* 10011*/ OPC_MoveParent,
+/* 10012*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10014*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (srem:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }), (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs2, i32:{ *:[Other] })), i32:{ *:[Other] }) - Complexity = 12
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10022*/ 0, // EndSwitchOpcode
+/* 10023*/ /*SwitchOpcode*/ 29, TARGET_VAL(ISD::AssertSext),// ->10055
+/* 10026*/ OPC_RecordChild0, // #0 = $rs1
+/* 10027*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 10029*/ OPC_MoveParent,
+/* 10030*/ OPC_MoveChild1,
+/* 10031*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
+/* 10034*/ OPC_RecordChild0, // #1 = $rs2
+/* 10035*/ OPC_MoveChild1,
+/* 10036*/ OPC_CheckValueType, MVT::i32,
+/* 10038*/ OPC_MoveParent,
+/* 10039*/ OPC_MoveParent,
+/* 10040*/ OPC_MoveParent,
+/* 10041*/ OPC_MoveChild1,
+/* 10042*/ OPC_CheckValueType, MVT::i32,
+/* 10044*/ OPC_MoveParent,
+/* 10045*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10047*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (srem:{ *:[i64] } (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertsexti32>>, (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs2, i32:{ *:[Other] })), i32:{ *:[Other] }) - Complexity = 13
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10055*/ 0, // EndSwitchOpcode
+/* 10056*/ /*Scope*/ 48, /*->10105*/
+/* 10057*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
+/* 10060*/ OPC_RecordChild0, // #0 = $rs1
+/* 10061*/ OPC_RecordChild1, // #1 = $imm12
+/* 10062*/ OPC_Scope, 24, /*->10088*/ // 2 children in Scope
+/* 10064*/ OPC_MoveChild1,
+/* 10065*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 10068*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 10070*/ OPC_MoveParent,
+/* 10071*/ OPC_MoveParent,
+/* 10072*/ OPC_MoveChild1,
+/* 10073*/ OPC_CheckValueType, MVT::i32,
+/* 10075*/ OPC_MoveParent,
+/* 10076*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10078*/ OPC_EmitConvertToTarget, 1,
+/* 10080*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDIW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (sext_inreg:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), i32:{ *:[Other] }) - Complexity = 10
+ // Dst: (ADDIW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 10088*/ /*Scope*/ 15, /*->10104*/
+/* 10089*/ OPC_MoveParent,
+/* 10090*/ OPC_MoveChild1,
+/* 10091*/ OPC_CheckValueType, MVT::i32,
+/* 10093*/ OPC_MoveParent,
+/* 10094*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10096*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), i32:{ *:[Other] }) - Complexity = 6
+ // Dst: (ADDW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10104*/ 0, /*End of Scope*/
+/* 10105*/ /*Scope*/ 31, /*->10137*/
+/* 10106*/ OPC_CheckOpcode, TARGET_VAL(ISD::SHL),
+/* 10109*/ OPC_RecordChild0, // #0 = $rs1
+/* 10110*/ OPC_RecordChild1, // #1 = $shamt
+/* 10111*/ OPC_MoveChild1,
+/* 10112*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 10115*/ OPC_CheckPredicate, 15, // Predicate_uimm5
+/* 10117*/ OPC_CheckType, MVT::i64,
+/* 10119*/ OPC_MoveParent,
+/* 10120*/ OPC_MoveParent,
+/* 10121*/ OPC_MoveChild1,
+/* 10122*/ OPC_CheckValueType, MVT::i32,
+/* 10124*/ OPC_MoveParent,
+/* 10125*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10127*/ OPC_EmitConvertToTarget, 1,
+/* 10129*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLIW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (sext_inreg:{ *:[i64] } (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimm5>>:$shamt), i32:{ *:[Other] }) - Complexity = 10
+ // Dst: (SLLIW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimm5>>:$shamt)
+/* 10137*/ /*Scope*/ 58, /*->10196*/
+/* 10138*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 10141*/ OPC_MoveChild0,
+/* 10142*/ OPC_CheckOpcode, TARGET_VAL(ISD::FP_TO_UINT),
+/* 10145*/ OPC_RecordChild0, // #0 = $rs1
+/* 10146*/ OPC_Scope, 23, /*->10171*/ // 2 children in Scope
+/* 10148*/ OPC_CheckChild0Type, MVT::f32,
+/* 10150*/ OPC_MoveParent,
+/* 10151*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 10153*/ OPC_MoveParent,
+/* 10154*/ OPC_MoveChild1,
+/* 10155*/ OPC_CheckValueType, MVT::i32,
+/* 10157*/ OPC_MoveParent,
+/* 10158*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10160*/ OPC_EmitInteger, MVT::i64, 1,
+/* 10163*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (assertzext:{ *:[i64] } (fp_to_uint:{ *:[i64] } FPR32:{ *:[f32] }:$rs1))<<P:Predicate_assertzexti32>>, i32:{ *:[Other] }) - Complexity = 10
+ // Dst: (FCVT_WU_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, 1:{ *:[i64] })
+/* 10171*/ /*Scope*/ 23, /*->10195*/
+/* 10172*/ OPC_CheckChild0Type, MVT::f64,
+/* 10174*/ OPC_MoveParent,
+/* 10175*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 10177*/ OPC_MoveParent,
+/* 10178*/ OPC_MoveChild1,
+/* 10179*/ OPC_CheckValueType, MVT::i32,
+/* 10181*/ OPC_MoveParent,
+/* 10182*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10184*/ OPC_EmitInteger, MVT::i64, 1,
+/* 10187*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (assertzext:{ *:[i64] } (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1))<<P:Predicate_assertzexti32>>, i32:{ *:[Other] }) - Complexity = 10
+ // Dst: (FCVT_WU_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 10195*/ 0, /*End of Scope*/
+/* 10196*/ /*Scope*/ 20, /*->10217*/
+/* 10197*/ OPC_CheckOpcode, TARGET_VAL(ISD::SUB),
+/* 10200*/ OPC_RecordChild0, // #0 = $rs1
+/* 10201*/ OPC_RecordChild1, // #1 = $rs2
+/* 10202*/ OPC_MoveParent,
+/* 10203*/ OPC_MoveChild1,
+/* 10204*/ OPC_CheckValueType, MVT::i32,
+/* 10206*/ OPC_MoveParent,
+/* 10207*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10209*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SUBW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (sub:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), i32:{ *:[Other] }) - Complexity = 6
+ // Dst: (SUBW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10217*/ /*Scope*/ 20, /*->10238*/
+/* 10218*/ OPC_CheckOpcode, TARGET_VAL(ISD::MUL),
+/* 10221*/ OPC_RecordChild0, // #0 = $rs1
+/* 10222*/ OPC_RecordChild1, // #1 = $rs2
+/* 10223*/ OPC_MoveParent,
+/* 10224*/ OPC_MoveChild1,
+/* 10225*/ OPC_CheckValueType, MVT::i32,
+/* 10227*/ OPC_MoveParent,
+/* 10228*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10230*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } (mul:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), i32:{ *:[Other] }) - Complexity = 6
+ // Dst: (MULW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10238*/ /*Scope*/ 18, /*->10257*/
+/* 10239*/ OPC_CheckOpcode, TARGET_VAL(RISCVISD::FMV_X_ANYEXTW_RV64),
+/* 10242*/ OPC_RecordChild0, // #0 = $src
+/* 10243*/ OPC_MoveParent,
+/* 10244*/ OPC_MoveChild1,
+/* 10245*/ OPC_CheckValueType, MVT::i32,
+/* 10247*/ OPC_MoveParent,
+/* 10248*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10250*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i64, 1/*#Ops*/, 0,
+ // Src: (sext_inreg:{ *:[i64] } (riscv_fmv_x_anyextw_rv64:{ *:[i64] } FPR32:{ *:[f32] }:$src), i32:{ *:[Other] }) - Complexity = 6
+ // Dst: (FMV_X_W:{ *:[i64] } FPR32:{ *:[f32] }:$src)
+/* 10257*/ 0, /*End of Scope*/
+/* 10258*/ /*Scope*/ 18, /*->10277*/
+/* 10259*/ OPC_RecordChild0, // #0 = $rs1
+/* 10260*/ OPC_MoveChild1,
+/* 10261*/ OPC_CheckValueType, MVT::i32,
+/* 10263*/ OPC_MoveParent,
+/* 10264*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10266*/ OPC_EmitInteger, MVT::i64, 0,
+/* 10269*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDIW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }) - Complexity = 3
+ // Dst: (ADDIW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 10277*/ 0, /*End of Scope*/
+/* 10278*/ /*SwitchOpcode*/ 124, TARGET_VAL(ISD::ADD),// ->10405
+/* 10281*/ OPC_RecordChild0, // #0 = $Rs
+/* 10282*/ OPC_RecordChild1, // #1 = $imm12
+/* 10283*/ OPC_Scope, 81, /*->10366*/ // 3 children in Scope
+/* 10285*/ OPC_MoveChild1,
+/* 10286*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 10289*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 10291*/ OPC_MoveParent,
+/* 10292*/ OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->10351
+/* 10295*/ OPC_Scope, 15, /*->10312*/ // 4 children in Scope
+/* 10297*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10299*/ OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrFI:$Rs #2
+/* 10302*/ OPC_EmitConvertToTarget, 1,
+/* 10304*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (add:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 13
+ // Dst: (ADDI:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 10312*/ /*Scope*/ 13, /*->10326*/
+/* 10313*/ OPC_CheckComplexPat, /*CP*/0, /*#*/0, // SelectAddrFI:$Rs #2
+/* 10316*/ OPC_EmitConvertToTarget, 1,
+/* 10318*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (add:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 13
+ // Dst: (ADDI:{ *:[i32] } AddrFI:{ *:[i32] }:$Rs, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 10326*/ /*Scope*/ 12, /*->10339*/
+/* 10327*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10329*/ OPC_EmitConvertToTarget, 1,
+/* 10331*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ADDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 10339*/ /*Scope*/ 10, /*->10350*/
+/* 10340*/ OPC_EmitConvertToTarget, 1,
+/* 10342*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ADDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 10350*/ 0, /*End of Scope*/
+/* 10351*/ /*SwitchType*/ 12, MVT::i64,// ->10365
+/* 10353*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10355*/ OPC_EmitConvertToTarget, 1,
+/* 10357*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (ADDI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 10365*/ 0, // EndSwitchType
+/* 10366*/ /*Scope*/ 24, /*->10391*/
+/* 10367*/ OPC_CheckType, MVT::i32,
+/* 10369*/ OPC_Scope, 10, /*->10381*/ // 2 children in Scope
+/* 10371*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10373*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADD), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (ADD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 10381*/ /*Scope*/ 8, /*->10390*/
+/* 10382*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADD), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (ADD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 10390*/ 0, /*End of Scope*/
+/* 10391*/ /*Scope*/ 12, /*->10404*/
+/* 10392*/ OPC_CheckType, MVT::i64,
+/* 10394*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10396*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADD), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (ADD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10404*/ 0, /*End of Scope*/
+/* 10405*/ /*SwitchOpcode*/ 7|128,2/*263*/, TARGET_VAL(ISD::ATOMIC_FENCE),// ->10672
+/* 10409*/ OPC_RecordNode, // #0 = 'atomic_fence' chained node
+/* 10410*/ OPC_Scope, 70, /*->10482*/ // 4 children in Scope
+/* 10412*/ OPC_CheckChild1Integer, 4,
+/* 10414*/ OPC_Scope, 41, /*->10457*/ // 2 children in Scope
+/* 10416*/ OPC_CheckChild1Type, MVT::i32,
+/* 10418*/ OPC_MoveChild2,
+/* 10419*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10422*/ OPC_MoveParent,
+/* 10423*/ OPC_Scope, 16, /*->10441*/ // 2 children in Scope
+/* 10425*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10427*/ OPC_EmitMergeInputChains1_0,
+/* 10428*/ OPC_EmitInteger, MVT::i32, 2,
+/* 10431*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10434*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 4:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 2:{ *:[i32] }, 3:{ *:[i32] })
+/* 10441*/ /*Scope*/ 14, /*->10456*/
+/* 10442*/ OPC_EmitMergeInputChains1_0,
+/* 10443*/ OPC_EmitInteger, MVT::i32, 2,
+/* 10446*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10449*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 4:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 2:{ *:[i32] }, 3:{ *:[i32] })
+/* 10456*/ 0, /*End of Scope*/
+/* 10457*/ /*Scope*/ 23, /*->10481*/
+/* 10458*/ OPC_CheckChild1Type, MVT::i64,
+/* 10460*/ OPC_MoveChild2,
+/* 10461*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10464*/ OPC_MoveParent,
+/* 10465*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10467*/ OPC_EmitMergeInputChains1_0,
+/* 10468*/ OPC_EmitInteger, MVT::i64, 2,
+/* 10471*/ OPC_EmitInteger, MVT::i64, 3,
+/* 10474*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 4:{ *:[i64] }, (timm:{ *:[i64] })) - Complexity = 11
+ // Dst: (FENCE 2:{ *:[i64] }, 3:{ *:[i64] })
+/* 10481*/ 0, /*End of Scope*/
+/* 10482*/ /*Scope*/ 70, /*->10553*/
+/* 10483*/ OPC_CheckChild1Integer, 5,
+/* 10485*/ OPC_Scope, 41, /*->10528*/ // 2 children in Scope
+/* 10487*/ OPC_CheckChild1Type, MVT::i32,
+/* 10489*/ OPC_MoveChild2,
+/* 10490*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10493*/ OPC_MoveParent,
+/* 10494*/ OPC_Scope, 16, /*->10512*/ // 2 children in Scope
+/* 10496*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10498*/ OPC_EmitMergeInputChains1_0,
+/* 10499*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10502*/ OPC_EmitInteger, MVT::i32, 1,
+/* 10505*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 5:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i32] }, 1:{ *:[i32] })
+/* 10512*/ /*Scope*/ 14, /*->10527*/
+/* 10513*/ OPC_EmitMergeInputChains1_0,
+/* 10514*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10517*/ OPC_EmitInteger, MVT::i32, 1,
+/* 10520*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 5:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i32] }, 1:{ *:[i32] })
+/* 10527*/ 0, /*End of Scope*/
+/* 10528*/ /*Scope*/ 23, /*->10552*/
+/* 10529*/ OPC_CheckChild1Type, MVT::i64,
+/* 10531*/ OPC_MoveChild2,
+/* 10532*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10535*/ OPC_MoveParent,
+/* 10536*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10538*/ OPC_EmitMergeInputChains1_0,
+/* 10539*/ OPC_EmitInteger, MVT::i64, 3,
+/* 10542*/ OPC_EmitInteger, MVT::i64, 1,
+/* 10545*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 5:{ *:[i64] }, (timm:{ *:[i64] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i64] }, 1:{ *:[i64] })
+/* 10552*/ 0, /*End of Scope*/
+/* 10553*/ /*Scope*/ 46, /*->10600*/
+/* 10554*/ OPC_CheckChild1Integer, 6,
+/* 10556*/ OPC_Scope, 25, /*->10583*/ // 2 children in Scope
+/* 10558*/ OPC_CheckChild1Type, MVT::i32,
+/* 10560*/ OPC_MoveChild2,
+/* 10561*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10564*/ OPC_MoveParent,
+/* 10565*/ OPC_Scope, 8, /*->10575*/ // 2 children in Scope
+/* 10567*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10569*/ OPC_EmitMergeInputChains1_0,
+/* 10570*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE_TSO), 0|OPFL_Chain,
+ 0/*#Ops*/,
+ // Src: (atomic_fence 6:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE_TSO)
+/* 10575*/ /*Scope*/ 6, /*->10582*/
+/* 10576*/ OPC_EmitMergeInputChains1_0,
+/* 10577*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE_TSO), 0|OPFL_Chain,
+ 0/*#Ops*/,
+ // Src: (atomic_fence 6:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE_TSO)
+/* 10582*/ 0, /*End of Scope*/
+/* 10583*/ /*Scope*/ 15, /*->10599*/
+/* 10584*/ OPC_CheckChild1Type, MVT::i64,
+/* 10586*/ OPC_MoveChild2,
+/* 10587*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10590*/ OPC_MoveParent,
+/* 10591*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10593*/ OPC_EmitMergeInputChains1_0,
+/* 10594*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE_TSO), 0|OPFL_Chain,
+ 0/*#Ops*/,
+ // Src: (atomic_fence 6:{ *:[i64] }, (timm:{ *:[i64] })) - Complexity = 11
+ // Dst: (FENCE_TSO)
+/* 10599*/ 0, /*End of Scope*/
+/* 10600*/ /*Scope*/ 70, /*->10671*/
+/* 10601*/ OPC_CheckChild1Integer, 7,
+/* 10603*/ OPC_Scope, 41, /*->10646*/ // 2 children in Scope
+/* 10605*/ OPC_CheckChild1Type, MVT::i32,
+/* 10607*/ OPC_MoveChild2,
+/* 10608*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10611*/ OPC_MoveParent,
+/* 10612*/ OPC_Scope, 16, /*->10630*/ // 2 children in Scope
+/* 10614*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10616*/ OPC_EmitMergeInputChains1_0,
+/* 10617*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10620*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10623*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 7:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i32] }, 3:{ *:[i32] })
+/* 10630*/ /*Scope*/ 14, /*->10645*/
+/* 10631*/ OPC_EmitMergeInputChains1_0,
+/* 10632*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10635*/ OPC_EmitInteger, MVT::i32, 3,
+/* 10638*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 7:{ *:[i32] }, (timm:{ *:[i32] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i32] }, 3:{ *:[i32] })
+/* 10645*/ 0, /*End of Scope*/
+/* 10646*/ /*Scope*/ 23, /*->10670*/
+/* 10647*/ OPC_CheckChild1Type, MVT::i64,
+/* 10649*/ OPC_MoveChild2,
+/* 10650*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10653*/ OPC_MoveParent,
+/* 10654*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10656*/ OPC_EmitMergeInputChains1_0,
+/* 10657*/ OPC_EmitInteger, MVT::i64, 3,
+/* 10660*/ OPC_EmitInteger, MVT::i64, 3,
+/* 10663*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::FENCE), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (atomic_fence 7:{ *:[i64] }, (timm:{ *:[i64] })) - Complexity = 11
+ // Dst: (FENCE 3:{ *:[i64] }, 3:{ *:[i64] })
+/* 10670*/ 0, /*End of Scope*/
+/* 10671*/ 0, /*End of Scope*/
+/* 10672*/ /*SwitchOpcode*/ 17|128,1/*145*/, TARGET_VAL(ISD::SREM),// ->10821
+/* 10676*/ OPC_Scope, 99, /*->10777*/ // 2 children in Scope
+/* 10678*/ OPC_MoveChild0,
+/* 10679*/ OPC_SwitchOpcode /*2 cases */, 45, TARGET_VAL(ISD::AssertSext),// ->10728
+/* 10683*/ OPC_RecordChild0, // #0 = $rs1
+/* 10684*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 10686*/ OPC_MoveParent,
+/* 10687*/ OPC_MoveChild1,
+/* 10688*/ OPC_SwitchOpcode /*2 cases */, 16, TARGET_VAL(ISD::AssertSext),// ->10708
+/* 10692*/ OPC_RecordChild0, // #1 = $rs2
+/* 10693*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 10695*/ OPC_MoveParent,
+/* 10696*/ OPC_CheckType, MVT::i64,
+/* 10698*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10700*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i64] } (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertsexti32>>, (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertsexti32>>) - Complexity = 11
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10708*/ /*SwitchOpcode*/ 16, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10727
+/* 10711*/ OPC_RecordChild0, // #1 = $rs2
+/* 10712*/ OPC_MoveChild1,
+/* 10713*/ OPC_CheckValueType, MVT::i32,
+/* 10715*/ OPC_MoveParent,
+/* 10716*/ OPC_MoveParent,
+/* 10717*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10719*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i64] } (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertsexti32>>, (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs2, i32:{ *:[Other] })) - Complexity = 10
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10727*/ 0, // EndSwitchOpcode
+/* 10728*/ /*SwitchOpcode*/ 45, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10776
+/* 10731*/ OPC_RecordChild0, // #0 = $rs1
+/* 10732*/ OPC_MoveChild1,
+/* 10733*/ OPC_CheckValueType, MVT::i32,
+/* 10735*/ OPC_MoveParent,
+/* 10736*/ OPC_MoveParent,
+/* 10737*/ OPC_MoveChild1,
+/* 10738*/ OPC_SwitchOpcode /*2 cases */, 14, TARGET_VAL(ISD::AssertSext),// ->10756
+/* 10742*/ OPC_RecordChild0, // #1 = $rs2
+/* 10743*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 10745*/ OPC_MoveParent,
+/* 10746*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10748*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }), (assertsext:{ *:[i64] } GPR:{ *:[i64] }:$rs2)<<P:Predicate_assertsexti32>>) - Complexity = 10
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10756*/ /*SwitchOpcode*/ 16, TARGET_VAL(ISD::SIGN_EXTEND_INREG),// ->10775
+/* 10759*/ OPC_RecordChild0, // #1 = $rs2
+/* 10760*/ OPC_MoveChild1,
+/* 10761*/ OPC_CheckValueType, MVT::i32,
+/* 10763*/ OPC_MoveParent,
+/* 10764*/ OPC_MoveParent,
+/* 10765*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10767*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }), (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs2, i32:{ *:[Other] })) - Complexity = 9
+ // Dst: (REMW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10775*/ 0, // EndSwitchOpcode
+/* 10776*/ 0, // EndSwitchOpcode
+/* 10777*/ /*Scope*/ 42, /*->10820*/
+/* 10778*/ OPC_RecordChild0, // #0 = $rs1
+/* 10779*/ OPC_RecordChild1, // #1 = $rs2
+/* 10780*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->10807
+/* 10783*/ OPC_Scope, 10, /*->10795*/ // 2 children in Scope
+/* 10785*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10787*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REM), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REM:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 10795*/ /*Scope*/ 10, /*->10806*/
+/* 10796*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 10798*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REM), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REM:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 10806*/ 0, /*End of Scope*/
+/* 10807*/ /*SwitchType*/ 10, MVT::i64,// ->10819
+/* 10809*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 10811*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REM), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srem:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (REM:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 10819*/ 0, // EndSwitchType
+/* 10820*/ 0, /*End of Scope*/
+/* 10821*/ /*SwitchOpcode*/ 12|128,6/*780*/, TARGET_VAL(ISD::INTRINSIC_W_CHAIN),// ->11605
+/* 10825*/ OPC_RecordNode, // #0 = 'intrinsic_w_chain' chained node
+/* 10826*/ OPC_Scope, 50, /*->10878*/ // 18 children in Scope
+/* 10828*/ OPC_CheckChild1Integer, 37|128,47/*6053*/,
+/* 10831*/ OPC_RecordChild2, // #1 = $addr
+/* 10832*/ OPC_CheckChild2Type, MVT::i32,
+/* 10834*/ OPC_RecordChild3, // #2 = $incr
+/* 10835*/ OPC_RecordChild4, // #3 = $mask
+/* 10836*/ OPC_RecordChild5, // #4 = $ordering
+/* 10837*/ OPC_MoveChild5,
+/* 10838*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10841*/ OPC_MoveParent,
+/* 10842*/ OPC_Scope, 16, /*->10860*/ // 2 children in Scope
+/* 10844*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10846*/ OPC_EmitMergeInputChains1_0,
+/* 10847*/ OPC_EmitConvertToTarget, 4,
+/* 10849*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicSwap32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6053:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicSwap32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10860*/ /*Scope*/ 16, /*->10877*/
+/* 10861*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 10863*/ OPC_EmitMergeInputChains1_0,
+/* 10864*/ OPC_EmitConvertToTarget, 4,
+/* 10866*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicSwap32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6053:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicSwap32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10877*/ 0, /*End of Scope*/
+/* 10878*/ /*Scope*/ 50, /*->10929*/
+/* 10879*/ OPC_CheckChild1Integer, 23|128,47/*6039*/,
+/* 10882*/ OPC_RecordChild2, // #1 = $addr
+/* 10883*/ OPC_CheckChild2Type, MVT::i32,
+/* 10885*/ OPC_RecordChild3, // #2 = $incr
+/* 10886*/ OPC_RecordChild4, // #3 = $mask
+/* 10887*/ OPC_RecordChild5, // #4 = $ordering
+/* 10888*/ OPC_MoveChild5,
+/* 10889*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10892*/ OPC_MoveParent,
+/* 10893*/ OPC_Scope, 16, /*->10911*/ // 2 children in Scope
+/* 10895*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10897*/ OPC_EmitMergeInputChains1_0,
+/* 10898*/ OPC_EmitConvertToTarget, 4,
+/* 10900*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadAdd32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6039:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadAdd32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10911*/ /*Scope*/ 16, /*->10928*/
+/* 10912*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 10914*/ OPC_EmitMergeInputChains1_0,
+/* 10915*/ OPC_EmitConvertToTarget, 4,
+/* 10917*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadAdd32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6039:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadAdd32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10928*/ 0, /*End of Scope*/
+/* 10929*/ /*Scope*/ 50, /*->10980*/
+/* 10930*/ OPC_CheckChild1Integer, 31|128,47/*6047*/,
+/* 10933*/ OPC_RecordChild2, // #1 = $addr
+/* 10934*/ OPC_CheckChild2Type, MVT::i32,
+/* 10936*/ OPC_RecordChild3, // #2 = $incr
+/* 10937*/ OPC_RecordChild4, // #3 = $mask
+/* 10938*/ OPC_RecordChild5, // #4 = $ordering
+/* 10939*/ OPC_MoveChild5,
+/* 10940*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10943*/ OPC_MoveParent,
+/* 10944*/ OPC_Scope, 16, /*->10962*/ // 2 children in Scope
+/* 10946*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10948*/ OPC_EmitMergeInputChains1_0,
+/* 10949*/ OPC_EmitConvertToTarget, 4,
+/* 10951*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadSub32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6047:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadSub32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10962*/ /*Scope*/ 16, /*->10979*/
+/* 10963*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 10965*/ OPC_EmitMergeInputChains1_0,
+/* 10966*/ OPC_EmitConvertToTarget, 4,
+/* 10968*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadSub32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6047:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadSub32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 10979*/ 0, /*End of Scope*/
+/* 10980*/ /*Scope*/ 50, /*->11031*/
+/* 10981*/ OPC_CheckChild1Integer, 29|128,47/*6045*/,
+/* 10984*/ OPC_RecordChild2, // #1 = $addr
+/* 10985*/ OPC_CheckChild2Type, MVT::i32,
+/* 10987*/ OPC_RecordChild3, // #2 = $incr
+/* 10988*/ OPC_RecordChild4, // #3 = $mask
+/* 10989*/ OPC_RecordChild5, // #4 = $ordering
+/* 10990*/ OPC_MoveChild5,
+/* 10991*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 10994*/ OPC_MoveParent,
+/* 10995*/ OPC_Scope, 16, /*->11013*/ // 2 children in Scope
+/* 10997*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 10999*/ OPC_EmitMergeInputChains1_0,
+/* 11000*/ OPC_EmitConvertToTarget, 4,
+/* 11002*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadNand32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6045:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11013*/ /*Scope*/ 16, /*->11030*/
+/* 11014*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11016*/ OPC_EmitMergeInputChains1_0,
+/* 11017*/ OPC_EmitConvertToTarget, 4,
+/* 11019*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadNand32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6045:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11030*/ 0, /*End of Scope*/
+/* 11031*/ /*Scope*/ 57, /*->11089*/
+/* 11032*/ OPC_CheckChild1Integer, 25|128,47/*6041*/,
+/* 11035*/ OPC_RecordChild2, // #1 = $addr
+/* 11036*/ OPC_CheckChild2Type, MVT::i32,
+/* 11038*/ OPC_RecordChild3, // #2 = $incr
+/* 11039*/ OPC_RecordChild4, // #3 = $mask
+/* 11040*/ OPC_RecordChild5, // #4 = $shiftamt
+/* 11041*/ OPC_RecordChild6, // #5 = $ordering
+/* 11042*/ OPC_MoveChild6,
+/* 11043*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11046*/ OPC_MoveParent,
+/* 11047*/ OPC_Scope, 19, /*->11068*/ // 2 children in Scope
+/* 11049*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11051*/ OPC_EmitMergeInputChains1_0,
+/* 11052*/ OPC_EmitConvertToTarget, 5,
+/* 11054*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6041:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMax32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (imm:{ *:[i32] }):$ordering)
+/* 11068*/ /*Scope*/ 19, /*->11088*/
+/* 11069*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11071*/ OPC_EmitMergeInputChains1_0,
+/* 11072*/ OPC_EmitConvertToTarget, 5,
+/* 11074*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6041:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMax32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (imm:{ *:[i32] }):$ordering)
+/* 11088*/ 0, /*End of Scope*/
+/* 11089*/ /*Scope*/ 57, /*->11147*/
+/* 11090*/ OPC_CheckChild1Integer, 27|128,47/*6043*/,
+/* 11093*/ OPC_RecordChild2, // #1 = $addr
+/* 11094*/ OPC_CheckChild2Type, MVT::i32,
+/* 11096*/ OPC_RecordChild3, // #2 = $incr
+/* 11097*/ OPC_RecordChild4, // #3 = $mask
+/* 11098*/ OPC_RecordChild5, // #4 = $shiftamt
+/* 11099*/ OPC_RecordChild6, // #5 = $ordering
+/* 11100*/ OPC_MoveChild6,
+/* 11101*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11104*/ OPC_MoveParent,
+/* 11105*/ OPC_Scope, 19, /*->11126*/ // 2 children in Scope
+/* 11107*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11109*/ OPC_EmitMergeInputChains1_0,
+/* 11110*/ OPC_EmitConvertToTarget, 5,
+/* 11112*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6043:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMin32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (imm:{ *:[i32] }):$ordering)
+/* 11126*/ /*Scope*/ 19, /*->11146*/
+/* 11127*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11129*/ OPC_EmitMergeInputChains1_0,
+/* 11130*/ OPC_EmitConvertToTarget, 5,
+/* 11132*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6043:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMin32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, GPR:{ *:[i32] }:$shiftamt, (imm:{ *:[i32] }):$ordering)
+/* 11146*/ 0, /*End of Scope*/
+/* 11147*/ /*Scope*/ 54, /*->11202*/
+/* 11148*/ OPC_CheckChild1Integer, 33|128,47/*6049*/,
+/* 11151*/ OPC_RecordChild2, // #1 = $addr
+/* 11152*/ OPC_CheckChild2Type, MVT::i32,
+/* 11154*/ OPC_RecordChild3, // #2 = $incr
+/* 11155*/ OPC_RecordChild4, // #3 = $mask
+/* 11156*/ OPC_RecordChild5, // #4 = $ordering
+/* 11157*/ OPC_MoveChild5,
+/* 11158*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11161*/ OPC_MoveParent,
+/* 11162*/ OPC_Scope, 18, /*->11182*/ // 2 children in Scope
+/* 11164*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11166*/ OPC_EmitMergeInputChains1_0,
+/* 11167*/ OPC_EmitConvertToTarget, 4,
+/* 11169*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6049:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMax32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11182*/ /*Scope*/ 18, /*->11201*/
+/* 11183*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11185*/ OPC_EmitMergeInputChains1_0,
+/* 11186*/ OPC_EmitConvertToTarget, 4,
+/* 11188*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6049:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMax32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11201*/ 0, /*End of Scope*/
+/* 11202*/ /*Scope*/ 54, /*->11257*/
+/* 11203*/ OPC_CheckChild1Integer, 35|128,47/*6051*/,
+/* 11206*/ OPC_RecordChild2, // #1 = $addr
+/* 11207*/ OPC_CheckChild2Type, MVT::i32,
+/* 11209*/ OPC_RecordChild3, // #2 = $incr
+/* 11210*/ OPC_RecordChild4, // #3 = $mask
+/* 11211*/ OPC_RecordChild5, // #4 = $ordering
+/* 11212*/ OPC_MoveChild5,
+/* 11213*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11216*/ OPC_MoveParent,
+/* 11217*/ OPC_Scope, 18, /*->11237*/ // 2 children in Scope
+/* 11219*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11221*/ OPC_EmitMergeInputChains1_0,
+/* 11222*/ OPC_EmitConvertToTarget, 4,
+/* 11224*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6051:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMin32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11237*/ /*Scope*/ 18, /*->11256*/
+/* 11238*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11240*/ OPC_EmitMergeInputChains1_0,
+/* 11241*/ OPC_EmitConvertToTarget, 4,
+/* 11243*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i32, MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6051:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMin32:{ *:[i32] }:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11256*/ 0, /*End of Scope*/
+/* 11257*/ /*Scope*/ 53, /*->11311*/
+/* 11258*/ OPC_CheckChild1Integer, 39|128,47/*6055*/,
+/* 11261*/ OPC_RecordChild2, // #1 = $addr
+/* 11262*/ OPC_CheckChild2Type, MVT::i32,
+/* 11264*/ OPC_RecordChild3, // #2 = $cmpval
+/* 11265*/ OPC_RecordChild4, // #3 = $newval
+/* 11266*/ OPC_RecordChild5, // #4 = $mask
+/* 11267*/ OPC_RecordChild6, // #5 = $ordering
+/* 11268*/ OPC_MoveChild6,
+/* 11269*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11272*/ OPC_MoveParent,
+/* 11273*/ OPC_Scope, 17, /*->11292*/ // 2 children in Scope
+/* 11275*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11277*/ OPC_EmitMergeInputChains1_0,
+/* 11278*/ OPC_EmitConvertToTarget, 5,
+/* 11280*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedCmpXchg32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6055:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmpval, GPR:{ *:[i32] }:$newval, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmpval, GPR:{ *:[i32] }:$newval, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11292*/ /*Scope*/ 17, /*->11310*/
+/* 11293*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 11295*/ OPC_EmitMergeInputChains1_0,
+/* 11296*/ OPC_EmitConvertToTarget, 5,
+/* 11298*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedCmpXchg32), 0|OPFL_Chain,
+ MVT::i32, MVT::i32, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i32] } 6055:{ *:[iPTR] }, GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmpval, GPR:{ *:[i32] }:$newval, GPR:{ *:[i32] }:$mask, (timm:{ *:[i32] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmpval, GPR:{ *:[i32] }:$newval, GPR:{ *:[i32] }:$mask, (imm:{ *:[i32] }):$ordering)
+/* 11310*/ 0, /*End of Scope*/
+/* 11311*/ /*Scope*/ 30, /*->11342*/
+/* 11312*/ OPC_CheckChild1Integer, 38|128,47/*6054*/,
+/* 11315*/ OPC_RecordChild2, // #1 = $addr
+/* 11316*/ OPC_CheckChild2Type, MVT::i64,
+/* 11318*/ OPC_RecordChild3, // #2 = $incr
+/* 11319*/ OPC_RecordChild4, // #3 = $mask
+/* 11320*/ OPC_RecordChild5, // #4 = $ordering
+/* 11321*/ OPC_MoveChild5,
+/* 11322*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11325*/ OPC_MoveParent,
+/* 11326*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11328*/ OPC_EmitMergeInputChains1_0,
+/* 11329*/ OPC_EmitConvertToTarget, 4,
+/* 11331*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicSwap32), 0|OPFL_Chain,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6054:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicSwap32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11342*/ /*Scope*/ 30, /*->11373*/
+/* 11343*/ OPC_CheckChild1Integer, 24|128,47/*6040*/,
+/* 11346*/ OPC_RecordChild2, // #1 = $addr
+/* 11347*/ OPC_CheckChild2Type, MVT::i64,
+/* 11349*/ OPC_RecordChild3, // #2 = $incr
+/* 11350*/ OPC_RecordChild4, // #3 = $mask
+/* 11351*/ OPC_RecordChild5, // #4 = $ordering
+/* 11352*/ OPC_MoveChild5,
+/* 11353*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11356*/ OPC_MoveParent,
+/* 11357*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11359*/ OPC_EmitMergeInputChains1_0,
+/* 11360*/ OPC_EmitConvertToTarget, 4,
+/* 11362*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadAdd32), 0|OPFL_Chain,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6040:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadAdd32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11373*/ /*Scope*/ 30, /*->11404*/
+/* 11374*/ OPC_CheckChild1Integer, 32|128,47/*6048*/,
+/* 11377*/ OPC_RecordChild2, // #1 = $addr
+/* 11378*/ OPC_CheckChild2Type, MVT::i64,
+/* 11380*/ OPC_RecordChild3, // #2 = $incr
+/* 11381*/ OPC_RecordChild4, // #3 = $mask
+/* 11382*/ OPC_RecordChild5, // #4 = $ordering
+/* 11383*/ OPC_MoveChild5,
+/* 11384*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11387*/ OPC_MoveParent,
+/* 11388*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11390*/ OPC_EmitMergeInputChains1_0,
+/* 11391*/ OPC_EmitConvertToTarget, 4,
+/* 11393*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadSub32), 0|OPFL_Chain,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6048:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadSub32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11404*/ /*Scope*/ 30, /*->11435*/
+/* 11405*/ OPC_CheckChild1Integer, 30|128,47/*6046*/,
+/* 11408*/ OPC_RecordChild2, // #1 = $addr
+/* 11409*/ OPC_CheckChild2Type, MVT::i64,
+/* 11411*/ OPC_RecordChild3, // #2 = $incr
+/* 11412*/ OPC_RecordChild4, // #3 = $mask
+/* 11413*/ OPC_RecordChild5, // #4 = $ordering
+/* 11414*/ OPC_MoveChild5,
+/* 11415*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11418*/ OPC_MoveParent,
+/* 11419*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11421*/ OPC_EmitMergeInputChains1_0,
+/* 11422*/ OPC_EmitConvertToTarget, 4,
+/* 11424*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadNand32), 0|OPFL_Chain,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6046:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11435*/ /*Scope*/ 34, /*->11470*/
+/* 11436*/ OPC_CheckChild1Integer, 26|128,47/*6042*/,
+/* 11439*/ OPC_RecordChild2, // #1 = $addr
+/* 11440*/ OPC_CheckChild2Type, MVT::i64,
+/* 11442*/ OPC_RecordChild3, // #2 = $incr
+/* 11443*/ OPC_RecordChild4, // #3 = $mask
+/* 11444*/ OPC_RecordChild5, // #4 = $shiftamt
+/* 11445*/ OPC_RecordChild6, // #5 = $ordering
+/* 11446*/ OPC_MoveChild6,
+/* 11447*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11450*/ OPC_MoveParent,
+/* 11451*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11453*/ OPC_EmitMergeInputChains1_0,
+/* 11454*/ OPC_EmitConvertToTarget, 5,
+/* 11456*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i64, MVT::i64, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6042:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, GPR:{ *:[i64] }:$shiftamt, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMax32:{ *:[i64] }:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, GPR:{ *:[i64] }:$shiftamt, (imm:{ *:[i64] }):$ordering)
+/* 11470*/ /*Scope*/ 34, /*->11505*/
+/* 11471*/ OPC_CheckChild1Integer, 28|128,47/*6044*/,
+/* 11474*/ OPC_RecordChild2, // #1 = $addr
+/* 11475*/ OPC_CheckChild2Type, MVT::i64,
+/* 11477*/ OPC_RecordChild3, // #2 = $incr
+/* 11478*/ OPC_RecordChild4, // #3 = $mask
+/* 11479*/ OPC_RecordChild5, // #4 = $shiftamt
+/* 11480*/ OPC_RecordChild6, // #5 = $ordering
+/* 11481*/ OPC_MoveChild6,
+/* 11482*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11485*/ OPC_MoveParent,
+/* 11486*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11488*/ OPC_EmitMergeInputChains1_0,
+/* 11489*/ OPC_EmitConvertToTarget, 5,
+/* 11491*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i64, MVT::i64, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6044:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, GPR:{ *:[i64] }:$shiftamt, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadMin32:{ *:[i64] }:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, GPR:{ *:[i64] }:$shiftamt, (imm:{ *:[i64] }):$ordering)
+/* 11505*/ /*Scope*/ 32, /*->11538*/
+/* 11506*/ OPC_CheckChild1Integer, 34|128,47/*6050*/,
+/* 11509*/ OPC_RecordChild2, // #1 = $addr
+/* 11510*/ OPC_CheckChild2Type, MVT::i64,
+/* 11512*/ OPC_RecordChild3, // #2 = $incr
+/* 11513*/ OPC_RecordChild4, // #3 = $mask
+/* 11514*/ OPC_RecordChild5, // #4 = $ordering
+/* 11515*/ OPC_MoveChild5,
+/* 11516*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11519*/ OPC_MoveParent,
+/* 11520*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11522*/ OPC_EmitMergeInputChains1_0,
+/* 11523*/ OPC_EmitConvertToTarget, 4,
+/* 11525*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMax32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i64, MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6050:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMax32:{ *:[i64] }:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11538*/ /*Scope*/ 32, /*->11571*/
+/* 11539*/ OPC_CheckChild1Integer, 36|128,47/*6052*/,
+/* 11542*/ OPC_RecordChild2, // #1 = $addr
+/* 11543*/ OPC_CheckChild2Type, MVT::i64,
+/* 11545*/ OPC_RecordChild3, // #2 = $incr
+/* 11546*/ OPC_RecordChild4, // #3 = $mask
+/* 11547*/ OPC_RecordChild5, // #4 = $ordering
+/* 11548*/ OPC_MoveChild5,
+/* 11549*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11552*/ OPC_MoveParent,
+/* 11553*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11555*/ OPC_EmitMergeInputChains1_0,
+/* 11556*/ OPC_EmitConvertToTarget, 4,
+/* 11558*/ OPC_MorphNodeTo, TARGET_VAL(RISCV::PseudoMaskedAtomicLoadUMin32), 0|OPFL_Chain,
+ 3/*#VTs*/, MVT::i64, MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 5,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6052:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedAtomicLoadUMin32:{ *:[i64] }:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11571*/ /*Scope*/ 32, /*->11604*/
+/* 11572*/ OPC_CheckChild1Integer, 40|128,47/*6056*/,
+/* 11575*/ OPC_RecordChild2, // #1 = $addr
+/* 11576*/ OPC_CheckChild2Type, MVT::i64,
+/* 11578*/ OPC_RecordChild3, // #2 = $cmpval
+/* 11579*/ OPC_RecordChild4, // #3 = $newval
+/* 11580*/ OPC_RecordChild5, // #4 = $mask
+/* 11581*/ OPC_RecordChild6, // #5 = $ordering
+/* 11582*/ OPC_MoveChild6,
+/* 11583*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 11586*/ OPC_MoveParent,
+/* 11587*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11589*/ OPC_EmitMergeInputChains1_0,
+/* 11590*/ OPC_EmitConvertToTarget, 5,
+/* 11592*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoMaskedCmpXchg32), 0|OPFL_Chain,
+ MVT::i64, MVT::i64, 5/*#Ops*/, 1, 2, 3, 4, 6,
+ // Src: (intrinsic_w_chain:{ *:[i64] } 6056:{ *:[iPTR] }, GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmpval, GPR:{ *:[i64] }:$newval, GPR:{ *:[i64] }:$mask, (timm:{ *:[i64] }):$ordering) - Complexity = 11
+ // Dst: (PseudoMaskedCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmpval, GPR:{ *:[i64] }:$newval, GPR:{ *:[i64] }:$mask, (imm:{ *:[i64] }):$ordering)
+/* 11604*/ 0, /*End of Scope*/
+/* 11605*/ /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::SHL),// ->11772
+/* 11609*/ OPC_RecordChild0, // #0 = $rs1
+/* 11610*/ OPC_Scope, 56, /*->11668*/ // 2 children in Scope
+/* 11612*/ OPC_MoveChild1,
+/* 11613*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND),
+/* 11616*/ OPC_RecordChild0, // #1 = $rs2
+/* 11617*/ OPC_MoveChild1,
+/* 11618*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 11621*/ OPC_CheckPredicate, 16, // Predicate_immbottomxlenset
+/* 11623*/ OPC_MoveParent,
+/* 11624*/ OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->11652
+/* 11627*/ OPC_MoveParent,
+/* 11628*/ OPC_CheckType, MVT::i32,
+/* 11630*/ OPC_Scope, 10, /*->11642*/ // 2 children in Scope
+/* 11632*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11634*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11642*/ /*Scope*/ 8, /*->11651*/
+/* 11643*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11651*/ 0, /*End of Scope*/
+/* 11652*/ /*SwitchType*/ 13, MVT::i64,// ->11667
+/* 11654*/ OPC_MoveParent,
+/* 11655*/ OPC_CheckType, MVT::i64,
+/* 11657*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11659*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SLL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 11667*/ 0, // EndSwitchType
+/* 11668*/ /*Scope*/ 102, /*->11771*/
+/* 11669*/ OPC_RecordChild1, // #1 = $shamt
+/* 11670*/ OPC_Scope, 56, /*->11728*/ // 3 children in Scope
+/* 11672*/ OPC_MoveChild1,
+/* 11673*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 11676*/ OPC_CheckPredicate, 17, // Predicate_uimmlog2xlen
+/* 11678*/ OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->11710
+/* 11681*/ OPC_MoveParent,
+/* 11682*/ OPC_CheckType, MVT::i32,
+/* 11684*/ OPC_Scope, 12, /*->11698*/ // 2 children in Scope
+/* 11686*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11688*/ OPC_EmitConvertToTarget, 1,
+/* 11690*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11698*/ /*Scope*/ 10, /*->11709*/
+/* 11699*/ OPC_EmitConvertToTarget, 1,
+/* 11701*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11709*/ 0, /*End of Scope*/
+/* 11710*/ /*SwitchType*/ 15, MVT::i64,// ->11727
+/* 11712*/ OPC_MoveParent,
+/* 11713*/ OPC_CheckType, MVT::i64,
+/* 11715*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11717*/ OPC_EmitConvertToTarget, 1,
+/* 11719*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SLLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11727*/ 0, // EndSwitchType
+/* 11728*/ /*Scope*/ 26, /*->11755*/
+/* 11729*/ OPC_CheckChild1Type, MVT::i32,
+/* 11731*/ OPC_CheckType, MVT::i32,
+/* 11733*/ OPC_Scope, 10, /*->11745*/ // 2 children in Scope
+/* 11735*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11737*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11745*/ /*Scope*/ 8, /*->11754*/
+/* 11746*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11754*/ 0, /*End of Scope*/
+/* 11755*/ /*Scope*/ 14, /*->11770*/
+/* 11756*/ OPC_CheckChild1Type, MVT::i64,
+/* 11758*/ OPC_CheckType, MVT::i64,
+/* 11760*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11762*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLL), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SLL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 11770*/ 0, /*End of Scope*/
+/* 11771*/ 0, /*End of Scope*/
+/* 11772*/ /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::SRL),// ->11939
+/* 11776*/ OPC_RecordChild0, // #0 = $rs1
+/* 11777*/ OPC_Scope, 56, /*->11835*/ // 2 children in Scope
+/* 11779*/ OPC_MoveChild1,
+/* 11780*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND),
+/* 11783*/ OPC_RecordChild0, // #1 = $rs2
+/* 11784*/ OPC_MoveChild1,
+/* 11785*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 11788*/ OPC_CheckPredicate, 16, // Predicate_immbottomxlenset
+/* 11790*/ OPC_MoveParent,
+/* 11791*/ OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->11819
+/* 11794*/ OPC_MoveParent,
+/* 11795*/ OPC_CheckType, MVT::i32,
+/* 11797*/ OPC_Scope, 10, /*->11809*/ // 2 children in Scope
+/* 11799*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11801*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11809*/ /*Scope*/ 8, /*->11818*/
+/* 11810*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11818*/ 0, /*End of Scope*/
+/* 11819*/ /*SwitchType*/ 13, MVT::i64,// ->11834
+/* 11821*/ OPC_MoveParent,
+/* 11822*/ OPC_CheckType, MVT::i64,
+/* 11824*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11826*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 11834*/ 0, // EndSwitchType
+/* 11835*/ /*Scope*/ 102, /*->11938*/
+/* 11836*/ OPC_RecordChild1, // #1 = $shamt
+/* 11837*/ OPC_Scope, 56, /*->11895*/ // 3 children in Scope
+/* 11839*/ OPC_MoveChild1,
+/* 11840*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 11843*/ OPC_CheckPredicate, 17, // Predicate_uimmlog2xlen
+/* 11845*/ OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->11877
+/* 11848*/ OPC_MoveParent,
+/* 11849*/ OPC_CheckType, MVT::i32,
+/* 11851*/ OPC_Scope, 12, /*->11865*/ // 2 children in Scope
+/* 11853*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11855*/ OPC_EmitConvertToTarget, 1,
+/* 11857*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11865*/ /*Scope*/ 10, /*->11876*/
+/* 11866*/ OPC_EmitConvertToTarget, 1,
+/* 11868*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11876*/ 0, /*End of Scope*/
+/* 11877*/ /*SwitchType*/ 15, MVT::i64,// ->11894
+/* 11879*/ OPC_MoveParent,
+/* 11880*/ OPC_CheckType, MVT::i64,
+/* 11882*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11884*/ OPC_EmitConvertToTarget, 1,
+/* 11886*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 11894*/ 0, // EndSwitchType
+/* 11895*/ /*Scope*/ 26, /*->11922*/
+/* 11896*/ OPC_CheckChild1Type, MVT::i32,
+/* 11898*/ OPC_CheckType, MVT::i32,
+/* 11900*/ OPC_Scope, 10, /*->11912*/ // 2 children in Scope
+/* 11902*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11904*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11912*/ /*Scope*/ 8, /*->11921*/
+/* 11913*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11921*/ 0, /*End of Scope*/
+/* 11922*/ /*Scope*/ 14, /*->11937*/
+/* 11923*/ OPC_CheckChild1Type, MVT::i64,
+/* 11925*/ OPC_CheckType, MVT::i64,
+/* 11927*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11929*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRL), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SRL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 11937*/ 0, /*End of Scope*/
+/* 11938*/ 0, /*End of Scope*/
+/* 11939*/ /*SwitchOpcode*/ 69|128,1/*197*/, TARGET_VAL(ISD::SRA),// ->12140
+/* 11943*/ OPC_Scope, 57, /*->12002*/ // 3 children in Scope
+/* 11945*/ OPC_RecordChild0, // #0 = $rs1
+/* 11946*/ OPC_MoveChild1,
+/* 11947*/ OPC_CheckOpcode, TARGET_VAL(ISD::AND),
+/* 11950*/ OPC_RecordChild0, // #1 = $rs2
+/* 11951*/ OPC_MoveChild1,
+/* 11952*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 11955*/ OPC_CheckPredicate, 16, // Predicate_immbottomxlenset
+/* 11957*/ OPC_MoveParent,
+/* 11958*/ OPC_SwitchType /*2 cases */, 25, MVT::i32,// ->11986
+/* 11961*/ OPC_MoveParent,
+/* 11962*/ OPC_CheckType, MVT::i32,
+/* 11964*/ OPC_Scope, 10, /*->11976*/ // 2 children in Scope
+/* 11966*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 11968*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11976*/ /*Scope*/ 8, /*->11985*/
+/* 11977*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 11985*/ 0, /*End of Scope*/
+/* 11986*/ /*SwitchType*/ 13, MVT::i64,// ->12001
+/* 11988*/ OPC_MoveParent,
+/* 11989*/ OPC_CheckType, MVT::i64,
+/* 11991*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 11993*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) - Complexity = 10
+ // Dst: (SRA:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 12001*/ 0, // EndSwitchType
+/* 12002*/ /*Scope*/ 32, /*->12035*/
+/* 12003*/ OPC_MoveChild0,
+/* 12004*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
+/* 12007*/ OPC_RecordChild0, // #0 = $rs1
+/* 12008*/ OPC_MoveChild1,
+/* 12009*/ OPC_CheckValueType, MVT::i32,
+/* 12011*/ OPC_MoveParent,
+/* 12012*/ OPC_MoveParent,
+/* 12013*/ OPC_RecordChild1, // #1 = $shamt
+/* 12014*/ OPC_MoveChild1,
+/* 12015*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 12018*/ OPC_CheckPredicate, 15, // Predicate_uimm5
+/* 12020*/ OPC_CheckType, MVT::i64,
+/* 12022*/ OPC_MoveParent,
+/* 12023*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12025*/ OPC_EmitConvertToTarget, 1,
+/* 12027*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAIW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (sra:{ *:[i64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] }), (imm:{ *:[i64] })<<P:Predicate_uimm5>>:$shamt) - Complexity = 10
+ // Dst: (SRAIW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimm5>>:$shamt)
+/* 12035*/ /*Scope*/ 103, /*->12139*/
+/* 12036*/ OPC_RecordChild0, // #0 = $rs1
+/* 12037*/ OPC_RecordChild1, // #1 = $shamt
+/* 12038*/ OPC_Scope, 56, /*->12096*/ // 3 children in Scope
+/* 12040*/ OPC_MoveChild1,
+/* 12041*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 12044*/ OPC_CheckPredicate, 17, // Predicate_uimmlog2xlen
+/* 12046*/ OPC_SwitchType /*2 cases */, 29, MVT::i32,// ->12078
+/* 12049*/ OPC_MoveParent,
+/* 12050*/ OPC_CheckType, MVT::i32,
+/* 12052*/ OPC_Scope, 12, /*->12066*/ // 2 children in Scope
+/* 12054*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12056*/ OPC_EmitConvertToTarget, 1,
+/* 12058*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRAI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 12066*/ /*Scope*/ 10, /*->12077*/
+/* 12067*/ OPC_EmitConvertToTarget, 1,
+/* 12069*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRAI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 12077*/ 0, /*End of Scope*/
+/* 12078*/ /*SwitchType*/ 15, MVT::i64,// ->12095
+/* 12080*/ OPC_MoveParent,
+/* 12081*/ OPC_CheckType, MVT::i64,
+/* 12083*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12085*/ OPC_EmitConvertToTarget, 1,
+/* 12087*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) - Complexity = 7
+ // Dst: (SRAI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+/* 12095*/ 0, // EndSwitchType
+/* 12096*/ /*Scope*/ 26, /*->12123*/
+/* 12097*/ OPC_CheckChild1Type, MVT::i32,
+/* 12099*/ OPC_CheckType, MVT::i32,
+/* 12101*/ OPC_Scope, 10, /*->12113*/ // 2 children in Scope
+/* 12103*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12105*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12113*/ /*Scope*/ 8, /*->12122*/
+/* 12114*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12122*/ 0, /*End of Scope*/
+/* 12123*/ /*Scope*/ 14, /*->12138*/
+/* 12124*/ OPC_CheckChild1Type, MVT::i64,
+/* 12126*/ OPC_CheckType, MVT::i64,
+/* 12128*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12130*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRA), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SRA:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 12138*/ 0, /*End of Scope*/
+/* 12139*/ 0, /*End of Scope*/
+/* 12140*/ /*SwitchOpcode*/ 114, TARGET_VAL(ISD::BRIND),// ->12257
+/* 12143*/ OPC_RecordNode, // #0 = 'brind' chained node
+/* 12144*/ OPC_Scope, 59, /*->12205*/ // 2 children in Scope
+/* 12146*/ OPC_MoveChild1,
+/* 12147*/ OPC_CheckOpcode, TARGET_VAL(ISD::ADD),
+/* 12150*/ OPC_RecordChild0, // #1 = $rs1
+/* 12151*/ OPC_RecordChild1, // #2 = $imm12
+/* 12152*/ OPC_MoveChild1,
+/* 12153*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 12156*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 12158*/ OPC_MoveParent,
+/* 12159*/ OPC_SwitchType /*2 cases */, 27, MVT::i32,// ->12189
+/* 12162*/ OPC_MoveParent,
+/* 12163*/ OPC_Scope, 12, /*->12177*/ // 2 children in Scope
+/* 12165*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12167*/ OPC_EmitMergeInputChains1_0,
+/* 12168*/ OPC_EmitConvertToTarget, 2,
+/* 12170*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 3,
+ // Src: (brind (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)) - Complexity = 10
+ // Dst: (PseudoBRIND GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12177*/ /*Scope*/ 10, /*->12188*/
+/* 12178*/ OPC_EmitMergeInputChains1_0,
+/* 12179*/ OPC_EmitConvertToTarget, 2,
+/* 12181*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 3,
+ // Src: (brind (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)) - Complexity = 10
+ // Dst: (PseudoBRIND GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12188*/ 0, /*End of Scope*/
+/* 12189*/ /*SwitchType*/ 13, MVT::i64,// ->12204
+/* 12191*/ OPC_MoveParent,
+/* 12192*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12194*/ OPC_EmitMergeInputChains1_0,
+/* 12195*/ OPC_EmitConvertToTarget, 2,
+/* 12197*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 3,
+ // Src: (brind (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)) - Complexity = 10
+ // Dst: (PseudoBRIND GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 12204*/ 0, // EndSwitchType
+/* 12205*/ /*Scope*/ 50, /*->12256*/
+/* 12206*/ OPC_RecordChild1, // #1 = $rs1
+/* 12207*/ OPC_Scope, 30, /*->12239*/ // 2 children in Scope
+/* 12209*/ OPC_CheckChild1Type, MVT::i32,
+/* 12211*/ OPC_Scope, 13, /*->12226*/ // 2 children in Scope
+/* 12213*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12215*/ OPC_EmitMergeInputChains1_0,
+/* 12216*/ OPC_EmitInteger, MVT::i32, 0,
+/* 12219*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (brind GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoBRIND GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 12226*/ /*Scope*/ 11, /*->12238*/
+/* 12227*/ OPC_EmitMergeInputChains1_0,
+/* 12228*/ OPC_EmitInteger, MVT::i32, 0,
+/* 12231*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (brind GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoBRIND GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+/* 12238*/ 0, /*End of Scope*/
+/* 12239*/ /*Scope*/ 15, /*->12255*/
+/* 12240*/ OPC_CheckChild1Type, MVT::i64,
+/* 12242*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12244*/ OPC_EmitMergeInputChains1_0,
+/* 12245*/ OPC_EmitInteger, MVT::i64, 0,
+/* 12248*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBRIND), 0|OPFL_Chain,
+ 2/*#Ops*/, 1, 2,
+ // Src: (brind GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (PseudoBRIND GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+/* 12255*/ 0, /*End of Scope*/
+/* 12256*/ 0, /*End of Scope*/
+/* 12257*/ /*SwitchOpcode*/ 21, TARGET_VAL(ISD::CALLSEQ_START),// ->12281
+/* 12260*/ OPC_RecordNode, // #0 = 'callseq_start' chained node
+/* 12261*/ OPC_RecordChild1, // #1 = $amt1
+/* 12262*/ OPC_MoveChild1,
+/* 12263*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 12266*/ OPC_MoveParent,
+/* 12267*/ OPC_RecordChild2, // #2 = $amt2
+/* 12268*/ OPC_MoveChild2,
+/* 12269*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 12272*/ OPC_MoveParent,
+/* 12273*/ OPC_EmitMergeInputChains1_0,
+/* 12274*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::ADJCALLSTACKDOWN), 0|OPFL_Chain|OPFL_GlueOutput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (callseq_start (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
+ // Dst: (ADJCALLSTACKDOWN (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
+/* 12281*/ /*SwitchOpcode*/ 22, TARGET_VAL(ISD::CALLSEQ_END),// ->12306
+/* 12284*/ OPC_RecordNode, // #0 = 'callseq_end' chained node
+/* 12285*/ OPC_CaptureGlueInput,
+/* 12286*/ OPC_RecordChild1, // #1 = $amt1
+/* 12287*/ OPC_MoveChild1,
+/* 12288*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 12291*/ OPC_MoveParent,
+/* 12292*/ OPC_RecordChild2, // #2 = $amt2
+/* 12293*/ OPC_MoveChild2,
+/* 12294*/ OPC_CheckOpcode, TARGET_VAL(ISD::TargetConstant),
+/* 12297*/ OPC_MoveParent,
+/* 12298*/ OPC_EmitMergeInputChains1_0,
+/* 12299*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::ADJCALLSTACKUP), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (callseq_end (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2) - Complexity = 9
+ // Dst: (ADJCALLSTACKUP (timm:{ *:[i32] }):$amt1, (timm:{ *:[i32] }):$amt2)
+/* 12306*/ /*SwitchOpcode*/ 58|128,15/*1978*/, TARGET_VAL(ISD::SETCC),// ->14288
+/* 12310*/ OPC_RecordChild0, // #0 = $rs1
+/* 12311*/ OPC_Scope, 13|128,5/*653*/, /*->12967*/ // 4 children in Scope
+/* 12314*/ OPC_CheckChild0Type, MVT::i32,
+/* 12316*/ OPC_Scope, 68, /*->12386*/ // 2 children in Scope
+/* 12318*/ OPC_CheckChild1Integer, 0,
+/* 12320*/ OPC_CheckType, MVT::i32,
+/* 12322*/ OPC_Scope, 30, /*->12354*/ // 2 children in Scope
+/* 12324*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 12326*/ OPC_Scope, 13, /*->12341*/ // 2 children in Scope
+/* 12328*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12330*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12333*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETEQ:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 1:{ *:[i32] })
+/* 12341*/ /*Scope*/ 11, /*->12353*/
+/* 12342*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12345*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETEQ:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 1:{ *:[i32] })
+/* 12353*/ 0, /*End of Scope*/
+/* 12354*/ /*Scope*/ 30, /*->12385*/
+/* 12355*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 12357*/ OPC_Scope, 13, /*->12372*/ // 2 children in Scope
+/* 12359*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12361*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12364*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETNE:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$rs1)
+/* 12372*/ /*Scope*/ 11, /*->12384*/
+/* 12373*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12376*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETNE:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$rs1)
+/* 12384*/ 0, /*End of Scope*/
+/* 12385*/ 0, /*End of Scope*/
+/* 12386*/ /*Scope*/ 66|128,4/*578*/, /*->12966*/
+/* 12388*/ OPC_RecordChild1, // #1 = $imm12
+/* 12389*/ OPC_Scope, 43|128,1/*171*/, /*->12563*/ // 11 children in Scope
+/* 12392*/ OPC_MoveChild1,
+/* 12393*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 12396*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 12398*/ OPC_MoveParent,
+/* 12399*/ OPC_CheckType, MVT::i32,
+/* 12401*/ OPC_Scope, 28, /*->12431*/ // 4 children in Scope
+/* 12403*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 12405*/ OPC_Scope, 12, /*->12419*/ // 2 children in Scope
+/* 12407*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12409*/ OPC_EmitConvertToTarget, 1,
+/* 12411*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12419*/ /*Scope*/ 10, /*->12430*/
+/* 12420*/ OPC_EmitConvertToTarget, 1,
+/* 12422*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12430*/ 0, /*End of Scope*/
+/* 12431*/ /*Scope*/ 28, /*->12460*/
+/* 12432*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 12434*/ OPC_Scope, 12, /*->12448*/ // 2 children in Scope
+/* 12436*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12438*/ OPC_EmitConvertToTarget, 1,
+/* 12440*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12448*/ /*Scope*/ 10, /*->12459*/
+/* 12449*/ OPC_EmitConvertToTarget, 1,
+/* 12451*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 12459*/ 0, /*End of Scope*/
+/* 12460*/ /*Scope*/ 50, /*->12511*/
+/* 12461*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 12463*/ OPC_Scope, 23, /*->12488*/ // 2 children in Scope
+/* 12465*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12467*/ OPC_EmitConvertToTarget, 1,
+/* 12469*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3
+/* 12477*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12480*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i32] } (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i32] })
+/* 12488*/ /*Scope*/ 21, /*->12510*/
+/* 12489*/ OPC_EmitConvertToTarget, 1,
+/* 12491*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2, // Results = #3
+/* 12499*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12502*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 3, 4,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i32] } (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i32] })
+/* 12510*/ 0, /*End of Scope*/
+/* 12511*/ /*Scope*/ 50, /*->12562*/
+/* 12512*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 12514*/ OPC_Scope, 23, /*->12539*/ // 2 children in Scope
+/* 12516*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12518*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12521*/ OPC_EmitConvertToTarget, 1,
+/* 12523*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4
+/* 12531*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 4,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))
+/* 12539*/ /*Scope*/ 21, /*->12561*/
+/* 12540*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12543*/ OPC_EmitConvertToTarget, 1,
+/* 12545*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 3, // Results = #4
+/* 12553*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 4,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))
+/* 12561*/ 0, /*End of Scope*/
+/* 12562*/ 0, /*End of Scope*/
+/* 12563*/ /*Scope*/ 26, /*->12590*/
+/* 12564*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 12566*/ OPC_CheckType, MVT::i32,
+/* 12568*/ OPC_Scope, 10, /*->12580*/ // 2 children in Scope
+/* 12570*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12572*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12580*/ /*Scope*/ 8, /*->12589*/
+/* 12581*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12589*/ 0, /*End of Scope*/
+/* 12590*/ /*Scope*/ 26, /*->12617*/
+/* 12591*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 12593*/ OPC_CheckType, MVT::i32,
+/* 12595*/ OPC_Scope, 10, /*->12607*/ // 2 children in Scope
+/* 12597*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12599*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12607*/ /*Scope*/ 8, /*->12616*/
+/* 12608*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 12616*/ 0, /*End of Scope*/
+/* 12617*/ /*Scope*/ 26, /*->12644*/
+/* 12618*/ OPC_CheckChild2CondCode, ISD::SETUGT,
+/* 12620*/ OPC_CheckType, MVT::i32,
+/* 12622*/ OPC_Scope, 10, /*->12634*/ // 2 children in Scope
+/* 12624*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12626*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+/* 12634*/ /*Scope*/ 8, /*->12643*/
+/* 12635*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+/* 12643*/ 0, /*End of Scope*/
+/* 12644*/ /*Scope*/ 26, /*->12671*/
+/* 12645*/ OPC_CheckChild2CondCode, ISD::SETGT,
+/* 12647*/ OPC_CheckType, MVT::i32,
+/* 12649*/ OPC_Scope, 10, /*->12661*/ // 2 children in Scope
+/* 12651*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12653*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+/* 12661*/ /*Scope*/ 8, /*->12670*/
+/* 12662*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+/* 12670*/ 0, /*End of Scope*/
+/* 12671*/ /*Scope*/ 48, /*->12720*/
+/* 12672*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 12674*/ OPC_CheckType, MVT::i32,
+/* 12676*/ OPC_Scope, 21, /*->12699*/ // 2 children in Scope
+/* 12678*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12680*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12688*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12691*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12699*/ /*Scope*/ 19, /*->12719*/
+/* 12700*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12708*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12711*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12719*/ 0, /*End of Scope*/
+/* 12720*/ /*Scope*/ 48, /*->12769*/
+/* 12721*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 12723*/ OPC_CheckType, MVT::i32,
+/* 12725*/ OPC_Scope, 21, /*->12748*/ // 2 children in Scope
+/* 12727*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12729*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12732*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3
+/* 12740*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2))
+/* 12748*/ /*Scope*/ 19, /*->12768*/
+/* 12749*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 12752*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #3
+/* 12760*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2))
+/* 12768*/ 0, /*End of Scope*/
+/* 12769*/ /*Scope*/ 48, /*->12818*/
+/* 12770*/ OPC_CheckChild2CondCode, ISD::SETUGE,
+/* 12772*/ OPC_CheckType, MVT::i32,
+/* 12774*/ OPC_Scope, 21, /*->12797*/ // 2 children in Scope
+/* 12776*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12778*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12786*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12789*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12797*/ /*Scope*/ 19, /*->12817*/
+/* 12798*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12806*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12809*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12817*/ 0, /*End of Scope*/
+/* 12818*/ /*Scope*/ 48, /*->12867*/
+/* 12819*/ OPC_CheckChild2CondCode, ISD::SETULE,
+/* 12821*/ OPC_CheckType, MVT::i32,
+/* 12823*/ OPC_Scope, 21, /*->12846*/ // 2 children in Scope
+/* 12825*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12827*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2
+/* 12835*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12838*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+/* 12846*/ /*Scope*/ 19, /*->12866*/
+/* 12847*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2
+/* 12855*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12858*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+/* 12866*/ 0, /*End of Scope*/
+/* 12867*/ /*Scope*/ 48, /*->12916*/
+/* 12868*/ OPC_CheckChild2CondCode, ISD::SETGE,
+/* 12870*/ OPC_CheckType, MVT::i32,
+/* 12872*/ OPC_Scope, 21, /*->12895*/ // 2 children in Scope
+/* 12874*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12876*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12884*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12887*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12895*/ /*Scope*/ 19, /*->12915*/
+/* 12896*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1, // Results = #2
+/* 12904*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12907*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+/* 12915*/ 0, /*End of Scope*/
+/* 12916*/ /*Scope*/ 48, /*->12965*/
+/* 12917*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 12919*/ OPC_CheckType, MVT::i32,
+/* 12921*/ OPC_Scope, 21, /*->12944*/ // 2 children in Scope
+/* 12923*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 12925*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2
+/* 12933*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12936*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+/* 12944*/ /*Scope*/ 19, /*->12964*/
+/* 12945*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i32, 2/*#Ops*/, 1, 0, // Results = #2
+/* 12953*/ OPC_EmitInteger, MVT::i32, 1,
+/* 12956*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+/* 12964*/ 0, /*End of Scope*/
+/* 12965*/ 0, /*End of Scope*/
+/* 12966*/ 0, /*End of Scope*/
+/* 12967*/ /*Scope*/ 102|128,2/*358*/, /*->13327*/
+/* 12969*/ OPC_CheckChild0Type, MVT::i64,
+/* 12971*/ OPC_Scope, 38, /*->13011*/ // 2 children in Scope
+/* 12973*/ OPC_CheckChild1Integer, 0,
+/* 12975*/ OPC_CheckType, MVT::i64,
+/* 12977*/ OPC_Scope, 15, /*->12994*/ // 2 children in Scope
+/* 12979*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 12981*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12983*/ OPC_EmitInteger, MVT::i64, 1,
+/* 12986*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] }, SETEQ:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTIU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 1:{ *:[i64] })
+/* 12994*/ /*Scope*/ 15, /*->13010*/
+/* 12995*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 12997*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 12999*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 13002*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] }, SETNE:{ *:[Other] }) - Complexity = 8
+ // Dst: (SLTU:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$rs1)
+/* 13010*/ 0, /*End of Scope*/
+/* 13011*/ /*Scope*/ 57|128,2/*313*/, /*->13326*/
+/* 13013*/ OPC_RecordChild1, // #1 = $imm12
+/* 13014*/ OPC_Scope, 93, /*->13109*/ // 11 children in Scope
+/* 13016*/ OPC_MoveChild1,
+/* 13017*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 13020*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 13022*/ OPC_MoveParent,
+/* 13023*/ OPC_CheckType, MVT::i64,
+/* 13025*/ OPC_Scope, 14, /*->13041*/ // 4 children in Scope
+/* 13027*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 13029*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13031*/ OPC_EmitConvertToTarget, 1,
+/* 13033*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 13041*/ /*Scope*/ 14, /*->13056*/
+/* 13042*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 13044*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13046*/ OPC_EmitConvertToTarget, 1,
+/* 13048*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 13056*/ /*Scope*/ 25, /*->13082*/
+/* 13057*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 13059*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13061*/ OPC_EmitConvertToTarget, 1,
+/* 13063*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2, // Results = #3
+/* 13071*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13074*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 3, 4,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTIU:{ *:[i64] } (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i64] })
+/* 13082*/ /*Scope*/ 25, /*->13108*/
+/* 13083*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 13085*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13087*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 13090*/ OPC_EmitConvertToTarget, 1,
+/* 13092*/ OPC_EmitNode1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 3, // Results = #4
+/* 13100*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 2, 4,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) - Complexity = 7
+ // Dst: (SLTU:{ *:[i64] } X0:{ *:[i64] }, (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))
+/* 13108*/ 0, /*End of Scope*/
+/* 13109*/ /*Scope*/ 14, /*->13124*/
+/* 13110*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 13112*/ OPC_CheckType, MVT::i64,
+/* 13114*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13116*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 13124*/ /*Scope*/ 14, /*->13139*/
+/* 13125*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 13127*/ OPC_CheckType, MVT::i64,
+/* 13129*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13131*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 13139*/ /*Scope*/ 14, /*->13154*/
+/* 13140*/ OPC_CheckChild2CondCode, ISD::SETUGT,
+/* 13142*/ OPC_CheckType, MVT::i64,
+/* 13144*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13146*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)
+/* 13154*/ /*Scope*/ 14, /*->13169*/
+/* 13155*/ OPC_CheckChild2CondCode, ISD::SETGT,
+/* 13157*/ OPC_CheckType, MVT::i64,
+/* 13159*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13161*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i64, 2/*#Ops*/, 1, 0,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGT:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)
+/* 13169*/ /*Scope*/ 25, /*->13195*/
+/* 13170*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 13172*/ OPC_CheckType, MVT::i64,
+/* 13174*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13176*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2
+/* 13184*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13187*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i64] } (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+/* 13195*/ /*Scope*/ 25, /*->13221*/
+/* 13196*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 13198*/ OPC_CheckType, MVT::i64,
+/* 13200*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13202*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 13205*/ OPC_EmitNode1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #3
+/* 13213*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETNE:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTU:{ *:[i64] } X0:{ *:[i64] }, (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2))
+/* 13221*/ /*Scope*/ 25, /*->13247*/
+/* 13222*/ OPC_CheckChild2CondCode, ISD::SETUGE,
+/* 13224*/ OPC_CheckType, MVT::i64,
+/* 13226*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13228*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2
+/* 13236*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13239*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i64] } (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+/* 13247*/ /*Scope*/ 25, /*->13273*/
+/* 13248*/ OPC_CheckChild2CondCode, ISD::SETULE,
+/* 13250*/ OPC_CheckType, MVT::i64,
+/* 13252*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13254*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLTU), 0,
+ MVT::i64, 2/*#Ops*/, 1, 0, // Results = #2
+/* 13262*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13265*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i64] } (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1), 1:{ *:[i64] })
+/* 13273*/ /*Scope*/ 25, /*->13299*/
+/* 13274*/ OPC_CheckChild2CondCode, ISD::SETGE,
+/* 13276*/ OPC_CheckType, MVT::i64,
+/* 13278*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13280*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1, // Results = #2
+/* 13288*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13291*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i64] } (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+/* 13299*/ /*Scope*/ 25, /*->13325*/
+/* 13300*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 13302*/ OPC_CheckType, MVT::i64,
+/* 13304*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13306*/ OPC_EmitNode1, TARGET_VAL(RISCV::SLT), 0,
+ MVT::i64, 2/*#Ops*/, 1, 0, // Results = #2
+/* 13314*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13317*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (XORI:{ *:[i64] } (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1), 1:{ *:[i64] })
+/* 13325*/ 0, /*End of Scope*/
+/* 13326*/ 0, /*End of Scope*/
+/* 13327*/ /*Scope*/ 94|128,3/*478*/, /*->13807*/
+/* 13329*/ OPC_CheckChild0Type, MVT::f32,
+/* 13331*/ OPC_RecordChild1, // #1 = $rs2
+/* 13332*/ OPC_Scope, 42, /*->13376*/ // 8 children in Scope
+/* 13334*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 13336*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13363
+/* 13339*/ OPC_Scope, 10, /*->13351*/ // 2 children in Scope
+/* 13341*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13343*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13351*/ /*Scope*/ 10, /*->13362*/
+/* 13352*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13354*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13362*/ 0, /*End of Scope*/
+/* 13363*/ /*SwitchType*/ 10, MVT::i64,// ->13375
+/* 13365*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13367*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13375*/ 0, // EndSwitchType
+/* 13376*/ /*Scope*/ 42, /*->13419*/
+/* 13377*/ OPC_CheckChild2CondCode, ISD::SETOEQ,
+/* 13379*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13406
+/* 13382*/ OPC_Scope, 10, /*->13394*/ // 2 children in Scope
+/* 13384*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13386*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13394*/ /*Scope*/ 10, /*->13405*/
+/* 13395*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13397*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13405*/ 0, /*End of Scope*/
+/* 13406*/ /*SwitchType*/ 10, MVT::i64,// ->13418
+/* 13408*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13410*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13418*/ 0, // EndSwitchType
+/* 13419*/ /*Scope*/ 42, /*->13462*/
+/* 13420*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 13422*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13449
+/* 13425*/ OPC_Scope, 10, /*->13437*/ // 2 children in Scope
+/* 13427*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13429*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13437*/ /*Scope*/ 10, /*->13448*/
+/* 13438*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13440*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13448*/ 0, /*End of Scope*/
+/* 13449*/ /*SwitchType*/ 10, MVT::i64,// ->13461
+/* 13451*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13453*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13461*/ 0, // EndSwitchType
+/* 13462*/ /*Scope*/ 42, /*->13505*/
+/* 13463*/ OPC_CheckChild2CondCode, ISD::SETOLT,
+/* 13465*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13492
+/* 13468*/ OPC_Scope, 10, /*->13480*/ // 2 children in Scope
+/* 13470*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13472*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13480*/ /*Scope*/ 10, /*->13491*/
+/* 13481*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13483*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13491*/ 0, /*End of Scope*/
+/* 13492*/ /*SwitchType*/ 10, MVT::i64,// ->13504
+/* 13494*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13496*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13504*/ 0, // EndSwitchType
+/* 13505*/ /*Scope*/ 42, /*->13548*/
+/* 13506*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 13508*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13535
+/* 13511*/ OPC_Scope, 10, /*->13523*/ // 2 children in Scope
+/* 13513*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13515*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13523*/ /*Scope*/ 10, /*->13534*/
+/* 13524*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13526*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13534*/ 0, /*End of Scope*/
+/* 13535*/ /*SwitchType*/ 10, MVT::i64,// ->13547
+/* 13537*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13539*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13547*/ 0, // EndSwitchType
+/* 13548*/ /*Scope*/ 42, /*->13591*/
+/* 13549*/ OPC_CheckChild2CondCode, ISD::SETOLE,
+/* 13551*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13578
+/* 13554*/ OPC_Scope, 10, /*->13566*/ // 2 children in Scope
+/* 13556*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13558*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13566*/ /*Scope*/ 10, /*->13577*/
+/* 13567*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13569*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13577*/ 0, /*End of Scope*/
+/* 13578*/ /*SwitchType*/ 10, MVT::i64,// ->13590
+/* 13580*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13582*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 13590*/ 0, // EndSwitchType
+/* 13591*/ /*Scope*/ 90, /*->13682*/
+/* 13592*/ OPC_CheckChild2CondCode, ISD::SETO,
+/* 13594*/ OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->13653
+/* 13597*/ OPC_Scope, 26, /*->13625*/ // 2 children in Scope
+/* 13599*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13601*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13609*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13617*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+/* 13625*/ /*Scope*/ 26, /*->13652*/
+/* 13626*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13628*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13636*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13644*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+/* 13652*/ 0, /*End of Scope*/
+/* 13653*/ /*SwitchType*/ 26, MVT::i64,// ->13681
+/* 13655*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13657*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13665*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13673*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i64] } (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+/* 13681*/ 0, // EndSwitchType
+/* 13682*/ /*Scope*/ 123, /*->13806*/
+/* 13683*/ OPC_CheckChild2CondCode, ISD::SETUO,
+/* 13685*/ OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->13766
+/* 13688*/ OPC_Scope, 37, /*->13727*/ // 2 children in Scope
+/* 13690*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13692*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13700*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13708*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4
+/* 13716*/ OPC_EmitInteger, MVT::i32, 1,
+/* 13719*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i32] })
+/* 13727*/ /*Scope*/ 37, /*->13765*/
+/* 13728*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 13730*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13738*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13746*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4
+/* 13754*/ OPC_EmitInteger, MVT::i32, 1,
+/* 13757*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i32] })
+/* 13765*/ 0, /*End of Scope*/
+/* 13766*/ /*SwitchType*/ 37, MVT::i64,// ->13805
+/* 13768*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13770*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 0, // Results = #2
+/* 13778*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_S), 0,
+ MVT::i64, 2/*#Ops*/, 1, 1, // Results = #3
+/* 13786*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3, // Results = #4
+/* 13794*/ OPC_EmitInteger, MVT::i64, 1,
+/* 13797*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i64] } (AND:{ *:[i64] } (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i64] })
+/* 13805*/ 0, // EndSwitchType
+/* 13806*/ 0, /*End of Scope*/
+/* 13807*/ /*Scope*/ 94|128,3/*478*/, /*->14287*/
+/* 13809*/ OPC_CheckChild0Type, MVT::f64,
+/* 13811*/ OPC_RecordChild1, // #1 = $rs2
+/* 13812*/ OPC_Scope, 42, /*->13856*/ // 8 children in Scope
+/* 13814*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 13816*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13843
+/* 13819*/ OPC_Scope, 10, /*->13831*/ // 2 children in Scope
+/* 13821*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13823*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13831*/ /*Scope*/ 10, /*->13842*/
+/* 13832*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 13834*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13842*/ 0, /*End of Scope*/
+/* 13843*/ /*SwitchType*/ 10, MVT::i64,// ->13855
+/* 13845*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13847*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13855*/ 0, // EndSwitchType
+/* 13856*/ /*Scope*/ 42, /*->13899*/
+/* 13857*/ OPC_CheckChild2CondCode, ISD::SETOEQ,
+/* 13859*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13886
+/* 13862*/ OPC_Scope, 10, /*->13874*/ // 2 children in Scope
+/* 13864*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13866*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13874*/ /*Scope*/ 10, /*->13885*/
+/* 13875*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 13877*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13885*/ 0, /*End of Scope*/
+/* 13886*/ /*SwitchType*/ 10, MVT::i64,// ->13898
+/* 13888*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13890*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOEQ:{ *:[Other] }) - Complexity = 3
+ // Dst: (FEQ_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13898*/ 0, // EndSwitchType
+/* 13899*/ /*Scope*/ 42, /*->13942*/
+/* 13900*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 13902*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13929
+/* 13905*/ OPC_Scope, 10, /*->13917*/ // 2 children in Scope
+/* 13907*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13909*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13917*/ /*Scope*/ 10, /*->13928*/
+/* 13918*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 13920*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13928*/ 0, /*End of Scope*/
+/* 13929*/ /*SwitchType*/ 10, MVT::i64,// ->13941
+/* 13931*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13933*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13941*/ 0, // EndSwitchType
+/* 13942*/ /*Scope*/ 42, /*->13985*/
+/* 13943*/ OPC_CheckChild2CondCode, ISD::SETOLT,
+/* 13945*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->13972
+/* 13948*/ OPC_Scope, 10, /*->13960*/ // 2 children in Scope
+/* 13950*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13952*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13960*/ /*Scope*/ 10, /*->13971*/
+/* 13961*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 13963*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13971*/ 0, /*End of Scope*/
+/* 13972*/ /*SwitchType*/ 10, MVT::i64,// ->13984
+/* 13974*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 13976*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLT_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLT:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLT_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 13984*/ 0, // EndSwitchType
+/* 13985*/ /*Scope*/ 42, /*->14028*/
+/* 13986*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 13988*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->14015
+/* 13991*/ OPC_Scope, 10, /*->14003*/ // 2 children in Scope
+/* 13993*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 13995*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14003*/ /*Scope*/ 10, /*->14014*/
+/* 14004*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 14006*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14014*/ 0, /*End of Scope*/
+/* 14015*/ /*SwitchType*/ 10, MVT::i64,// ->14027
+/* 14017*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14019*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14027*/ 0, // EndSwitchType
+/* 14028*/ /*Scope*/ 42, /*->14071*/
+/* 14029*/ OPC_CheckChild2CondCode, ISD::SETOLE,
+/* 14031*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->14058
+/* 14034*/ OPC_Scope, 10, /*->14046*/ // 2 children in Scope
+/* 14036*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14038*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14046*/ /*Scope*/ 10, /*->14057*/
+/* 14047*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 14049*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i32] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14057*/ 0, /*End of Scope*/
+/* 14058*/ /*SwitchType*/ 10, MVT::i64,// ->14070
+/* 14060*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14062*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FLE_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETOLE:{ *:[Other] }) - Complexity = 3
+ // Dst: (FLE_D:{ *:[i64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 14070*/ 0, // EndSwitchType
+/* 14071*/ /*Scope*/ 90, /*->14162*/
+/* 14072*/ OPC_CheckChild2CondCode, ISD::SETO,
+/* 14074*/ OPC_SwitchType /*2 cases */, 56, MVT::i32,// ->14133
+/* 14077*/ OPC_Scope, 26, /*->14105*/ // 2 children in Scope
+/* 14079*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14081*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14089*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14097*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+/* 14105*/ /*Scope*/ 26, /*->14132*/
+/* 14106*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 14108*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14116*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14124*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+/* 14132*/ 0, /*End of Scope*/
+/* 14133*/ /*SwitchType*/ 26, MVT::i64,// ->14161
+/* 14135*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14137*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14145*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14153*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) - Complexity = 3
+ // Dst: (AND:{ *:[i64] } (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+/* 14161*/ 0, // EndSwitchType
+/* 14162*/ /*Scope*/ 123, /*->14286*/
+/* 14163*/ OPC_CheckChild2CondCode, ISD::SETUO,
+/* 14165*/ OPC_SwitchType /*2 cases */, 78, MVT::i32,// ->14246
+/* 14168*/ OPC_Scope, 37, /*->14207*/ // 2 children in Scope
+/* 14170*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14172*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14180*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14188*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4
+/* 14196*/ OPC_EmitInteger, MVT::i32, 1,
+/* 14199*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i32] })
+/* 14207*/ /*Scope*/ 37, /*->14245*/
+/* 14208*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 14210*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14218*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i32, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14226*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i32, 2/*#Ops*/, 2, 3, // Results = #4
+/* 14234*/ OPC_EmitInteger, MVT::i32, 1,
+/* 14237*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i32, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i32] })
+/* 14245*/ 0, /*End of Scope*/
+/* 14246*/ /*SwitchType*/ 37, MVT::i64,// ->14285
+/* 14248*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14250*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 0, // Results = #2
+/* 14258*/ OPC_EmitNode1, TARGET_VAL(RISCV::FEQ_D), 0,
+ MVT::i64, 2/*#Ops*/, 1, 1, // Results = #3
+/* 14266*/ OPC_EmitNode1, TARGET_VAL(RISCV::AND), 0,
+ MVT::i64, 2/*#Ops*/, 2, 3, // Results = #4
+/* 14274*/ OPC_EmitInteger, MVT::i64, 1,
+/* 14277*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLTIU), 0,
+ MVT::i64, 2/*#Ops*/, 4, 5,
+ // Src: (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) - Complexity = 3
+ // Dst: (SLTIU:{ *:[i64] } (AND:{ *:[i64] } (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i64] })
+/* 14285*/ 0, // EndSwitchType
+/* 14286*/ 0, /*End of Scope*/
+/* 14287*/ 0, /*End of Scope*/
+/* 14288*/ /*SwitchOpcode*/ 94, TARGET_VAL(ISD::XOR),// ->14385
+/* 14291*/ OPC_RecordChild0, // #0 = $rs1
+/* 14292*/ OPC_RecordChild1, // #1 = $imm12
+/* 14293*/ OPC_Scope, 51, /*->14346*/ // 3 children in Scope
+/* 14295*/ OPC_MoveChild1,
+/* 14296*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 14299*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 14301*/ OPC_MoveParent,
+/* 14302*/ OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->14331
+/* 14305*/ OPC_Scope, 12, /*->14319*/ // 2 children in Scope
+/* 14307*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14309*/ OPC_EmitConvertToTarget, 1,
+/* 14311*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 14319*/ /*Scope*/ 10, /*->14330*/
+/* 14320*/ OPC_EmitConvertToTarget, 1,
+/* 14322*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i32, 2/*#Ops*/, 0, 2,
+ // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+/* 14330*/ 0, /*End of Scope*/
+/* 14331*/ /*SwitchType*/ 12, MVT::i64,// ->14345
+/* 14333*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14335*/ OPC_EmitConvertToTarget, 1,
+/* 14337*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XORI), 0,
+ MVT::i64, 2/*#Ops*/, 0, 2,
+ // Src: (xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) - Complexity = 7
+ // Dst: (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+/* 14345*/ 0, // EndSwitchType
+/* 14346*/ /*Scope*/ 24, /*->14371*/
+/* 14347*/ OPC_CheckType, MVT::i32,
+/* 14349*/ OPC_Scope, 10, /*->14361*/ // 2 children in Scope
+/* 14351*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14353*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 14361*/ /*Scope*/ 8, /*->14370*/
+/* 14362*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 14370*/ 0, /*End of Scope*/
+/* 14371*/ /*Scope*/ 12, /*->14384*/
+/* 14372*/ OPC_CheckType, MVT::i64,
+/* 14374*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14376*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::XOR), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 14384*/ 0, /*End of Scope*/
+/* 14385*/ /*SwitchOpcode*/ 17, TARGET_VAL(ISD::AssertSext),// ->14405
+/* 14388*/ OPC_MoveChild0,
+/* 14389*/ OPC_CheckOpcode, TARGET_VAL(RISCVISD::FMV_X_ANYEXTW_RV64),
+/* 14392*/ OPC_RecordChild0, // #0 = $src
+/* 14393*/ OPC_MoveParent,
+/* 14394*/ OPC_CheckPredicate, 0, // Predicate_assertsexti32
+/* 14396*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14398*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i64, 1/*#Ops*/, 0,
+ // Src: (assertsext:{ *:[i64] } (riscv_fmv_x_anyextw_rv64:{ *:[i64] } FPR32:{ *:[f32] }:$src))<<P:Predicate_assertsexti32>> - Complexity = 7
+ // Dst: (FMV_X_W:{ *:[i64] } FPR32:{ *:[f32] }:$src)
+/* 14405*/ /*SwitchOpcode*/ 4|128,5/*644*/, TARGET_VAL(ISD::BRCOND),// ->15053
+/* 14409*/ OPC_RecordNode, // #0 = 'brcond' chained node
+/* 14410*/ OPC_Scope, 61|128,4/*573*/, /*->14986*/ // 2 children in Scope
+/* 14413*/ OPC_MoveChild1,
+/* 14414*/ OPC_CheckOpcode, TARGET_VAL(ISD::SETCC),
+/* 14417*/ OPC_RecordChild0, // #1 = $rs1
+/* 14418*/ OPC_SwitchType /*2 cases */, 89|128,2/*345*/, MVT::i32,// ->14767
+/* 14422*/ OPC_CheckChild0Type, MVT::i32,
+/* 14424*/ OPC_RecordChild1, // #2 = $rs2
+/* 14425*/ OPC_Scope, 33, /*->14460*/ // 10 children in Scope
+/* 14427*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 14429*/ OPC_MoveParent,
+/* 14430*/ OPC_RecordChild2, // #3 = $imm12
+/* 14431*/ OPC_MoveChild2,
+/* 14432*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14435*/ OPC_MoveParent,
+/* 14436*/ OPC_Scope, 11, /*->14449*/ // 2 children in Scope
+/* 14438*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14440*/ OPC_EmitMergeInputChains1_0,
+/* 14441*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BEQ), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BEQ GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14449*/ /*Scope*/ 9, /*->14459*/
+/* 14450*/ OPC_EmitMergeInputChains1_0,
+/* 14451*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BEQ), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BEQ GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14459*/ 0, /*End of Scope*/
+/* 14460*/ /*Scope*/ 33, /*->14494*/
+/* 14461*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 14463*/ OPC_MoveParent,
+/* 14464*/ OPC_RecordChild2, // #3 = $imm12
+/* 14465*/ OPC_MoveChild2,
+/* 14466*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14469*/ OPC_MoveParent,
+/* 14470*/ OPC_Scope, 11, /*->14483*/ // 2 children in Scope
+/* 14472*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14474*/ OPC_EmitMergeInputChains1_0,
+/* 14475*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BNE GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14483*/ /*Scope*/ 9, /*->14493*/
+/* 14484*/ OPC_EmitMergeInputChains1_0,
+/* 14485*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BNE GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14493*/ 0, /*End of Scope*/
+/* 14494*/ /*Scope*/ 33, /*->14528*/
+/* 14495*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 14497*/ OPC_MoveParent,
+/* 14498*/ OPC_RecordChild2, // #3 = $imm12
+/* 14499*/ OPC_MoveChild2,
+/* 14500*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14503*/ OPC_MoveParent,
+/* 14504*/ OPC_Scope, 11, /*->14517*/ // 2 children in Scope
+/* 14506*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14508*/ OPC_EmitMergeInputChains1_0,
+/* 14509*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14517*/ /*Scope*/ 9, /*->14527*/
+/* 14518*/ OPC_EmitMergeInputChains1_0,
+/* 14519*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14527*/ 0, /*End of Scope*/
+/* 14528*/ /*Scope*/ 33, /*->14562*/
+/* 14529*/ OPC_CheckChild2CondCode, ISD::SETGE,
+/* 14531*/ OPC_MoveParent,
+/* 14532*/ OPC_RecordChild2, // #3 = $imm12
+/* 14533*/ OPC_MoveChild2,
+/* 14534*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14537*/ OPC_MoveParent,
+/* 14538*/ OPC_Scope, 11, /*->14551*/ // 2 children in Scope
+/* 14540*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14542*/ OPC_EmitMergeInputChains1_0,
+/* 14543*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14551*/ /*Scope*/ 9, /*->14561*/
+/* 14552*/ OPC_EmitMergeInputChains1_0,
+/* 14553*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14561*/ 0, /*End of Scope*/
+/* 14562*/ /*Scope*/ 33, /*->14596*/
+/* 14563*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 14565*/ OPC_MoveParent,
+/* 14566*/ OPC_RecordChild2, // #3 = $imm12
+/* 14567*/ OPC_MoveChild2,
+/* 14568*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14571*/ OPC_MoveParent,
+/* 14572*/ OPC_Scope, 11, /*->14585*/ // 2 children in Scope
+/* 14574*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14576*/ OPC_EmitMergeInputChains1_0,
+/* 14577*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14585*/ /*Scope*/ 9, /*->14595*/
+/* 14586*/ OPC_EmitMergeInputChains1_0,
+/* 14587*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14595*/ 0, /*End of Scope*/
+/* 14596*/ /*Scope*/ 33, /*->14630*/
+/* 14597*/ OPC_CheckChild2CondCode, ISD::SETUGE,
+/* 14599*/ OPC_MoveParent,
+/* 14600*/ OPC_RecordChild2, // #3 = $imm12
+/* 14601*/ OPC_MoveChild2,
+/* 14602*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14605*/ OPC_MoveParent,
+/* 14606*/ OPC_Scope, 11, /*->14619*/ // 2 children in Scope
+/* 14608*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14610*/ OPC_EmitMergeInputChains1_0,
+/* 14611*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14619*/ /*Scope*/ 9, /*->14629*/
+/* 14620*/ OPC_EmitMergeInputChains1_0,
+/* 14621*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14629*/ 0, /*End of Scope*/
+/* 14630*/ /*Scope*/ 33, /*->14664*/
+/* 14631*/ OPC_CheckChild2CondCode, ISD::SETGT,
+/* 14633*/ OPC_MoveParent,
+/* 14634*/ OPC_RecordChild2, // #3 = $imm12
+/* 14635*/ OPC_MoveChild2,
+/* 14636*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14639*/ OPC_MoveParent,
+/* 14640*/ OPC_Scope, 11, /*->14653*/ // 2 children in Scope
+/* 14642*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14644*/ OPC_EmitMergeInputChains1_0,
+/* 14645*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14653*/ /*Scope*/ 9, /*->14663*/
+/* 14654*/ OPC_EmitMergeInputChains1_0,
+/* 14655*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14663*/ 0, /*End of Scope*/
+/* 14664*/ /*Scope*/ 33, /*->14698*/
+/* 14665*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 14667*/ OPC_MoveParent,
+/* 14668*/ OPC_RecordChild2, // #3 = $imm12
+/* 14669*/ OPC_MoveChild2,
+/* 14670*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14673*/ OPC_MoveParent,
+/* 14674*/ OPC_Scope, 11, /*->14687*/ // 2 children in Scope
+/* 14676*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14678*/ OPC_EmitMergeInputChains1_0,
+/* 14679*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14687*/ /*Scope*/ 9, /*->14697*/
+/* 14688*/ OPC_EmitMergeInputChains1_0,
+/* 14689*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14697*/ 0, /*End of Scope*/
+/* 14698*/ /*Scope*/ 33, /*->14732*/
+/* 14699*/ OPC_CheckChild2CondCode, ISD::SETUGT,
+/* 14701*/ OPC_MoveParent,
+/* 14702*/ OPC_RecordChild2, // #3 = $imm12
+/* 14703*/ OPC_MoveChild2,
+/* 14704*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14707*/ OPC_MoveParent,
+/* 14708*/ OPC_Scope, 11, /*->14721*/ // 2 children in Scope
+/* 14710*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14712*/ OPC_EmitMergeInputChains1_0,
+/* 14713*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14721*/ /*Scope*/ 9, /*->14731*/
+/* 14722*/ OPC_EmitMergeInputChains1_0,
+/* 14723*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14731*/ 0, /*End of Scope*/
+/* 14732*/ /*Scope*/ 33, /*->14766*/
+/* 14733*/ OPC_CheckChild2CondCode, ISD::SETULE,
+/* 14735*/ OPC_MoveParent,
+/* 14736*/ OPC_RecordChild2, // #3 = $imm12
+/* 14737*/ OPC_MoveChild2,
+/* 14738*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14741*/ OPC_MoveParent,
+/* 14742*/ OPC_Scope, 11, /*->14755*/ // 2 children in Scope
+/* 14744*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 14746*/ OPC_EmitMergeInputChains1_0,
+/* 14747*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14755*/ /*Scope*/ 9, /*->14765*/
+/* 14756*/ OPC_EmitMergeInputChains1_0,
+/* 14757*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14765*/ 0, /*End of Scope*/
+/* 14766*/ 0, /*End of Scope*/
+/* 14767*/ /*SwitchType*/ 87|128,1/*215*/, MVT::i64,// ->14985
+/* 14770*/ OPC_CheckChild0Type, MVT::i64,
+/* 14772*/ OPC_RecordChild1, // #2 = $rs2
+/* 14773*/ OPC_Scope, 20, /*->14795*/ // 10 children in Scope
+/* 14775*/ OPC_CheckChild2CondCode, ISD::SETEQ,
+/* 14777*/ OPC_MoveParent,
+/* 14778*/ OPC_RecordChild2, // #3 = $imm12
+/* 14779*/ OPC_MoveChild2,
+/* 14780*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14783*/ OPC_MoveParent,
+/* 14784*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14786*/ OPC_EmitMergeInputChains1_0,
+/* 14787*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BEQ), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETEQ:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BEQ GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14795*/ /*Scope*/ 20, /*->14816*/
+/* 14796*/ OPC_CheckChild2CondCode, ISD::SETNE,
+/* 14798*/ OPC_MoveParent,
+/* 14799*/ OPC_RecordChild2, // #3 = $imm12
+/* 14800*/ OPC_MoveChild2,
+/* 14801*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14804*/ OPC_MoveParent,
+/* 14805*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14807*/ OPC_EmitMergeInputChains1_0,
+/* 14808*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETNE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BNE GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14816*/ /*Scope*/ 20, /*->14837*/
+/* 14817*/ OPC_CheckChild2CondCode, ISD::SETLT,
+/* 14819*/ OPC_MoveParent,
+/* 14820*/ OPC_RecordChild2, // #3 = $imm12
+/* 14821*/ OPC_MoveChild2,
+/* 14822*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14825*/ OPC_MoveParent,
+/* 14826*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14828*/ OPC_EmitMergeInputChains1_0,
+/* 14829*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14837*/ /*Scope*/ 20, /*->14858*/
+/* 14838*/ OPC_CheckChild2CondCode, ISD::SETGE,
+/* 14840*/ OPC_MoveParent,
+/* 14841*/ OPC_RecordChild2, // #3 = $imm12
+/* 14842*/ OPC_MoveChild2,
+/* 14843*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14846*/ OPC_MoveParent,
+/* 14847*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14849*/ OPC_EmitMergeInputChains1_0,
+/* 14850*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14858*/ /*Scope*/ 20, /*->14879*/
+/* 14859*/ OPC_CheckChild2CondCode, ISD::SETULT,
+/* 14861*/ OPC_MoveParent,
+/* 14862*/ OPC_RecordChild2, // #3 = $imm12
+/* 14863*/ OPC_MoveChild2,
+/* 14864*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14867*/ OPC_MoveParent,
+/* 14868*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14870*/ OPC_EmitMergeInputChains1_0,
+/* 14871*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14879*/ /*Scope*/ 20, /*->14900*/
+/* 14880*/ OPC_CheckChild2CondCode, ISD::SETUGE,
+/* 14882*/ OPC_MoveParent,
+/* 14883*/ OPC_RecordChild2, // #3 = $imm12
+/* 14884*/ OPC_MoveChild2,
+/* 14885*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14888*/ OPC_MoveParent,
+/* 14889*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14891*/ OPC_EmitMergeInputChains1_0,
+/* 14892*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 2, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, simm13_lsb0:{ *:[Other] }:$imm12)
+/* 14900*/ /*Scope*/ 20, /*->14921*/
+/* 14901*/ OPC_CheckChild2CondCode, ISD::SETGT,
+/* 14903*/ OPC_MoveParent,
+/* 14904*/ OPC_RecordChild2, // #3 = $imm12
+/* 14905*/ OPC_MoveChild2,
+/* 14906*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14909*/ OPC_MoveParent,
+/* 14910*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14912*/ OPC_EmitMergeInputChains1_0,
+/* 14913*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLT), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLT GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14921*/ /*Scope*/ 20, /*->14942*/
+/* 14922*/ OPC_CheckChild2CondCode, ISD::SETLE,
+/* 14924*/ OPC_MoveParent,
+/* 14925*/ OPC_RecordChild2, // #3 = $imm12
+/* 14926*/ OPC_MoveChild2,
+/* 14927*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14930*/ OPC_MoveParent,
+/* 14931*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14933*/ OPC_EmitMergeInputChains1_0,
+/* 14934*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGE), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGE GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14942*/ /*Scope*/ 20, /*->14963*/
+/* 14943*/ OPC_CheckChild2CondCode, ISD::SETUGT,
+/* 14945*/ OPC_MoveParent,
+/* 14946*/ OPC_RecordChild2, // #3 = $imm12
+/* 14947*/ OPC_MoveChild2,
+/* 14948*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14951*/ OPC_MoveParent,
+/* 14952*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14954*/ OPC_EmitMergeInputChains1_0,
+/* 14955*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BLTU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGT:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BLTU GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14963*/ /*Scope*/ 20, /*->14984*/
+/* 14964*/ OPC_CheckChild2CondCode, ISD::SETULE,
+/* 14966*/ OPC_MoveParent,
+/* 14967*/ OPC_RecordChild2, // #3 = $imm12
+/* 14968*/ OPC_MoveChild2,
+/* 14969*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14972*/ OPC_MoveParent,
+/* 14973*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 14975*/ OPC_EmitMergeInputChains1_0,
+/* 14976*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BGEU), 0|OPFL_Chain,
+ 3/*#Ops*/, 2, 1, 3,
+ // Src: (brcond (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULE:{ *:[Other] }), (bb:{ *:[Other] }):$imm12) - Complexity = 6
+ // Dst: (BGEU GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (bb:{ *:[Other] }):$imm12)
+/* 14984*/ 0, /*End of Scope*/
+/* 14985*/ 0, // EndSwitchType
+/* 14986*/ /*Scope*/ 65, /*->15052*/
+/* 14987*/ OPC_RecordChild1, // #1 = $cond
+/* 14988*/ OPC_Scope, 38, /*->15028*/ // 2 children in Scope
+/* 14990*/ OPC_CheckChild1Type, MVT::i32,
+/* 14992*/ OPC_RecordChild2, // #2 = $imm12
+/* 14993*/ OPC_MoveChild2,
+/* 14994*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 14997*/ OPC_MoveParent,
+/* 14998*/ OPC_Scope, 14, /*->15014*/ // 2 children in Scope
+/* 15000*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15002*/ OPC_EmitMergeInputChains1_0,
+/* 15003*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 15006*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 3, 2,
+ // Src: (brcond GPR:{ *:[i32] }:$cond, (bb:{ *:[Other] }):$imm12) - Complexity = 3
+ // Dst: (BNE GPR:{ *:[i32] }:$cond, X0:{ *:[i32] }, (bb:{ *:[Other] }):$imm12)
+/* 15014*/ /*Scope*/ 12, /*->15027*/
+/* 15015*/ OPC_EmitMergeInputChains1_0,
+/* 15016*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 15019*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 3, 2,
+ // Src: (brcond GPR:{ *:[i32] }:$cond, (bb:{ *:[Other] }):$imm12) - Complexity = 3
+ // Dst: (BNE GPR:{ *:[i32] }:$cond, X0:{ *:[i32] }, (bb:{ *:[Other] }):$imm12)
+/* 15027*/ 0, /*End of Scope*/
+/* 15028*/ /*Scope*/ 22, /*->15051*/
+/* 15029*/ OPC_CheckChild1Type, MVT::i64,
+/* 15031*/ OPC_RecordChild2, // #2 = $imm12
+/* 15032*/ OPC_MoveChild2,
+/* 15033*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 15036*/ OPC_MoveParent,
+/* 15037*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15039*/ OPC_EmitMergeInputChains1_0,
+/* 15040*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 15043*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::BNE), 0|OPFL_Chain,
+ 3/*#Ops*/, 1, 3, 2,
+ // Src: (brcond GPR:{ *:[i64] }:$cond, (bb:{ *:[Other] }):$imm12) - Complexity = 3
+ // Dst: (BNE GPR:{ *:[i64] }:$cond, X0:{ *:[i64] }, (bb:{ *:[Other] }):$imm12)
+/* 15051*/ 0, /*End of Scope*/
+/* 15052*/ 0, /*End of Scope*/
+/* 15053*/ /*SwitchOpcode*/ 124, TARGET_VAL(RISCVISD::CALL),// ->15180
+/* 15056*/ OPC_RecordNode, // #0 = 'riscv_call' chained node
+/* 15057*/ OPC_CaptureGlueInput,
+/* 15058*/ OPC_RecordChild1, // #1 = $func
+/* 15059*/ OPC_Scope, 83, /*->15144*/ // 3 children in Scope
+/* 15061*/ OPC_MoveChild1,
+/* 15062*/ OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::TargetGlobalAddress),// ->15103
+/* 15066*/ OPC_SwitchType /*2 cases */, 21, MVT::i32,// ->15090
+/* 15069*/ OPC_MoveParent,
+/* 15070*/ OPC_Scope, 9, /*->15081*/ // 2 children in Scope
+/* 15072*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15074*/ OPC_EmitMergeInputChains1_0,
+/* 15075*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (tglobaladdr:{ *:[i32] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (tglobaladdr:{ *:[i32] }):$func)
+/* 15081*/ /*Scope*/ 7, /*->15089*/
+/* 15082*/ OPC_EmitMergeInputChains1_0,
+/* 15083*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (tglobaladdr:{ *:[i32] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (tglobaladdr:{ *:[i32] }):$func)
+/* 15089*/ 0, /*End of Scope*/
+/* 15090*/ /*SwitchType*/ 10, MVT::i64,// ->15102
+/* 15092*/ OPC_MoveParent,
+/* 15093*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15095*/ OPC_EmitMergeInputChains1_0,
+/* 15096*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (tglobaladdr:{ *:[i64] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (tglobaladdr:{ *:[i64] }):$func)
+/* 15102*/ 0, // EndSwitchType
+/* 15103*/ /*SwitchOpcode*/ 37, TARGET_VAL(ISD::TargetExternalSymbol),// ->15143
+/* 15106*/ OPC_SwitchType /*2 cases */, 21, MVT::i32,// ->15130
+/* 15109*/ OPC_MoveParent,
+/* 15110*/ OPC_Scope, 9, /*->15121*/ // 2 children in Scope
+/* 15112*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15114*/ OPC_EmitMergeInputChains1_0,
+/* 15115*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (texternalsym:{ *:[i32] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (texternalsym:{ *:[i32] }):$func)
+/* 15121*/ /*Scope*/ 7, /*->15129*/
+/* 15122*/ OPC_EmitMergeInputChains1_0,
+/* 15123*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (texternalsym:{ *:[i32] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (texternalsym:{ *:[i32] }):$func)
+/* 15129*/ 0, /*End of Scope*/
+/* 15130*/ /*SwitchType*/ 10, MVT::i64,// ->15142
+/* 15132*/ OPC_MoveParent,
+/* 15133*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15135*/ OPC_EmitMergeInputChains1_0,
+/* 15136*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call (texternalsym:{ *:[i64] }):$func) - Complexity = 6
+ // Dst: (PseudoCALL (texternalsym:{ *:[i64] }):$func)
+/* 15142*/ 0, // EndSwitchType
+/* 15143*/ 0, // EndSwitchOpcode
+/* 15144*/ /*Scope*/ 22, /*->15167*/
+/* 15145*/ OPC_CheckChild1Type, MVT::i32,
+/* 15147*/ OPC_Scope, 9, /*->15158*/ // 2 children in Scope
+/* 15149*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15151*/ OPC_EmitMergeInputChains1_0,
+/* 15152*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALLIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoCALLIndirect GPR:{ *:[i32] }:$rs1)
+/* 15158*/ /*Scope*/ 7, /*->15166*/
+/* 15159*/ OPC_EmitMergeInputChains1_0,
+/* 15160*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALLIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoCALLIndirect GPR:{ *:[i32] }:$rs1)
+/* 15166*/ 0, /*End of Scope*/
+/* 15167*/ /*Scope*/ 11, /*->15179*/
+/* 15168*/ OPC_CheckChild1Type, MVT::i64,
+/* 15170*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15172*/ OPC_EmitMergeInputChains1_0,
+/* 15173*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoCALLIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_call GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (PseudoCALLIndirect GPR:{ *:[i64] }:$rs1)
+/* 15179*/ 0, /*End of Scope*/
+/* 15180*/ /*SwitchOpcode*/ 124, TARGET_VAL(RISCVISD::TAIL),// ->15307
+/* 15183*/ OPC_RecordNode, // #0 = 'riscv_tail' chained node
+/* 15184*/ OPC_CaptureGlueInput,
+/* 15185*/ OPC_RecordChild1, // #1 = $dst
+/* 15186*/ OPC_Scope, 83, /*->15271*/ // 3 children in Scope
+/* 15188*/ OPC_MoveChild1,
+/* 15189*/ OPC_SwitchOpcode /*2 cases */, 37, TARGET_VAL(ISD::TargetGlobalAddress),// ->15230
+/* 15193*/ OPC_SwitchType /*2 cases */, 21, MVT::i32,// ->15217
+/* 15196*/ OPC_MoveParent,
+/* 15197*/ OPC_Scope, 9, /*->15208*/ // 2 children in Scope
+/* 15199*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15201*/ OPC_EmitMergeInputChains1_0,
+/* 15202*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i32] }):$dst)
+/* 15208*/ /*Scope*/ 7, /*->15216*/
+/* 15209*/ OPC_EmitMergeInputChains1_0,
+/* 15210*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (tglobaladdr:{ *:[i32] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i32] }):$dst)
+/* 15216*/ 0, /*End of Scope*/
+/* 15217*/ /*SwitchType*/ 10, MVT::i64,// ->15229
+/* 15219*/ OPC_MoveParent,
+/* 15220*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15222*/ OPC_EmitMergeInputChains1_0,
+/* 15223*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (tglobaladdr:{ *:[i64] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i64] }):$dst)
+/* 15229*/ 0, // EndSwitchType
+/* 15230*/ /*SwitchOpcode*/ 37, TARGET_VAL(ISD::TargetExternalSymbol),// ->15270
+/* 15233*/ OPC_SwitchType /*2 cases */, 21, MVT::i32,// ->15257
+/* 15236*/ OPC_MoveParent,
+/* 15237*/ OPC_Scope, 9, /*->15248*/ // 2 children in Scope
+/* 15239*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15241*/ OPC_EmitMergeInputChains1_0,
+/* 15242*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i32] }):$dst)
+/* 15248*/ /*Scope*/ 7, /*->15256*/
+/* 15249*/ OPC_EmitMergeInputChains1_0,
+/* 15250*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (texternalsym:{ *:[i32] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i32] }):$dst)
+/* 15256*/ 0, /*End of Scope*/
+/* 15257*/ /*SwitchType*/ 10, MVT::i64,// ->15269
+/* 15259*/ OPC_MoveParent,
+/* 15260*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15262*/ OPC_EmitMergeInputChains1_0,
+/* 15263*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAIL), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail (texternalsym:{ *:[i64] }):$dst) - Complexity = 6
+ // Dst: (PseudoTAIL (texternalsym:{ *:[i64] }):$dst)
+/* 15269*/ 0, // EndSwitchType
+/* 15270*/ 0, // EndSwitchOpcode
+/* 15271*/ /*Scope*/ 22, /*->15294*/
+/* 15272*/ OPC_CheckChild1Type, MVT::i32,
+/* 15274*/ OPC_Scope, 9, /*->15285*/ // 2 children in Scope
+/* 15276*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15278*/ OPC_EmitMergeInputChains1_0,
+/* 15279*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail GPRTC:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoTAILIndirect GPRTC:{ *:[i32] }:$rs1)
+/* 15285*/ /*Scope*/ 7, /*->15293*/
+/* 15286*/ OPC_EmitMergeInputChains1_0,
+/* 15287*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail GPRTC:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (PseudoTAILIndirect GPRTC:{ *:[i32] }:$rs1)
+/* 15293*/ 0, /*End of Scope*/
+/* 15294*/ /*Scope*/ 11, /*->15306*/
+/* 15295*/ OPC_CheckChild1Type, MVT::i64,
+/* 15297*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15299*/ OPC_EmitMergeInputChains1_0,
+/* 15300*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoTAILIndirect), 0|OPFL_Chain|OPFL_GlueInput|OPFL_GlueOutput|OPFL_Variadic1,
+ 1/*#Ops*/, 1,
+ // Src: (riscv_tail GPRTC:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (PseudoTAILIndirect GPRTC:{ *:[i64] }:$rs1)
+/* 15306*/ 0, /*End of Scope*/
+/* 15307*/ /*SwitchOpcode*/ 65|128,1/*193*/, TARGET_VAL(RISCVISD::SELECT_CC),// ->15504
+/* 15311*/ OPC_CaptureGlueInput,
+/* 15312*/ OPC_RecordChild0, // #0 = $lhs
+/* 15313*/ OPC_Scope, 121, /*->15436*/ // 2 children in Scope
+/* 15315*/ OPC_CheckChild0Type, MVT::i32,
+/* 15317*/ OPC_RecordChild1, // #1 = $rhs
+/* 15318*/ OPC_RecordChild2, // #2 = $imm
+/* 15319*/ OPC_MoveChild2,
+/* 15320*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 15323*/ OPC_CheckType, MVT::i32,
+/* 15325*/ OPC_MoveParent,
+/* 15326*/ OPC_RecordChild3, // #3 = $truev
+/* 15327*/ OPC_RecordChild4, // #4 = $falsev
+/* 15328*/ OPC_SwitchType /*3 cases */, 32, MVT::i32,// ->15363
+/* 15331*/ OPC_Scope, 15, /*->15348*/ // 2 children in Scope
+/* 15333*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15335*/ OPC_EmitConvertToTarget, 2,
+/* 15337*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_GPR_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::i32, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[i32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, GPR:{ *:[i32] }:$truev, GPR:{ *:[i32] }:$falsev) - Complexity = 6
+ // Dst: (Select_GPR_Using_CC_GPR:{ *:[i32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, GPR:{ *:[i32] }:$truev, GPR:{ *:[i32] }:$falsev)
+/* 15348*/ /*Scope*/ 13, /*->15362*/
+/* 15349*/ OPC_EmitConvertToTarget, 2,
+/* 15351*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_GPR_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::i32, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[i32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, GPR:{ *:[i32] }:$truev, GPR:{ *:[i32] }:$falsev) - Complexity = 6
+ // Dst: (Select_GPR_Using_CC_GPR:{ *:[i32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, GPR:{ *:[i32] }:$truev, GPR:{ *:[i32] }:$falsev)
+/* 15362*/ 0, /*End of Scope*/
+/* 15363*/ /*SwitchType*/ 34, MVT::f32,// ->15399
+/* 15365*/ OPC_Scope, 15, /*->15382*/ // 2 children in Scope
+/* 15367*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15369*/ OPC_EmitConvertToTarget, 2,
+/* 15371*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR32_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f32, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR32_Using_CC_GPR:{ *:[f32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev)
+/* 15382*/ /*Scope*/ 15, /*->15398*/
+/* 15383*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 15385*/ OPC_EmitConvertToTarget, 2,
+/* 15387*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR32_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f32, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR32_Using_CC_GPR:{ *:[f32] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev)
+/* 15398*/ 0, /*End of Scope*/
+/* 15399*/ /*SwitchType*/ 34, MVT::f64,// ->15435
+/* 15401*/ OPC_Scope, 15, /*->15418*/ // 2 children in Scope
+/* 15403*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15405*/ OPC_EmitConvertToTarget, 2,
+/* 15407*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR64_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f64, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f64] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR64_Using_CC_GPR:{ *:[f64] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev)
+/* 15418*/ /*Scope*/ 15, /*->15434*/
+/* 15419*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 15421*/ OPC_EmitConvertToTarget, 2,
+/* 15423*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR64_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f64, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f64] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR64_Using_CC_GPR:{ *:[f64] } GPR:{ *:[i32] }:$lhs, GPR:{ *:[i32] }:$rhs, (imm:{ *:[i32] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev)
+/* 15434*/ 0, /*End of Scope*/
+/* 15435*/ 0, // EndSwitchType
+/* 15436*/ /*Scope*/ 66, /*->15503*/
+/* 15437*/ OPC_CheckChild0Type, MVT::i64,
+/* 15439*/ OPC_RecordChild1, // #1 = $rhs
+/* 15440*/ OPC_RecordChild2, // #2 = $imm
+/* 15441*/ OPC_MoveChild2,
+/* 15442*/ OPC_CheckOpcode, TARGET_VAL(ISD::Constant),
+/* 15445*/ OPC_CheckType, MVT::i64,
+/* 15447*/ OPC_MoveParent,
+/* 15448*/ OPC_RecordChild3, // #3 = $truev
+/* 15449*/ OPC_RecordChild4, // #4 = $falsev
+/* 15450*/ OPC_SwitchType /*3 cases */, 15, MVT::i64,// ->15468
+/* 15453*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15455*/ OPC_EmitConvertToTarget, 2,
+/* 15457*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_GPR_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::i64, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[i64] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, GPR:{ *:[i64] }:$truev, GPR:{ *:[i64] }:$falsev) - Complexity = 6
+ // Dst: (Select_GPR_Using_CC_GPR:{ *:[i64] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, GPR:{ *:[i64] }:$truev, GPR:{ *:[i64] }:$falsev)
+/* 15468*/ /*SwitchType*/ 15, MVT::f32,// ->15485
+/* 15470*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15472*/ OPC_EmitConvertToTarget, 2,
+/* 15474*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR32_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f32, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f32] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR32_Using_CC_GPR:{ *:[f32] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, FPR32:{ *:[f32] }:$truev, FPR32:{ *:[f32] }:$falsev)
+/* 15485*/ /*SwitchType*/ 15, MVT::f64,// ->15502
+/* 15487*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15489*/ OPC_EmitConvertToTarget, 2,
+/* 15491*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::Select_FPR64_Using_CC_GPR), 0|OPFL_GlueInput,
+ MVT::f64, 5/*#Ops*/, 0, 1, 5, 3, 4,
+ // Src: (riscv_selectcc:{ *:[f64] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev) - Complexity = 6
+ // Dst: (Select_FPR64_Using_CC_GPR:{ *:[f64] } GPR:{ *:[i64] }:$lhs, GPR:{ *:[i64] }:$rhs, (imm:{ *:[i64] }):$imm, FPR64:{ *:[f64] }:$truev, FPR64:{ *:[f64] }:$falsev)
+/* 15502*/ 0, // EndSwitchType
+/* 15503*/ 0, /*End of Scope*/
+/* 15504*/ /*SwitchOpcode*/ 78|128,1/*206*/, TARGET_VAL(ISD::Constant),// ->15714
+/* 15508*/ OPC_RecordNode, // #0 = $imm
+/* 15509*/ OPC_Scope, 55, /*->15566*/ // 3 children in Scope
+/* 15511*/ OPC_CheckPredicate, 1, // Predicate_simm12
+/* 15513*/ OPC_SwitchType /*2 cases */, 32, MVT::i32,// ->15548
+/* 15516*/ OPC_Scope, 15, /*->15533*/ // 2 children in Scope
+/* 15518*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15520*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 15523*/ OPC_EmitConvertToTarget, 0,
+/* 15525*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i32] } X0:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm)
+/* 15533*/ /*Scope*/ 13, /*->15547*/
+/* 15534*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 15537*/ OPC_EmitConvertToTarget, 0,
+/* 15539*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i32] } X0:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm)
+/* 15547*/ 0, /*End of Scope*/
+/* 15548*/ /*SwitchType*/ 15, MVT::i64,// ->15565
+/* 15550*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15552*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 15555*/ OPC_EmitConvertToTarget, 0,
+/* 15557*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i64] } X0:{ *:[i64] }, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm)
+/* 15565*/ 0, // EndSwitchType
+/* 15566*/ /*Scope*/ 52, /*->15619*/
+/* 15567*/ OPC_CheckPredicate, 18, // Predicate_simm32hi20
+/* 15569*/ OPC_SwitchType /*2 cases */, 30, MVT::i32,// ->15602
+/* 15572*/ OPC_Scope, 14, /*->15588*/ // 2 children in Scope
+/* 15574*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15576*/ OPC_EmitConvertToTarget, 0,
+/* 15578*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15581*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i32, 1/*#Ops*/, 2,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm32hi20>>:$imm - Complexity = 4
+ // Dst: (LUI:{ *:[i32] } (HI20:{ *:[i32] } (imm:{ *:[i32] }):$imm))
+/* 15588*/ /*Scope*/ 12, /*->15601*/
+/* 15589*/ OPC_EmitConvertToTarget, 0,
+/* 15591*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15594*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i32, 1/*#Ops*/, 2,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm32hi20>>:$imm - Complexity = 4
+ // Dst: (LUI:{ *:[i32] } (HI20:{ *:[i32] } (imm:{ *:[i32] }):$imm))
+/* 15601*/ 0, /*End of Scope*/
+/* 15602*/ /*SwitchType*/ 14, MVT::i64,// ->15618
+/* 15604*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15606*/ OPC_EmitConvertToTarget, 0,
+/* 15608*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15611*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i64, 1/*#Ops*/, 2,
+ // Src: (imm:{ *:[i64] })<<P:Predicate_simm32hi20>>:$imm - Complexity = 4
+ // Dst: (LUI:{ *:[i64] } (HI20:{ *:[i64] } (imm:{ *:[i64] }):$imm))
+/* 15618*/ 0, // EndSwitchType
+/* 15619*/ /*Scope*/ 93, /*->15713*/
+/* 15620*/ OPC_CheckPredicate, 19, // Predicate_simm32
+/* 15622*/ OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->15683
+/* 15625*/ OPC_Scope, 27, /*->15654*/ // 2 children in Scope
+/* 15627*/ OPC_CheckPatternPredicate, 8, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15629*/ OPC_EmitConvertToTarget, 0,
+/* 15631*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15634*/ OPC_EmitNode1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i32, 1/*#Ops*/, 2, // Results = #3
+/* 15641*/ OPC_EmitConvertToTarget, 0,
+/* 15643*/ OPC_EmitNodeXForm, 1, 4, // LO12Sext
+/* 15646*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 3, 5,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm32>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i32] } (LUI:{ *:[i32] } (HI20:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO12Sext:{ *:[i32] } (imm:{ *:[i32] }):$imm))
+/* 15654*/ /*Scope*/ 27, /*->15682*/
+/* 15655*/ OPC_CheckPatternPredicate, 9, // (!Subtarget->is64Bit())
+/* 15657*/ OPC_EmitConvertToTarget, 0,
+/* 15659*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15662*/ OPC_EmitNode1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i32, 1/*#Ops*/, 2, // Results = #3
+/* 15669*/ OPC_EmitConvertToTarget, 0,
+/* 15671*/ OPC_EmitNodeXForm, 1, 4, // LO12Sext
+/* 15674*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i32, 2/*#Ops*/, 3, 5,
+ // Src: (imm:{ *:[i32] })<<P:Predicate_simm32>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i32] } (LUI:{ *:[i32] } (HI20:{ *:[i32] } (imm:{ *:[i32] }):$imm)), (LO12Sext:{ *:[i32] } (imm:{ *:[i32] }):$imm))
+/* 15682*/ 0, /*End of Scope*/
+/* 15683*/ /*SwitchType*/ 27, MVT::i64,// ->15712
+/* 15685*/ OPC_CheckPatternPredicate, 10, // (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 15687*/ OPC_EmitConvertToTarget, 0,
+/* 15689*/ OPC_EmitNodeXForm, 0, 1, // HI20
+/* 15692*/ OPC_EmitNode1, TARGET_VAL(RISCV::LUI), 0,
+ MVT::i64, 1/*#Ops*/, 2, // Results = #3
+/* 15699*/ OPC_EmitConvertToTarget, 0,
+/* 15701*/ OPC_EmitNodeXForm, 1, 4, // LO12Sext
+/* 15704*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::ADDI), 0,
+ MVT::i64, 2/*#Ops*/, 3, 5,
+ // Src: (imm:{ *:[i64] })<<P:Predicate_simm32>>:$imm - Complexity = 4
+ // Dst: (ADDI:{ *:[i64] } (LUI:{ *:[i64] } (HI20:{ *:[i64] } (imm:{ *:[i64] }):$imm)), (LO12Sext:{ *:[i64] } (imm:{ *:[i64] }):$imm))
+/* 15712*/ 0, // EndSwitchType
+/* 15713*/ 0, /*End of Scope*/
+/* 15714*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_SWAP),// ->16191
+/* 15718*/ OPC_RecordMemRef,
+/* 15719*/ OPC_RecordNode, // #0 = 'atomic_swap' chained node
+/* 15720*/ OPC_RecordChild1, // #1 = $rs1
+/* 15721*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->16032
+/* 15725*/ OPC_CheckChild1Type, MVT::i32,
+/* 15727*/ OPC_RecordChild2, // #2 = $rs2
+/* 15728*/ OPC_Scope, 21|128,1/*149*/, /*->15880*/ // 2 children in Scope
+/* 15731*/ OPC_CheckPredicate, 10, // Predicate_atomic_swap_32
+/* 15733*/ OPC_Scope, 28, /*->15763*/ // 5 children in Scope
+/* 15735*/ OPC_CheckPredicate, 20, // Predicate_atomic_swap_32_monotonic
+/* 15737*/ OPC_Scope, 11, /*->15750*/ // 2 children in Scope
+/* 15739*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15741*/ OPC_EmitMergeInputChains1_0,
+/* 15742*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15750*/ /*Scope*/ 11, /*->15762*/
+/* 15751*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 15753*/ OPC_EmitMergeInputChains1_0,
+/* 15754*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15762*/ 0, /*End of Scope*/
+/* 15763*/ /*Scope*/ 28, /*->15792*/
+/* 15764*/ OPC_CheckPredicate, 21, // Predicate_atomic_swap_32_acquire
+/* 15766*/ OPC_Scope, 11, /*->15779*/ // 2 children in Scope
+/* 15768*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15770*/ OPC_EmitMergeInputChains1_0,
+/* 15771*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15779*/ /*Scope*/ 11, /*->15791*/
+/* 15780*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 15782*/ OPC_EmitMergeInputChains1_0,
+/* 15783*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15791*/ 0, /*End of Scope*/
+/* 15792*/ /*Scope*/ 28, /*->15821*/
+/* 15793*/ OPC_CheckPredicate, 22, // Predicate_atomic_swap_32_release
+/* 15795*/ OPC_Scope, 11, /*->15808*/ // 2 children in Scope
+/* 15797*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15799*/ OPC_EmitMergeInputChains1_0,
+/* 15800*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> - Complexity = 4
+ // Dst: (AMOSWAP_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15808*/ /*Scope*/ 11, /*->15820*/
+/* 15809*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 15811*/ OPC_EmitMergeInputChains1_0,
+/* 15812*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> - Complexity = 4
+ // Dst: (AMOSWAP_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15820*/ 0, /*End of Scope*/
+/* 15821*/ /*Scope*/ 28, /*->15850*/
+/* 15822*/ OPC_CheckPredicate, 23, // Predicate_atomic_swap_32_acq_rel
+/* 15824*/ OPC_Scope, 11, /*->15837*/ // 2 children in Scope
+/* 15826*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15828*/ OPC_EmitMergeInputChains1_0,
+/* 15829*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15837*/ /*Scope*/ 11, /*->15849*/
+/* 15838*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 15840*/ OPC_EmitMergeInputChains1_0,
+/* 15841*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15849*/ 0, /*End of Scope*/
+/* 15850*/ /*Scope*/ 28, /*->15879*/
+/* 15851*/ OPC_CheckPredicate, 24, // Predicate_atomic_swap_32_seq_cst
+/* 15853*/ OPC_Scope, 11, /*->15866*/ // 2 children in Scope
+/* 15855*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15857*/ OPC_EmitMergeInputChains1_0,
+/* 15858*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15866*/ /*Scope*/ 11, /*->15878*/
+/* 15867*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 15869*/ OPC_EmitMergeInputChains1_0,
+/* 15870*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15878*/ 0, /*End of Scope*/
+/* 15879*/ 0, /*End of Scope*/
+/* 15880*/ /*Scope*/ 21|128,1/*149*/, /*->16031*/
+/* 15882*/ OPC_CheckPredicate, 14, // Predicate_atomic_swap_64
+/* 15884*/ OPC_Scope, 28, /*->15914*/ // 5 children in Scope
+/* 15886*/ OPC_CheckPredicate, 20, // Predicate_atomic_swap_64_monotonic
+/* 15888*/ OPC_Scope, 11, /*->15901*/ // 2 children in Scope
+/* 15890*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15892*/ OPC_EmitMergeInputChains1_0,
+/* 15893*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15901*/ /*Scope*/ 11, /*->15913*/
+/* 15902*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 15904*/ OPC_EmitMergeInputChains1_0,
+/* 15905*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15913*/ 0, /*End of Scope*/
+/* 15914*/ /*Scope*/ 28, /*->15943*/
+/* 15915*/ OPC_CheckPredicate, 21, // Predicate_atomic_swap_64_acquire
+/* 15917*/ OPC_Scope, 11, /*->15930*/ // 2 children in Scope
+/* 15919*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15921*/ OPC_EmitMergeInputChains1_0,
+/* 15922*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15930*/ /*Scope*/ 11, /*->15942*/
+/* 15931*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 15933*/ OPC_EmitMergeInputChains1_0,
+/* 15934*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15942*/ 0, /*End of Scope*/
+/* 15943*/ /*Scope*/ 28, /*->15972*/
+/* 15944*/ OPC_CheckPredicate, 22, // Predicate_atomic_swap_64_release
+/* 15946*/ OPC_Scope, 11, /*->15959*/ // 2 children in Scope
+/* 15948*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15950*/ OPC_EmitMergeInputChains1_0,
+/* 15951*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> - Complexity = 4
+ // Dst: (AMOSWAP_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15959*/ /*Scope*/ 11, /*->15971*/
+/* 15960*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 15962*/ OPC_EmitMergeInputChains1_0,
+/* 15963*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> - Complexity = 4
+ // Dst: (AMOSWAP_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15971*/ 0, /*End of Scope*/
+/* 15972*/ /*Scope*/ 28, /*->16001*/
+/* 15973*/ OPC_CheckPredicate, 23, // Predicate_atomic_swap_64_acq_rel
+/* 15975*/ OPC_Scope, 11, /*->15988*/ // 2 children in Scope
+/* 15977*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 15979*/ OPC_EmitMergeInputChains1_0,
+/* 15980*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 15988*/ /*Scope*/ 11, /*->16000*/
+/* 15989*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 15991*/ OPC_EmitMergeInputChains1_0,
+/* 15992*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16000*/ 0, /*End of Scope*/
+/* 16001*/ /*Scope*/ 28, /*->16030*/
+/* 16002*/ OPC_CheckPredicate, 24, // Predicate_atomic_swap_64_seq_cst
+/* 16004*/ OPC_Scope, 11, /*->16017*/ // 2 children in Scope
+/* 16006*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16008*/ OPC_EmitMergeInputChains1_0,
+/* 16009*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16017*/ /*Scope*/ 11, /*->16029*/
+/* 16018*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16020*/ OPC_EmitMergeInputChains1_0,
+/* 16021*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16029*/ 0, /*End of Scope*/
+/* 16030*/ 0, /*End of Scope*/
+/* 16031*/ 0, /*End of Scope*/
+/* 16032*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->16190
+/* 16035*/ OPC_CheckChild1Type, MVT::i64,
+/* 16037*/ OPC_RecordChild2, // #2 = $rs2
+/* 16038*/ OPC_Scope, 74, /*->16114*/ // 2 children in Scope
+/* 16040*/ OPC_CheckPredicate, 10, // Predicate_atomic_swap_32
+/* 16042*/ OPC_Scope, 13, /*->16057*/ // 5 children in Scope
+/* 16044*/ OPC_CheckPredicate, 20, // Predicate_atomic_swap_32_monotonic
+/* 16046*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16048*/ OPC_EmitMergeInputChains1_0,
+/* 16049*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16057*/ /*Scope*/ 13, /*->16071*/
+/* 16058*/ OPC_CheckPredicate, 21, // Predicate_atomic_swap_32_acquire
+/* 16060*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16062*/ OPC_EmitMergeInputChains1_0,
+/* 16063*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16071*/ /*Scope*/ 13, /*->16085*/
+/* 16072*/ OPC_CheckPredicate, 22, // Predicate_atomic_swap_32_release
+/* 16074*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16076*/ OPC_EmitMergeInputChains1_0,
+/* 16077*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> - Complexity = 4
+ // Dst: (AMOSWAP_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16085*/ /*Scope*/ 13, /*->16099*/
+/* 16086*/ OPC_CheckPredicate, 23, // Predicate_atomic_swap_32_acq_rel
+/* 16088*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16090*/ OPC_EmitMergeInputChains1_0,
+/* 16091*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16099*/ /*Scope*/ 13, /*->16113*/
+/* 16100*/ OPC_CheckPredicate, 24, // Predicate_atomic_swap_32_seq_cst
+/* 16102*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16104*/ OPC_EmitMergeInputChains1_0,
+/* 16105*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16113*/ 0, /*End of Scope*/
+/* 16114*/ /*Scope*/ 74, /*->16189*/
+/* 16115*/ OPC_CheckPredicate, 14, // Predicate_atomic_swap_64
+/* 16117*/ OPC_Scope, 13, /*->16132*/ // 5 children in Scope
+/* 16119*/ OPC_CheckPredicate, 20, // Predicate_atomic_swap_64_monotonic
+/* 16121*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16123*/ OPC_EmitMergeInputChains1_0,
+/* 16124*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> - Complexity = 4
+ // Dst: (AMOSWAP_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16132*/ /*Scope*/ 13, /*->16146*/
+/* 16133*/ OPC_CheckPredicate, 21, // Predicate_atomic_swap_64_acquire
+/* 16135*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16137*/ OPC_EmitMergeInputChains1_0,
+/* 16138*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16146*/ /*Scope*/ 13, /*->16160*/
+/* 16147*/ OPC_CheckPredicate, 22, // Predicate_atomic_swap_64_release
+/* 16149*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16151*/ OPC_EmitMergeInputChains1_0,
+/* 16152*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> - Complexity = 4
+ // Dst: (AMOSWAP_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16160*/ /*Scope*/ 13, /*->16174*/
+/* 16161*/ OPC_CheckPredicate, 23, // Predicate_atomic_swap_64_acq_rel
+/* 16163*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16165*/ OPC_EmitMergeInputChains1_0,
+/* 16166*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16174*/ /*Scope*/ 13, /*->16188*/
+/* 16175*/ OPC_CheckPredicate, 24, // Predicate_atomic_swap_64_seq_cst
+/* 16177*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16179*/ OPC_EmitMergeInputChains1_0,
+/* 16180*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOSWAP_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOSWAP_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16188*/ 0, /*End of Scope*/
+/* 16189*/ 0, /*End of Scope*/
+/* 16190*/ 0, // EndSwitchType
+/* 16191*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_ADD),// ->16668
+/* 16195*/ OPC_RecordMemRef,
+/* 16196*/ OPC_RecordNode, // #0 = 'atomic_load_add' chained node
+/* 16197*/ OPC_RecordChild1, // #1 = $rs1
+/* 16198*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->16509
+/* 16202*/ OPC_CheckChild1Type, MVT::i32,
+/* 16204*/ OPC_RecordChild2, // #2 = $rs2
+/* 16205*/ OPC_Scope, 21|128,1/*149*/, /*->16357*/ // 2 children in Scope
+/* 16208*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_add_32
+/* 16210*/ OPC_Scope, 28, /*->16240*/ // 5 children in Scope
+/* 16212*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_add_32_monotonic
+/* 16214*/ OPC_Scope, 11, /*->16227*/ // 2 children in Scope
+/* 16216*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16218*/ OPC_EmitMergeInputChains1_0,
+/* 16219*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16227*/ /*Scope*/ 11, /*->16239*/
+/* 16228*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16230*/ OPC_EmitMergeInputChains1_0,
+/* 16231*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16239*/ 0, /*End of Scope*/
+/* 16240*/ /*Scope*/ 28, /*->16269*/
+/* 16241*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_add_32_acquire
+/* 16243*/ OPC_Scope, 11, /*->16256*/ // 2 children in Scope
+/* 16245*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16247*/ OPC_EmitMergeInputChains1_0,
+/* 16248*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16256*/ /*Scope*/ 11, /*->16268*/
+/* 16257*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16259*/ OPC_EmitMergeInputChains1_0,
+/* 16260*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16268*/ 0, /*End of Scope*/
+/* 16269*/ /*Scope*/ 28, /*->16298*/
+/* 16270*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_add_32_release
+/* 16272*/ OPC_Scope, 11, /*->16285*/ // 2 children in Scope
+/* 16274*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16276*/ OPC_EmitMergeInputChains1_0,
+/* 16277*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16285*/ /*Scope*/ 11, /*->16297*/
+/* 16286*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16288*/ OPC_EmitMergeInputChains1_0,
+/* 16289*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16297*/ 0, /*End of Scope*/
+/* 16298*/ /*Scope*/ 28, /*->16327*/
+/* 16299*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_add_32_acq_rel
+/* 16301*/ OPC_Scope, 11, /*->16314*/ // 2 children in Scope
+/* 16303*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16305*/ OPC_EmitMergeInputChains1_0,
+/* 16306*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16314*/ /*Scope*/ 11, /*->16326*/
+/* 16315*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16317*/ OPC_EmitMergeInputChains1_0,
+/* 16318*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16326*/ 0, /*End of Scope*/
+/* 16327*/ /*Scope*/ 28, /*->16356*/
+/* 16328*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_add_32_seq_cst
+/* 16330*/ OPC_Scope, 11, /*->16343*/ // 2 children in Scope
+/* 16332*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16334*/ OPC_EmitMergeInputChains1_0,
+/* 16335*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16343*/ /*Scope*/ 11, /*->16355*/
+/* 16344*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16346*/ OPC_EmitMergeInputChains1_0,
+/* 16347*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16355*/ 0, /*End of Scope*/
+/* 16356*/ 0, /*End of Scope*/
+/* 16357*/ /*Scope*/ 21|128,1/*149*/, /*->16508*/
+/* 16359*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_add_64
+/* 16361*/ OPC_Scope, 28, /*->16391*/ // 5 children in Scope
+/* 16363*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_add_64_monotonic
+/* 16365*/ OPC_Scope, 11, /*->16378*/ // 2 children in Scope
+/* 16367*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16369*/ OPC_EmitMergeInputChains1_0,
+/* 16370*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16378*/ /*Scope*/ 11, /*->16390*/
+/* 16379*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16381*/ OPC_EmitMergeInputChains1_0,
+/* 16382*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16390*/ 0, /*End of Scope*/
+/* 16391*/ /*Scope*/ 28, /*->16420*/
+/* 16392*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_add_64_acquire
+/* 16394*/ OPC_Scope, 11, /*->16407*/ // 2 children in Scope
+/* 16396*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16398*/ OPC_EmitMergeInputChains1_0,
+/* 16399*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16407*/ /*Scope*/ 11, /*->16419*/
+/* 16408*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16410*/ OPC_EmitMergeInputChains1_0,
+/* 16411*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16419*/ 0, /*End of Scope*/
+/* 16420*/ /*Scope*/ 28, /*->16449*/
+/* 16421*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_add_64_release
+/* 16423*/ OPC_Scope, 11, /*->16436*/ // 2 children in Scope
+/* 16425*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16427*/ OPC_EmitMergeInputChains1_0,
+/* 16428*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16436*/ /*Scope*/ 11, /*->16448*/
+/* 16437*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16439*/ OPC_EmitMergeInputChains1_0,
+/* 16440*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16448*/ 0, /*End of Scope*/
+/* 16449*/ /*Scope*/ 28, /*->16478*/
+/* 16450*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_add_64_acq_rel
+/* 16452*/ OPC_Scope, 11, /*->16465*/ // 2 children in Scope
+/* 16454*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16456*/ OPC_EmitMergeInputChains1_0,
+/* 16457*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16465*/ /*Scope*/ 11, /*->16477*/
+/* 16466*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16468*/ OPC_EmitMergeInputChains1_0,
+/* 16469*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16477*/ 0, /*End of Scope*/
+/* 16478*/ /*Scope*/ 28, /*->16507*/
+/* 16479*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_add_64_seq_cst
+/* 16481*/ OPC_Scope, 11, /*->16494*/ // 2 children in Scope
+/* 16483*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16485*/ OPC_EmitMergeInputChains1_0,
+/* 16486*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16494*/ /*Scope*/ 11, /*->16506*/
+/* 16495*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16497*/ OPC_EmitMergeInputChains1_0,
+/* 16498*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16506*/ 0, /*End of Scope*/
+/* 16507*/ 0, /*End of Scope*/
+/* 16508*/ 0, /*End of Scope*/
+/* 16509*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->16667
+/* 16512*/ OPC_CheckChild1Type, MVT::i64,
+/* 16514*/ OPC_RecordChild2, // #2 = $rs2
+/* 16515*/ OPC_Scope, 74, /*->16591*/ // 2 children in Scope
+/* 16517*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_add_32
+/* 16519*/ OPC_Scope, 13, /*->16534*/ // 5 children in Scope
+/* 16521*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_add_32_monotonic
+/* 16523*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16525*/ OPC_EmitMergeInputChains1_0,
+/* 16526*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16534*/ /*Scope*/ 13, /*->16548*/
+/* 16535*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_add_32_acquire
+/* 16537*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16539*/ OPC_EmitMergeInputChains1_0,
+/* 16540*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16548*/ /*Scope*/ 13, /*->16562*/
+/* 16549*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_add_32_release
+/* 16551*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16553*/ OPC_EmitMergeInputChains1_0,
+/* 16554*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16562*/ /*Scope*/ 13, /*->16576*/
+/* 16563*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_add_32_acq_rel
+/* 16565*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16567*/ OPC_EmitMergeInputChains1_0,
+/* 16568*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16576*/ /*Scope*/ 13, /*->16590*/
+/* 16577*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_add_32_seq_cst
+/* 16579*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16581*/ OPC_EmitMergeInputChains1_0,
+/* 16582*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16590*/ 0, /*End of Scope*/
+/* 16591*/ /*Scope*/ 74, /*->16666*/
+/* 16592*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_add_64
+/* 16594*/ OPC_Scope, 13, /*->16609*/ // 5 children in Scope
+/* 16596*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_add_64_monotonic
+/* 16598*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16600*/ OPC_EmitMergeInputChains1_0,
+/* 16601*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16609*/ /*Scope*/ 13, /*->16623*/
+/* 16610*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_add_64_acquire
+/* 16612*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16614*/ OPC_EmitMergeInputChains1_0,
+/* 16615*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16623*/ /*Scope*/ 13, /*->16637*/
+/* 16624*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_add_64_release
+/* 16626*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16628*/ OPC_EmitMergeInputChains1_0,
+/* 16629*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16637*/ /*Scope*/ 13, /*->16651*/
+/* 16638*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_add_64_acq_rel
+/* 16640*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16642*/ OPC_EmitMergeInputChains1_0,
+/* 16643*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16651*/ /*Scope*/ 13, /*->16665*/
+/* 16652*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_add_64_seq_cst
+/* 16654*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 16656*/ OPC_EmitMergeInputChains1_0,
+/* 16657*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 16665*/ 0, /*End of Scope*/
+/* 16666*/ 0, /*End of Scope*/
+/* 16667*/ 0, // EndSwitchType
+/* 16668*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_AND),// ->17145
+/* 16672*/ OPC_RecordMemRef,
+/* 16673*/ OPC_RecordNode, // #0 = 'atomic_load_and' chained node
+/* 16674*/ OPC_RecordChild1, // #1 = $rs1
+/* 16675*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->16986
+/* 16679*/ OPC_CheckChild1Type, MVT::i32,
+/* 16681*/ OPC_RecordChild2, // #2 = $rs2
+/* 16682*/ OPC_Scope, 21|128,1/*149*/, /*->16834*/ // 2 children in Scope
+/* 16685*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_and_32
+/* 16687*/ OPC_Scope, 28, /*->16717*/ // 5 children in Scope
+/* 16689*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_and_32_monotonic
+/* 16691*/ OPC_Scope, 11, /*->16704*/ // 2 children in Scope
+/* 16693*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16695*/ OPC_EmitMergeInputChains1_0,
+/* 16696*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16704*/ /*Scope*/ 11, /*->16716*/
+/* 16705*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16707*/ OPC_EmitMergeInputChains1_0,
+/* 16708*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16716*/ 0, /*End of Scope*/
+/* 16717*/ /*Scope*/ 28, /*->16746*/
+/* 16718*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_and_32_acquire
+/* 16720*/ OPC_Scope, 11, /*->16733*/ // 2 children in Scope
+/* 16722*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16724*/ OPC_EmitMergeInputChains1_0,
+/* 16725*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16733*/ /*Scope*/ 11, /*->16745*/
+/* 16734*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16736*/ OPC_EmitMergeInputChains1_0,
+/* 16737*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16745*/ 0, /*End of Scope*/
+/* 16746*/ /*Scope*/ 28, /*->16775*/
+/* 16747*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_and_32_release
+/* 16749*/ OPC_Scope, 11, /*->16762*/ // 2 children in Scope
+/* 16751*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16753*/ OPC_EmitMergeInputChains1_0,
+/* 16754*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> - Complexity = 4
+ // Dst: (AMOAND_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16762*/ /*Scope*/ 11, /*->16774*/
+/* 16763*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16765*/ OPC_EmitMergeInputChains1_0,
+/* 16766*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> - Complexity = 4
+ // Dst: (AMOAND_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16774*/ 0, /*End of Scope*/
+/* 16775*/ /*Scope*/ 28, /*->16804*/
+/* 16776*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_and_32_acq_rel
+/* 16778*/ OPC_Scope, 11, /*->16791*/ // 2 children in Scope
+/* 16780*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16782*/ OPC_EmitMergeInputChains1_0,
+/* 16783*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16791*/ /*Scope*/ 11, /*->16803*/
+/* 16792*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16794*/ OPC_EmitMergeInputChains1_0,
+/* 16795*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16803*/ 0, /*End of Scope*/
+/* 16804*/ /*Scope*/ 28, /*->16833*/
+/* 16805*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_and_32_seq_cst
+/* 16807*/ OPC_Scope, 11, /*->16820*/ // 2 children in Scope
+/* 16809*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16811*/ OPC_EmitMergeInputChains1_0,
+/* 16812*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16820*/ /*Scope*/ 11, /*->16832*/
+/* 16821*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 16823*/ OPC_EmitMergeInputChains1_0,
+/* 16824*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16832*/ 0, /*End of Scope*/
+/* 16833*/ 0, /*End of Scope*/
+/* 16834*/ /*Scope*/ 21|128,1/*149*/, /*->16985*/
+/* 16836*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_and_64
+/* 16838*/ OPC_Scope, 28, /*->16868*/ // 5 children in Scope
+/* 16840*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_and_64_monotonic
+/* 16842*/ OPC_Scope, 11, /*->16855*/ // 2 children in Scope
+/* 16844*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16846*/ OPC_EmitMergeInputChains1_0,
+/* 16847*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16855*/ /*Scope*/ 11, /*->16867*/
+/* 16856*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16858*/ OPC_EmitMergeInputChains1_0,
+/* 16859*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16867*/ 0, /*End of Scope*/
+/* 16868*/ /*Scope*/ 28, /*->16897*/
+/* 16869*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_and_64_acquire
+/* 16871*/ OPC_Scope, 11, /*->16884*/ // 2 children in Scope
+/* 16873*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16875*/ OPC_EmitMergeInputChains1_0,
+/* 16876*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16884*/ /*Scope*/ 11, /*->16896*/
+/* 16885*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16887*/ OPC_EmitMergeInputChains1_0,
+/* 16888*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16896*/ 0, /*End of Scope*/
+/* 16897*/ /*Scope*/ 28, /*->16926*/
+/* 16898*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_and_64_release
+/* 16900*/ OPC_Scope, 11, /*->16913*/ // 2 children in Scope
+/* 16902*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16904*/ OPC_EmitMergeInputChains1_0,
+/* 16905*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> - Complexity = 4
+ // Dst: (AMOAND_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16913*/ /*Scope*/ 11, /*->16925*/
+/* 16914*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16916*/ OPC_EmitMergeInputChains1_0,
+/* 16917*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> - Complexity = 4
+ // Dst: (AMOAND_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16925*/ 0, /*End of Scope*/
+/* 16926*/ /*Scope*/ 28, /*->16955*/
+/* 16927*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_and_64_acq_rel
+/* 16929*/ OPC_Scope, 11, /*->16942*/ // 2 children in Scope
+/* 16931*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16933*/ OPC_EmitMergeInputChains1_0,
+/* 16934*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16942*/ /*Scope*/ 11, /*->16954*/
+/* 16943*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16945*/ OPC_EmitMergeInputChains1_0,
+/* 16946*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16954*/ 0, /*End of Scope*/
+/* 16955*/ /*Scope*/ 28, /*->16984*/
+/* 16956*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_and_64_seq_cst
+/* 16958*/ OPC_Scope, 11, /*->16971*/ // 2 children in Scope
+/* 16960*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 16962*/ OPC_EmitMergeInputChains1_0,
+/* 16963*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16971*/ /*Scope*/ 11, /*->16983*/
+/* 16972*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 16974*/ OPC_EmitMergeInputChains1_0,
+/* 16975*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 16983*/ 0, /*End of Scope*/
+/* 16984*/ 0, /*End of Scope*/
+/* 16985*/ 0, /*End of Scope*/
+/* 16986*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->17144
+/* 16989*/ OPC_CheckChild1Type, MVT::i64,
+/* 16991*/ OPC_RecordChild2, // #2 = $rs2
+/* 16992*/ OPC_Scope, 74, /*->17068*/ // 2 children in Scope
+/* 16994*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_and_32
+/* 16996*/ OPC_Scope, 13, /*->17011*/ // 5 children in Scope
+/* 16998*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_and_32_monotonic
+/* 17000*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17002*/ OPC_EmitMergeInputChains1_0,
+/* 17003*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17011*/ /*Scope*/ 13, /*->17025*/
+/* 17012*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_and_32_acquire
+/* 17014*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17016*/ OPC_EmitMergeInputChains1_0,
+/* 17017*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17025*/ /*Scope*/ 13, /*->17039*/
+/* 17026*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_and_32_release
+/* 17028*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17030*/ OPC_EmitMergeInputChains1_0,
+/* 17031*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> - Complexity = 4
+ // Dst: (AMOAND_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17039*/ /*Scope*/ 13, /*->17053*/
+/* 17040*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_and_32_acq_rel
+/* 17042*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17044*/ OPC_EmitMergeInputChains1_0,
+/* 17045*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17053*/ /*Scope*/ 13, /*->17067*/
+/* 17054*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_and_32_seq_cst
+/* 17056*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17058*/ OPC_EmitMergeInputChains1_0,
+/* 17059*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17067*/ 0, /*End of Scope*/
+/* 17068*/ /*Scope*/ 74, /*->17143*/
+/* 17069*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_and_64
+/* 17071*/ OPC_Scope, 13, /*->17086*/ // 5 children in Scope
+/* 17073*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_and_64_monotonic
+/* 17075*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17077*/ OPC_EmitMergeInputChains1_0,
+/* 17078*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> - Complexity = 4
+ // Dst: (AMOAND_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17086*/ /*Scope*/ 13, /*->17100*/
+/* 17087*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_and_64_acquire
+/* 17089*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17091*/ OPC_EmitMergeInputChains1_0,
+/* 17092*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17100*/ /*Scope*/ 13, /*->17114*/
+/* 17101*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_and_64_release
+/* 17103*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17105*/ OPC_EmitMergeInputChains1_0,
+/* 17106*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> - Complexity = 4
+ // Dst: (AMOAND_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17114*/ /*Scope*/ 13, /*->17128*/
+/* 17115*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_and_64_acq_rel
+/* 17117*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17119*/ OPC_EmitMergeInputChains1_0,
+/* 17120*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17128*/ /*Scope*/ 13, /*->17142*/
+/* 17129*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_and_64_seq_cst
+/* 17131*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17133*/ OPC_EmitMergeInputChains1_0,
+/* 17134*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOAND_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOAND_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17142*/ 0, /*End of Scope*/
+/* 17143*/ 0, /*End of Scope*/
+/* 17144*/ 0, // EndSwitchType
+/* 17145*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_OR),// ->17622
+/* 17149*/ OPC_RecordMemRef,
+/* 17150*/ OPC_RecordNode, // #0 = 'atomic_load_or' chained node
+/* 17151*/ OPC_RecordChild1, // #1 = $rs1
+/* 17152*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->17463
+/* 17156*/ OPC_CheckChild1Type, MVT::i32,
+/* 17158*/ OPC_RecordChild2, // #2 = $rs2
+/* 17159*/ OPC_Scope, 21|128,1/*149*/, /*->17311*/ // 2 children in Scope
+/* 17162*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_or_32
+/* 17164*/ OPC_Scope, 28, /*->17194*/ // 5 children in Scope
+/* 17166*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_or_32_monotonic
+/* 17168*/ OPC_Scope, 11, /*->17181*/ // 2 children in Scope
+/* 17170*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17172*/ OPC_EmitMergeInputChains1_0,
+/* 17173*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17181*/ /*Scope*/ 11, /*->17193*/
+/* 17182*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17184*/ OPC_EmitMergeInputChains1_0,
+/* 17185*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17193*/ 0, /*End of Scope*/
+/* 17194*/ /*Scope*/ 28, /*->17223*/
+/* 17195*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_or_32_acquire
+/* 17197*/ OPC_Scope, 11, /*->17210*/ // 2 children in Scope
+/* 17199*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17201*/ OPC_EmitMergeInputChains1_0,
+/* 17202*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17210*/ /*Scope*/ 11, /*->17222*/
+/* 17211*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17213*/ OPC_EmitMergeInputChains1_0,
+/* 17214*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17222*/ 0, /*End of Scope*/
+/* 17223*/ /*Scope*/ 28, /*->17252*/
+/* 17224*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_or_32_release
+/* 17226*/ OPC_Scope, 11, /*->17239*/ // 2 children in Scope
+/* 17228*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17230*/ OPC_EmitMergeInputChains1_0,
+/* 17231*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> - Complexity = 4
+ // Dst: (AMOOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17239*/ /*Scope*/ 11, /*->17251*/
+/* 17240*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17242*/ OPC_EmitMergeInputChains1_0,
+/* 17243*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> - Complexity = 4
+ // Dst: (AMOOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17251*/ 0, /*End of Scope*/
+/* 17252*/ /*Scope*/ 28, /*->17281*/
+/* 17253*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_or_32_acq_rel
+/* 17255*/ OPC_Scope, 11, /*->17268*/ // 2 children in Scope
+/* 17257*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17259*/ OPC_EmitMergeInputChains1_0,
+/* 17260*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17268*/ /*Scope*/ 11, /*->17280*/
+/* 17269*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17271*/ OPC_EmitMergeInputChains1_0,
+/* 17272*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17280*/ 0, /*End of Scope*/
+/* 17281*/ /*Scope*/ 28, /*->17310*/
+/* 17282*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_or_32_seq_cst
+/* 17284*/ OPC_Scope, 11, /*->17297*/ // 2 children in Scope
+/* 17286*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17288*/ OPC_EmitMergeInputChains1_0,
+/* 17289*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17297*/ /*Scope*/ 11, /*->17309*/
+/* 17298*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17300*/ OPC_EmitMergeInputChains1_0,
+/* 17301*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17309*/ 0, /*End of Scope*/
+/* 17310*/ 0, /*End of Scope*/
+/* 17311*/ /*Scope*/ 21|128,1/*149*/, /*->17462*/
+/* 17313*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_or_64
+/* 17315*/ OPC_Scope, 28, /*->17345*/ // 5 children in Scope
+/* 17317*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_or_64_monotonic
+/* 17319*/ OPC_Scope, 11, /*->17332*/ // 2 children in Scope
+/* 17321*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17323*/ OPC_EmitMergeInputChains1_0,
+/* 17324*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17332*/ /*Scope*/ 11, /*->17344*/
+/* 17333*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17335*/ OPC_EmitMergeInputChains1_0,
+/* 17336*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17344*/ 0, /*End of Scope*/
+/* 17345*/ /*Scope*/ 28, /*->17374*/
+/* 17346*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_or_64_acquire
+/* 17348*/ OPC_Scope, 11, /*->17361*/ // 2 children in Scope
+/* 17350*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17352*/ OPC_EmitMergeInputChains1_0,
+/* 17353*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17361*/ /*Scope*/ 11, /*->17373*/
+/* 17362*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17364*/ OPC_EmitMergeInputChains1_0,
+/* 17365*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17373*/ 0, /*End of Scope*/
+/* 17374*/ /*Scope*/ 28, /*->17403*/
+/* 17375*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_or_64_release
+/* 17377*/ OPC_Scope, 11, /*->17390*/ // 2 children in Scope
+/* 17379*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17381*/ OPC_EmitMergeInputChains1_0,
+/* 17382*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> - Complexity = 4
+ // Dst: (AMOOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17390*/ /*Scope*/ 11, /*->17402*/
+/* 17391*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17393*/ OPC_EmitMergeInputChains1_0,
+/* 17394*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> - Complexity = 4
+ // Dst: (AMOOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17402*/ 0, /*End of Scope*/
+/* 17403*/ /*Scope*/ 28, /*->17432*/
+/* 17404*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_or_64_acq_rel
+/* 17406*/ OPC_Scope, 11, /*->17419*/ // 2 children in Scope
+/* 17408*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17410*/ OPC_EmitMergeInputChains1_0,
+/* 17411*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17419*/ /*Scope*/ 11, /*->17431*/
+/* 17420*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17422*/ OPC_EmitMergeInputChains1_0,
+/* 17423*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17431*/ 0, /*End of Scope*/
+/* 17432*/ /*Scope*/ 28, /*->17461*/
+/* 17433*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_or_64_seq_cst
+/* 17435*/ OPC_Scope, 11, /*->17448*/ // 2 children in Scope
+/* 17437*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17439*/ OPC_EmitMergeInputChains1_0,
+/* 17440*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17448*/ /*Scope*/ 11, /*->17460*/
+/* 17449*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17451*/ OPC_EmitMergeInputChains1_0,
+/* 17452*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17460*/ 0, /*End of Scope*/
+/* 17461*/ 0, /*End of Scope*/
+/* 17462*/ 0, /*End of Scope*/
+/* 17463*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->17621
+/* 17466*/ OPC_CheckChild1Type, MVT::i64,
+/* 17468*/ OPC_RecordChild2, // #2 = $rs2
+/* 17469*/ OPC_Scope, 74, /*->17545*/ // 2 children in Scope
+/* 17471*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_or_32
+/* 17473*/ OPC_Scope, 13, /*->17488*/ // 5 children in Scope
+/* 17475*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_or_32_monotonic
+/* 17477*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17479*/ OPC_EmitMergeInputChains1_0,
+/* 17480*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17488*/ /*Scope*/ 13, /*->17502*/
+/* 17489*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_or_32_acquire
+/* 17491*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17493*/ OPC_EmitMergeInputChains1_0,
+/* 17494*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17502*/ /*Scope*/ 13, /*->17516*/
+/* 17503*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_or_32_release
+/* 17505*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17507*/ OPC_EmitMergeInputChains1_0,
+/* 17508*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> - Complexity = 4
+ // Dst: (AMOOR_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17516*/ /*Scope*/ 13, /*->17530*/
+/* 17517*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_or_32_acq_rel
+/* 17519*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17521*/ OPC_EmitMergeInputChains1_0,
+/* 17522*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17530*/ /*Scope*/ 13, /*->17544*/
+/* 17531*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_or_32_seq_cst
+/* 17533*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17535*/ OPC_EmitMergeInputChains1_0,
+/* 17536*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17544*/ 0, /*End of Scope*/
+/* 17545*/ /*Scope*/ 74, /*->17620*/
+/* 17546*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_or_64
+/* 17548*/ OPC_Scope, 13, /*->17563*/ // 5 children in Scope
+/* 17550*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_or_64_monotonic
+/* 17552*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17554*/ OPC_EmitMergeInputChains1_0,
+/* 17555*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> - Complexity = 4
+ // Dst: (AMOOR_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17563*/ /*Scope*/ 13, /*->17577*/
+/* 17564*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_or_64_acquire
+/* 17566*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17568*/ OPC_EmitMergeInputChains1_0,
+/* 17569*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17577*/ /*Scope*/ 13, /*->17591*/
+/* 17578*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_or_64_release
+/* 17580*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17582*/ OPC_EmitMergeInputChains1_0,
+/* 17583*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> - Complexity = 4
+ // Dst: (AMOOR_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17591*/ /*Scope*/ 13, /*->17605*/
+/* 17592*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_or_64_acq_rel
+/* 17594*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17596*/ OPC_EmitMergeInputChains1_0,
+/* 17597*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17605*/ /*Scope*/ 13, /*->17619*/
+/* 17606*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_or_64_seq_cst
+/* 17608*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17610*/ OPC_EmitMergeInputChains1_0,
+/* 17611*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17619*/ 0, /*End of Scope*/
+/* 17620*/ 0, /*End of Scope*/
+/* 17621*/ 0, // EndSwitchType
+/* 17622*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_XOR),// ->18099
+/* 17626*/ OPC_RecordMemRef,
+/* 17627*/ OPC_RecordNode, // #0 = 'atomic_load_xor' chained node
+/* 17628*/ OPC_RecordChild1, // #1 = $rs1
+/* 17629*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->17940
+/* 17633*/ OPC_CheckChild1Type, MVT::i32,
+/* 17635*/ OPC_RecordChild2, // #2 = $rs2
+/* 17636*/ OPC_Scope, 21|128,1/*149*/, /*->17788*/ // 2 children in Scope
+/* 17639*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_xor_32
+/* 17641*/ OPC_Scope, 28, /*->17671*/ // 5 children in Scope
+/* 17643*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_xor_32_monotonic
+/* 17645*/ OPC_Scope, 11, /*->17658*/ // 2 children in Scope
+/* 17647*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17649*/ OPC_EmitMergeInputChains1_0,
+/* 17650*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17658*/ /*Scope*/ 11, /*->17670*/
+/* 17659*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17661*/ OPC_EmitMergeInputChains1_0,
+/* 17662*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17670*/ 0, /*End of Scope*/
+/* 17671*/ /*Scope*/ 28, /*->17700*/
+/* 17672*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_xor_32_acquire
+/* 17674*/ OPC_Scope, 11, /*->17687*/ // 2 children in Scope
+/* 17676*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17678*/ OPC_EmitMergeInputChains1_0,
+/* 17679*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17687*/ /*Scope*/ 11, /*->17699*/
+/* 17688*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17690*/ OPC_EmitMergeInputChains1_0,
+/* 17691*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17699*/ 0, /*End of Scope*/
+/* 17700*/ /*Scope*/ 28, /*->17729*/
+/* 17701*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_xor_32_release
+/* 17703*/ OPC_Scope, 11, /*->17716*/ // 2 children in Scope
+/* 17705*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17707*/ OPC_EmitMergeInputChains1_0,
+/* 17708*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> - Complexity = 4
+ // Dst: (AMOXOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17716*/ /*Scope*/ 11, /*->17728*/
+/* 17717*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17719*/ OPC_EmitMergeInputChains1_0,
+/* 17720*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> - Complexity = 4
+ // Dst: (AMOXOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17728*/ 0, /*End of Scope*/
+/* 17729*/ /*Scope*/ 28, /*->17758*/
+/* 17730*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_xor_32_acq_rel
+/* 17732*/ OPC_Scope, 11, /*->17745*/ // 2 children in Scope
+/* 17734*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17736*/ OPC_EmitMergeInputChains1_0,
+/* 17737*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17745*/ /*Scope*/ 11, /*->17757*/
+/* 17746*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17748*/ OPC_EmitMergeInputChains1_0,
+/* 17749*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17757*/ 0, /*End of Scope*/
+/* 17758*/ /*Scope*/ 28, /*->17787*/
+/* 17759*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_xor_32_seq_cst
+/* 17761*/ OPC_Scope, 11, /*->17774*/ // 2 children in Scope
+/* 17763*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17765*/ OPC_EmitMergeInputChains1_0,
+/* 17766*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17774*/ /*Scope*/ 11, /*->17786*/
+/* 17775*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 17777*/ OPC_EmitMergeInputChains1_0,
+/* 17778*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17786*/ 0, /*End of Scope*/
+/* 17787*/ 0, /*End of Scope*/
+/* 17788*/ /*Scope*/ 21|128,1/*149*/, /*->17939*/
+/* 17790*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_xor_64
+/* 17792*/ OPC_Scope, 28, /*->17822*/ // 5 children in Scope
+/* 17794*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_xor_64_monotonic
+/* 17796*/ OPC_Scope, 11, /*->17809*/ // 2 children in Scope
+/* 17798*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17800*/ OPC_EmitMergeInputChains1_0,
+/* 17801*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17809*/ /*Scope*/ 11, /*->17821*/
+/* 17810*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17812*/ OPC_EmitMergeInputChains1_0,
+/* 17813*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17821*/ 0, /*End of Scope*/
+/* 17822*/ /*Scope*/ 28, /*->17851*/
+/* 17823*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_xor_64_acquire
+/* 17825*/ OPC_Scope, 11, /*->17838*/ // 2 children in Scope
+/* 17827*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17829*/ OPC_EmitMergeInputChains1_0,
+/* 17830*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17838*/ /*Scope*/ 11, /*->17850*/
+/* 17839*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17841*/ OPC_EmitMergeInputChains1_0,
+/* 17842*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17850*/ 0, /*End of Scope*/
+/* 17851*/ /*Scope*/ 28, /*->17880*/
+/* 17852*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_xor_64_release
+/* 17854*/ OPC_Scope, 11, /*->17867*/ // 2 children in Scope
+/* 17856*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17858*/ OPC_EmitMergeInputChains1_0,
+/* 17859*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> - Complexity = 4
+ // Dst: (AMOXOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17867*/ /*Scope*/ 11, /*->17879*/
+/* 17868*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17870*/ OPC_EmitMergeInputChains1_0,
+/* 17871*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> - Complexity = 4
+ // Dst: (AMOXOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17879*/ 0, /*End of Scope*/
+/* 17880*/ /*Scope*/ 28, /*->17909*/
+/* 17881*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_xor_64_acq_rel
+/* 17883*/ OPC_Scope, 11, /*->17896*/ // 2 children in Scope
+/* 17885*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17887*/ OPC_EmitMergeInputChains1_0,
+/* 17888*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17896*/ /*Scope*/ 11, /*->17908*/
+/* 17897*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17899*/ OPC_EmitMergeInputChains1_0,
+/* 17900*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17908*/ 0, /*End of Scope*/
+/* 17909*/ /*Scope*/ 28, /*->17938*/
+/* 17910*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_xor_64_seq_cst
+/* 17912*/ OPC_Scope, 11, /*->17925*/ // 2 children in Scope
+/* 17914*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 17916*/ OPC_EmitMergeInputChains1_0,
+/* 17917*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17925*/ /*Scope*/ 11, /*->17937*/
+/* 17926*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 17928*/ OPC_EmitMergeInputChains1_0,
+/* 17929*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 17937*/ 0, /*End of Scope*/
+/* 17938*/ 0, /*End of Scope*/
+/* 17939*/ 0, /*End of Scope*/
+/* 17940*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->18098
+/* 17943*/ OPC_CheckChild1Type, MVT::i64,
+/* 17945*/ OPC_RecordChild2, // #2 = $rs2
+/* 17946*/ OPC_Scope, 74, /*->18022*/ // 2 children in Scope
+/* 17948*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_xor_32
+/* 17950*/ OPC_Scope, 13, /*->17965*/ // 5 children in Scope
+/* 17952*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_xor_32_monotonic
+/* 17954*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17956*/ OPC_EmitMergeInputChains1_0,
+/* 17957*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17965*/ /*Scope*/ 13, /*->17979*/
+/* 17966*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_xor_32_acquire
+/* 17968*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17970*/ OPC_EmitMergeInputChains1_0,
+/* 17971*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17979*/ /*Scope*/ 13, /*->17993*/
+/* 17980*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_xor_32_release
+/* 17982*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17984*/ OPC_EmitMergeInputChains1_0,
+/* 17985*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> - Complexity = 4
+ // Dst: (AMOXOR_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 17993*/ /*Scope*/ 13, /*->18007*/
+/* 17994*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_xor_32_acq_rel
+/* 17996*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 17998*/ OPC_EmitMergeInputChains1_0,
+/* 17999*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18007*/ /*Scope*/ 13, /*->18021*/
+/* 18008*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_xor_32_seq_cst
+/* 18010*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18012*/ OPC_EmitMergeInputChains1_0,
+/* 18013*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18021*/ 0, /*End of Scope*/
+/* 18022*/ /*Scope*/ 74, /*->18097*/
+/* 18023*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_xor_64
+/* 18025*/ OPC_Scope, 13, /*->18040*/ // 5 children in Scope
+/* 18027*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_xor_64_monotonic
+/* 18029*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18031*/ OPC_EmitMergeInputChains1_0,
+/* 18032*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> - Complexity = 4
+ // Dst: (AMOXOR_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18040*/ /*Scope*/ 13, /*->18054*/
+/* 18041*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_xor_64_acquire
+/* 18043*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18045*/ OPC_EmitMergeInputChains1_0,
+/* 18046*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18054*/ /*Scope*/ 13, /*->18068*/
+/* 18055*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_xor_64_release
+/* 18057*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18059*/ OPC_EmitMergeInputChains1_0,
+/* 18060*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> - Complexity = 4
+ // Dst: (AMOXOR_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18068*/ /*Scope*/ 13, /*->18082*/
+/* 18069*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_xor_64_acq_rel
+/* 18071*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18073*/ OPC_EmitMergeInputChains1_0,
+/* 18074*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18082*/ /*Scope*/ 13, /*->18096*/
+/* 18083*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_xor_64_seq_cst
+/* 18085*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18087*/ OPC_EmitMergeInputChains1_0,
+/* 18088*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOXOR_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOXOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18096*/ 0, /*End of Scope*/
+/* 18097*/ 0, /*End of Scope*/
+/* 18098*/ 0, // EndSwitchType
+/* 18099*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_MAX),// ->18576
+/* 18103*/ OPC_RecordMemRef,
+/* 18104*/ OPC_RecordNode, // #0 = 'atomic_load_max' chained node
+/* 18105*/ OPC_RecordChild1, // #1 = $rs1
+/* 18106*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->18417
+/* 18110*/ OPC_CheckChild1Type, MVT::i32,
+/* 18112*/ OPC_RecordChild2, // #2 = $rs2
+/* 18113*/ OPC_Scope, 21|128,1/*149*/, /*->18265*/ // 2 children in Scope
+/* 18116*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_max_32
+/* 18118*/ OPC_Scope, 28, /*->18148*/ // 5 children in Scope
+/* 18120*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_max_32_monotonic
+/* 18122*/ OPC_Scope, 11, /*->18135*/ // 2 children in Scope
+/* 18124*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18126*/ OPC_EmitMergeInputChains1_0,
+/* 18127*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18135*/ /*Scope*/ 11, /*->18147*/
+/* 18136*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18138*/ OPC_EmitMergeInputChains1_0,
+/* 18139*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18147*/ 0, /*End of Scope*/
+/* 18148*/ /*Scope*/ 28, /*->18177*/
+/* 18149*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_max_32_acquire
+/* 18151*/ OPC_Scope, 11, /*->18164*/ // 2 children in Scope
+/* 18153*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18155*/ OPC_EmitMergeInputChains1_0,
+/* 18156*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18164*/ /*Scope*/ 11, /*->18176*/
+/* 18165*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18167*/ OPC_EmitMergeInputChains1_0,
+/* 18168*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18176*/ 0, /*End of Scope*/
+/* 18177*/ /*Scope*/ 28, /*->18206*/
+/* 18178*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_max_32_release
+/* 18180*/ OPC_Scope, 11, /*->18193*/ // 2 children in Scope
+/* 18182*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18184*/ OPC_EmitMergeInputChains1_0,
+/* 18185*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> - Complexity = 4
+ // Dst: (AMOMAX_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18193*/ /*Scope*/ 11, /*->18205*/
+/* 18194*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18196*/ OPC_EmitMergeInputChains1_0,
+/* 18197*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> - Complexity = 4
+ // Dst: (AMOMAX_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18205*/ 0, /*End of Scope*/
+/* 18206*/ /*Scope*/ 28, /*->18235*/
+/* 18207*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_max_32_acq_rel
+/* 18209*/ OPC_Scope, 11, /*->18222*/ // 2 children in Scope
+/* 18211*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18213*/ OPC_EmitMergeInputChains1_0,
+/* 18214*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18222*/ /*Scope*/ 11, /*->18234*/
+/* 18223*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18225*/ OPC_EmitMergeInputChains1_0,
+/* 18226*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18234*/ 0, /*End of Scope*/
+/* 18235*/ /*Scope*/ 28, /*->18264*/
+/* 18236*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_max_32_seq_cst
+/* 18238*/ OPC_Scope, 11, /*->18251*/ // 2 children in Scope
+/* 18240*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18242*/ OPC_EmitMergeInputChains1_0,
+/* 18243*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18251*/ /*Scope*/ 11, /*->18263*/
+/* 18252*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18254*/ OPC_EmitMergeInputChains1_0,
+/* 18255*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18263*/ 0, /*End of Scope*/
+/* 18264*/ 0, /*End of Scope*/
+/* 18265*/ /*Scope*/ 21|128,1/*149*/, /*->18416*/
+/* 18267*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_max_64
+/* 18269*/ OPC_Scope, 28, /*->18299*/ // 5 children in Scope
+/* 18271*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_max_64_monotonic
+/* 18273*/ OPC_Scope, 11, /*->18286*/ // 2 children in Scope
+/* 18275*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18277*/ OPC_EmitMergeInputChains1_0,
+/* 18278*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18286*/ /*Scope*/ 11, /*->18298*/
+/* 18287*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18289*/ OPC_EmitMergeInputChains1_0,
+/* 18290*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18298*/ 0, /*End of Scope*/
+/* 18299*/ /*Scope*/ 28, /*->18328*/
+/* 18300*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_max_64_acquire
+/* 18302*/ OPC_Scope, 11, /*->18315*/ // 2 children in Scope
+/* 18304*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18306*/ OPC_EmitMergeInputChains1_0,
+/* 18307*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18315*/ /*Scope*/ 11, /*->18327*/
+/* 18316*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18318*/ OPC_EmitMergeInputChains1_0,
+/* 18319*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18327*/ 0, /*End of Scope*/
+/* 18328*/ /*Scope*/ 28, /*->18357*/
+/* 18329*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_max_64_release
+/* 18331*/ OPC_Scope, 11, /*->18344*/ // 2 children in Scope
+/* 18333*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18335*/ OPC_EmitMergeInputChains1_0,
+/* 18336*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> - Complexity = 4
+ // Dst: (AMOMAX_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18344*/ /*Scope*/ 11, /*->18356*/
+/* 18345*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18347*/ OPC_EmitMergeInputChains1_0,
+/* 18348*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> - Complexity = 4
+ // Dst: (AMOMAX_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18356*/ 0, /*End of Scope*/
+/* 18357*/ /*Scope*/ 28, /*->18386*/
+/* 18358*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_max_64_acq_rel
+/* 18360*/ OPC_Scope, 11, /*->18373*/ // 2 children in Scope
+/* 18362*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18364*/ OPC_EmitMergeInputChains1_0,
+/* 18365*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18373*/ /*Scope*/ 11, /*->18385*/
+/* 18374*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18376*/ OPC_EmitMergeInputChains1_0,
+/* 18377*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18385*/ 0, /*End of Scope*/
+/* 18386*/ /*Scope*/ 28, /*->18415*/
+/* 18387*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_max_64_seq_cst
+/* 18389*/ OPC_Scope, 11, /*->18402*/ // 2 children in Scope
+/* 18391*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18393*/ OPC_EmitMergeInputChains1_0,
+/* 18394*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18402*/ /*Scope*/ 11, /*->18414*/
+/* 18403*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18405*/ OPC_EmitMergeInputChains1_0,
+/* 18406*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18414*/ 0, /*End of Scope*/
+/* 18415*/ 0, /*End of Scope*/
+/* 18416*/ 0, /*End of Scope*/
+/* 18417*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->18575
+/* 18420*/ OPC_CheckChild1Type, MVT::i64,
+/* 18422*/ OPC_RecordChild2, // #2 = $rs2
+/* 18423*/ OPC_Scope, 74, /*->18499*/ // 2 children in Scope
+/* 18425*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_max_32
+/* 18427*/ OPC_Scope, 13, /*->18442*/ // 5 children in Scope
+/* 18429*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_max_32_monotonic
+/* 18431*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18433*/ OPC_EmitMergeInputChains1_0,
+/* 18434*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18442*/ /*Scope*/ 13, /*->18456*/
+/* 18443*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_max_32_acquire
+/* 18445*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18447*/ OPC_EmitMergeInputChains1_0,
+/* 18448*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18456*/ /*Scope*/ 13, /*->18470*/
+/* 18457*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_max_32_release
+/* 18459*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18461*/ OPC_EmitMergeInputChains1_0,
+/* 18462*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> - Complexity = 4
+ // Dst: (AMOMAX_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18470*/ /*Scope*/ 13, /*->18484*/
+/* 18471*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_max_32_acq_rel
+/* 18473*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18475*/ OPC_EmitMergeInputChains1_0,
+/* 18476*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18484*/ /*Scope*/ 13, /*->18498*/
+/* 18485*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_max_32_seq_cst
+/* 18487*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18489*/ OPC_EmitMergeInputChains1_0,
+/* 18490*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18498*/ 0, /*End of Scope*/
+/* 18499*/ /*Scope*/ 74, /*->18574*/
+/* 18500*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_max_64
+/* 18502*/ OPC_Scope, 13, /*->18517*/ // 5 children in Scope
+/* 18504*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_max_64_monotonic
+/* 18506*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18508*/ OPC_EmitMergeInputChains1_0,
+/* 18509*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAX_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18517*/ /*Scope*/ 13, /*->18531*/
+/* 18518*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_max_64_acquire
+/* 18520*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18522*/ OPC_EmitMergeInputChains1_0,
+/* 18523*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18531*/ /*Scope*/ 13, /*->18545*/
+/* 18532*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_max_64_release
+/* 18534*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18536*/ OPC_EmitMergeInputChains1_0,
+/* 18537*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> - Complexity = 4
+ // Dst: (AMOMAX_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18545*/ /*Scope*/ 13, /*->18559*/
+/* 18546*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_max_64_acq_rel
+/* 18548*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18550*/ OPC_EmitMergeInputChains1_0,
+/* 18551*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18559*/ /*Scope*/ 13, /*->18573*/
+/* 18560*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_max_64_seq_cst
+/* 18562*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18564*/ OPC_EmitMergeInputChains1_0,
+/* 18565*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAX_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAX_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18573*/ 0, /*End of Scope*/
+/* 18574*/ 0, /*End of Scope*/
+/* 18575*/ 0, // EndSwitchType
+/* 18576*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_MIN),// ->19053
+/* 18580*/ OPC_RecordMemRef,
+/* 18581*/ OPC_RecordNode, // #0 = 'atomic_load_min' chained node
+/* 18582*/ OPC_RecordChild1, // #1 = $rs1
+/* 18583*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->18894
+/* 18587*/ OPC_CheckChild1Type, MVT::i32,
+/* 18589*/ OPC_RecordChild2, // #2 = $rs2
+/* 18590*/ OPC_Scope, 21|128,1/*149*/, /*->18742*/ // 2 children in Scope
+/* 18593*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_min_32
+/* 18595*/ OPC_Scope, 28, /*->18625*/ // 5 children in Scope
+/* 18597*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_min_32_monotonic
+/* 18599*/ OPC_Scope, 11, /*->18612*/ // 2 children in Scope
+/* 18601*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18603*/ OPC_EmitMergeInputChains1_0,
+/* 18604*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18612*/ /*Scope*/ 11, /*->18624*/
+/* 18613*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18615*/ OPC_EmitMergeInputChains1_0,
+/* 18616*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18624*/ 0, /*End of Scope*/
+/* 18625*/ /*Scope*/ 28, /*->18654*/
+/* 18626*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_min_32_acquire
+/* 18628*/ OPC_Scope, 11, /*->18641*/ // 2 children in Scope
+/* 18630*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18632*/ OPC_EmitMergeInputChains1_0,
+/* 18633*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18641*/ /*Scope*/ 11, /*->18653*/
+/* 18642*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18644*/ OPC_EmitMergeInputChains1_0,
+/* 18645*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18653*/ 0, /*End of Scope*/
+/* 18654*/ /*Scope*/ 28, /*->18683*/
+/* 18655*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_min_32_release
+/* 18657*/ OPC_Scope, 11, /*->18670*/ // 2 children in Scope
+/* 18659*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18661*/ OPC_EmitMergeInputChains1_0,
+/* 18662*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> - Complexity = 4
+ // Dst: (AMOMIN_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18670*/ /*Scope*/ 11, /*->18682*/
+/* 18671*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18673*/ OPC_EmitMergeInputChains1_0,
+/* 18674*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> - Complexity = 4
+ // Dst: (AMOMIN_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18682*/ 0, /*End of Scope*/
+/* 18683*/ /*Scope*/ 28, /*->18712*/
+/* 18684*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_min_32_acq_rel
+/* 18686*/ OPC_Scope, 11, /*->18699*/ // 2 children in Scope
+/* 18688*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18690*/ OPC_EmitMergeInputChains1_0,
+/* 18691*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18699*/ /*Scope*/ 11, /*->18711*/
+/* 18700*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18702*/ OPC_EmitMergeInputChains1_0,
+/* 18703*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18711*/ 0, /*End of Scope*/
+/* 18712*/ /*Scope*/ 28, /*->18741*/
+/* 18713*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_min_32_seq_cst
+/* 18715*/ OPC_Scope, 11, /*->18728*/ // 2 children in Scope
+/* 18717*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18719*/ OPC_EmitMergeInputChains1_0,
+/* 18720*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18728*/ /*Scope*/ 11, /*->18740*/
+/* 18729*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 18731*/ OPC_EmitMergeInputChains1_0,
+/* 18732*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18740*/ 0, /*End of Scope*/
+/* 18741*/ 0, /*End of Scope*/
+/* 18742*/ /*Scope*/ 21|128,1/*149*/, /*->18893*/
+/* 18744*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_min_64
+/* 18746*/ OPC_Scope, 28, /*->18776*/ // 5 children in Scope
+/* 18748*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_min_64_monotonic
+/* 18750*/ OPC_Scope, 11, /*->18763*/ // 2 children in Scope
+/* 18752*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18754*/ OPC_EmitMergeInputChains1_0,
+/* 18755*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18763*/ /*Scope*/ 11, /*->18775*/
+/* 18764*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18766*/ OPC_EmitMergeInputChains1_0,
+/* 18767*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18775*/ 0, /*End of Scope*/
+/* 18776*/ /*Scope*/ 28, /*->18805*/
+/* 18777*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_min_64_acquire
+/* 18779*/ OPC_Scope, 11, /*->18792*/ // 2 children in Scope
+/* 18781*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18783*/ OPC_EmitMergeInputChains1_0,
+/* 18784*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18792*/ /*Scope*/ 11, /*->18804*/
+/* 18793*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18795*/ OPC_EmitMergeInputChains1_0,
+/* 18796*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18804*/ 0, /*End of Scope*/
+/* 18805*/ /*Scope*/ 28, /*->18834*/
+/* 18806*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_min_64_release
+/* 18808*/ OPC_Scope, 11, /*->18821*/ // 2 children in Scope
+/* 18810*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18812*/ OPC_EmitMergeInputChains1_0,
+/* 18813*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> - Complexity = 4
+ // Dst: (AMOMIN_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18821*/ /*Scope*/ 11, /*->18833*/
+/* 18822*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18824*/ OPC_EmitMergeInputChains1_0,
+/* 18825*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> - Complexity = 4
+ // Dst: (AMOMIN_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18833*/ 0, /*End of Scope*/
+/* 18834*/ /*Scope*/ 28, /*->18863*/
+/* 18835*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_min_64_acq_rel
+/* 18837*/ OPC_Scope, 11, /*->18850*/ // 2 children in Scope
+/* 18839*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18841*/ OPC_EmitMergeInputChains1_0,
+/* 18842*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18850*/ /*Scope*/ 11, /*->18862*/
+/* 18851*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18853*/ OPC_EmitMergeInputChains1_0,
+/* 18854*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18862*/ 0, /*End of Scope*/
+/* 18863*/ /*Scope*/ 28, /*->18892*/
+/* 18864*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_min_64_seq_cst
+/* 18866*/ OPC_Scope, 11, /*->18879*/ // 2 children in Scope
+/* 18868*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 18870*/ OPC_EmitMergeInputChains1_0,
+/* 18871*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18879*/ /*Scope*/ 11, /*->18891*/
+/* 18880*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 18882*/ OPC_EmitMergeInputChains1_0,
+/* 18883*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 18891*/ 0, /*End of Scope*/
+/* 18892*/ 0, /*End of Scope*/
+/* 18893*/ 0, /*End of Scope*/
+/* 18894*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->19052
+/* 18897*/ OPC_CheckChild1Type, MVT::i64,
+/* 18899*/ OPC_RecordChild2, // #2 = $rs2
+/* 18900*/ OPC_Scope, 74, /*->18976*/ // 2 children in Scope
+/* 18902*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_min_32
+/* 18904*/ OPC_Scope, 13, /*->18919*/ // 5 children in Scope
+/* 18906*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_min_32_monotonic
+/* 18908*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18910*/ OPC_EmitMergeInputChains1_0,
+/* 18911*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18919*/ /*Scope*/ 13, /*->18933*/
+/* 18920*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_min_32_acquire
+/* 18922*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18924*/ OPC_EmitMergeInputChains1_0,
+/* 18925*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18933*/ /*Scope*/ 13, /*->18947*/
+/* 18934*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_min_32_release
+/* 18936*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18938*/ OPC_EmitMergeInputChains1_0,
+/* 18939*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> - Complexity = 4
+ // Dst: (AMOMIN_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18947*/ /*Scope*/ 13, /*->18961*/
+/* 18948*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_min_32_acq_rel
+/* 18950*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18952*/ OPC_EmitMergeInputChains1_0,
+/* 18953*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18961*/ /*Scope*/ 13, /*->18975*/
+/* 18962*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_min_32_seq_cst
+/* 18964*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18966*/ OPC_EmitMergeInputChains1_0,
+/* 18967*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18975*/ 0, /*End of Scope*/
+/* 18976*/ /*Scope*/ 74, /*->19051*/
+/* 18977*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_min_64
+/* 18979*/ OPC_Scope, 13, /*->18994*/ // 5 children in Scope
+/* 18981*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_min_64_monotonic
+/* 18983*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18985*/ OPC_EmitMergeInputChains1_0,
+/* 18986*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMIN_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 18994*/ /*Scope*/ 13, /*->19008*/
+/* 18995*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_min_64_acquire
+/* 18997*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 18999*/ OPC_EmitMergeInputChains1_0,
+/* 19000*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19008*/ /*Scope*/ 13, /*->19022*/
+/* 19009*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_min_64_release
+/* 19011*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19013*/ OPC_EmitMergeInputChains1_0,
+/* 19014*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> - Complexity = 4
+ // Dst: (AMOMIN_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19022*/ /*Scope*/ 13, /*->19036*/
+/* 19023*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_min_64_acq_rel
+/* 19025*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19027*/ OPC_EmitMergeInputChains1_0,
+/* 19028*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19036*/ /*Scope*/ 13, /*->19050*/
+/* 19037*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_min_64_seq_cst
+/* 19039*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19041*/ OPC_EmitMergeInputChains1_0,
+/* 19042*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMIN_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMIN_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19050*/ 0, /*End of Scope*/
+/* 19051*/ 0, /*End of Scope*/
+/* 19052*/ 0, // EndSwitchType
+/* 19053*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_UMAX),// ->19530
+/* 19057*/ OPC_RecordMemRef,
+/* 19058*/ OPC_RecordNode, // #0 = 'atomic_load_umax' chained node
+/* 19059*/ OPC_RecordChild1, // #1 = $rs1
+/* 19060*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->19371
+/* 19064*/ OPC_CheckChild1Type, MVT::i32,
+/* 19066*/ OPC_RecordChild2, // #2 = $rs2
+/* 19067*/ OPC_Scope, 21|128,1/*149*/, /*->19219*/ // 2 children in Scope
+/* 19070*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_umax_32
+/* 19072*/ OPC_Scope, 28, /*->19102*/ // 5 children in Scope
+/* 19074*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umax_32_monotonic
+/* 19076*/ OPC_Scope, 11, /*->19089*/ // 2 children in Scope
+/* 19078*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19080*/ OPC_EmitMergeInputChains1_0,
+/* 19081*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19089*/ /*Scope*/ 11, /*->19101*/
+/* 19090*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19092*/ OPC_EmitMergeInputChains1_0,
+/* 19093*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19101*/ 0, /*End of Scope*/
+/* 19102*/ /*Scope*/ 28, /*->19131*/
+/* 19103*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umax_32_acquire
+/* 19105*/ OPC_Scope, 11, /*->19118*/ // 2 children in Scope
+/* 19107*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19109*/ OPC_EmitMergeInputChains1_0,
+/* 19110*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19118*/ /*Scope*/ 11, /*->19130*/
+/* 19119*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19121*/ OPC_EmitMergeInputChains1_0,
+/* 19122*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19130*/ 0, /*End of Scope*/
+/* 19131*/ /*Scope*/ 28, /*->19160*/
+/* 19132*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umax_32_release
+/* 19134*/ OPC_Scope, 11, /*->19147*/ // 2 children in Scope
+/* 19136*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19138*/ OPC_EmitMergeInputChains1_0,
+/* 19139*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> - Complexity = 4
+ // Dst: (AMOMAXU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19147*/ /*Scope*/ 11, /*->19159*/
+/* 19148*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19150*/ OPC_EmitMergeInputChains1_0,
+/* 19151*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> - Complexity = 4
+ // Dst: (AMOMAXU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19159*/ 0, /*End of Scope*/
+/* 19160*/ /*Scope*/ 28, /*->19189*/
+/* 19161*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umax_32_acq_rel
+/* 19163*/ OPC_Scope, 11, /*->19176*/ // 2 children in Scope
+/* 19165*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19167*/ OPC_EmitMergeInputChains1_0,
+/* 19168*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19176*/ /*Scope*/ 11, /*->19188*/
+/* 19177*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19179*/ OPC_EmitMergeInputChains1_0,
+/* 19180*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19188*/ 0, /*End of Scope*/
+/* 19189*/ /*Scope*/ 28, /*->19218*/
+/* 19190*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umax_32_seq_cst
+/* 19192*/ OPC_Scope, 11, /*->19205*/ // 2 children in Scope
+/* 19194*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19196*/ OPC_EmitMergeInputChains1_0,
+/* 19197*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19205*/ /*Scope*/ 11, /*->19217*/
+/* 19206*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19208*/ OPC_EmitMergeInputChains1_0,
+/* 19209*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19217*/ 0, /*End of Scope*/
+/* 19218*/ 0, /*End of Scope*/
+/* 19219*/ /*Scope*/ 21|128,1/*149*/, /*->19370*/
+/* 19221*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_umax_64
+/* 19223*/ OPC_Scope, 28, /*->19253*/ // 5 children in Scope
+/* 19225*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umax_64_monotonic
+/* 19227*/ OPC_Scope, 11, /*->19240*/ // 2 children in Scope
+/* 19229*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19231*/ OPC_EmitMergeInputChains1_0,
+/* 19232*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19240*/ /*Scope*/ 11, /*->19252*/
+/* 19241*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19243*/ OPC_EmitMergeInputChains1_0,
+/* 19244*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19252*/ 0, /*End of Scope*/
+/* 19253*/ /*Scope*/ 28, /*->19282*/
+/* 19254*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umax_64_acquire
+/* 19256*/ OPC_Scope, 11, /*->19269*/ // 2 children in Scope
+/* 19258*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19260*/ OPC_EmitMergeInputChains1_0,
+/* 19261*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19269*/ /*Scope*/ 11, /*->19281*/
+/* 19270*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19272*/ OPC_EmitMergeInputChains1_0,
+/* 19273*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19281*/ 0, /*End of Scope*/
+/* 19282*/ /*Scope*/ 28, /*->19311*/
+/* 19283*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umax_64_release
+/* 19285*/ OPC_Scope, 11, /*->19298*/ // 2 children in Scope
+/* 19287*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19289*/ OPC_EmitMergeInputChains1_0,
+/* 19290*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> - Complexity = 4
+ // Dst: (AMOMAXU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19298*/ /*Scope*/ 11, /*->19310*/
+/* 19299*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19301*/ OPC_EmitMergeInputChains1_0,
+/* 19302*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> - Complexity = 4
+ // Dst: (AMOMAXU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19310*/ 0, /*End of Scope*/
+/* 19311*/ /*Scope*/ 28, /*->19340*/
+/* 19312*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umax_64_acq_rel
+/* 19314*/ OPC_Scope, 11, /*->19327*/ // 2 children in Scope
+/* 19316*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19318*/ OPC_EmitMergeInputChains1_0,
+/* 19319*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19327*/ /*Scope*/ 11, /*->19339*/
+/* 19328*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19330*/ OPC_EmitMergeInputChains1_0,
+/* 19331*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19339*/ 0, /*End of Scope*/
+/* 19340*/ /*Scope*/ 28, /*->19369*/
+/* 19341*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umax_64_seq_cst
+/* 19343*/ OPC_Scope, 11, /*->19356*/ // 2 children in Scope
+/* 19345*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19347*/ OPC_EmitMergeInputChains1_0,
+/* 19348*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19356*/ /*Scope*/ 11, /*->19368*/
+/* 19357*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19359*/ OPC_EmitMergeInputChains1_0,
+/* 19360*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19368*/ 0, /*End of Scope*/
+/* 19369*/ 0, /*End of Scope*/
+/* 19370*/ 0, /*End of Scope*/
+/* 19371*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->19529
+/* 19374*/ OPC_CheckChild1Type, MVT::i64,
+/* 19376*/ OPC_RecordChild2, // #2 = $rs2
+/* 19377*/ OPC_Scope, 74, /*->19453*/ // 2 children in Scope
+/* 19379*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_umax_32
+/* 19381*/ OPC_Scope, 13, /*->19396*/ // 5 children in Scope
+/* 19383*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umax_32_monotonic
+/* 19385*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19387*/ OPC_EmitMergeInputChains1_0,
+/* 19388*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19396*/ /*Scope*/ 13, /*->19410*/
+/* 19397*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umax_32_acquire
+/* 19399*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19401*/ OPC_EmitMergeInputChains1_0,
+/* 19402*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19410*/ /*Scope*/ 13, /*->19424*/
+/* 19411*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umax_32_release
+/* 19413*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19415*/ OPC_EmitMergeInputChains1_0,
+/* 19416*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> - Complexity = 4
+ // Dst: (AMOMAXU_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19424*/ /*Scope*/ 13, /*->19438*/
+/* 19425*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umax_32_acq_rel
+/* 19427*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19429*/ OPC_EmitMergeInputChains1_0,
+/* 19430*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19438*/ /*Scope*/ 13, /*->19452*/
+/* 19439*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umax_32_seq_cst
+/* 19441*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19443*/ OPC_EmitMergeInputChains1_0,
+/* 19444*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19452*/ 0, /*End of Scope*/
+/* 19453*/ /*Scope*/ 74, /*->19528*/
+/* 19454*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_umax_64
+/* 19456*/ OPC_Scope, 13, /*->19471*/ // 5 children in Scope
+/* 19458*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umax_64_monotonic
+/* 19460*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19462*/ OPC_EmitMergeInputChains1_0,
+/* 19463*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMAXU_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19471*/ /*Scope*/ 13, /*->19485*/
+/* 19472*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umax_64_acquire
+/* 19474*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19476*/ OPC_EmitMergeInputChains1_0,
+/* 19477*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19485*/ /*Scope*/ 13, /*->19499*/
+/* 19486*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umax_64_release
+/* 19488*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19490*/ OPC_EmitMergeInputChains1_0,
+/* 19491*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> - Complexity = 4
+ // Dst: (AMOMAXU_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19499*/ /*Scope*/ 13, /*->19513*/
+/* 19500*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umax_64_acq_rel
+/* 19502*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19504*/ OPC_EmitMergeInputChains1_0,
+/* 19505*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19513*/ /*Scope*/ 13, /*->19527*/
+/* 19514*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umax_64_seq_cst
+/* 19516*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19518*/ OPC_EmitMergeInputChains1_0,
+/* 19519*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMAXU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMAXU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19527*/ 0, /*End of Scope*/
+/* 19528*/ 0, /*End of Scope*/
+/* 19529*/ 0, // EndSwitchType
+/* 19530*/ /*SwitchOpcode*/ 89|128,3/*473*/, TARGET_VAL(ISD::ATOMIC_LOAD_UMIN),// ->20007
+/* 19534*/ OPC_RecordMemRef,
+/* 19535*/ OPC_RecordNode, // #0 = 'atomic_load_umin' chained node
+/* 19536*/ OPC_RecordChild1, // #1 = $rs1
+/* 19537*/ OPC_SwitchType /*2 cases */, 51|128,2/*307*/, MVT::i32,// ->19848
+/* 19541*/ OPC_CheckChild1Type, MVT::i32,
+/* 19543*/ OPC_RecordChild2, // #2 = $rs2
+/* 19544*/ OPC_Scope, 21|128,1/*149*/, /*->19696*/ // 2 children in Scope
+/* 19547*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_umin_32
+/* 19549*/ OPC_Scope, 28, /*->19579*/ // 5 children in Scope
+/* 19551*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umin_32_monotonic
+/* 19553*/ OPC_Scope, 11, /*->19566*/ // 2 children in Scope
+/* 19555*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19557*/ OPC_EmitMergeInputChains1_0,
+/* 19558*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19566*/ /*Scope*/ 11, /*->19578*/
+/* 19567*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19569*/ OPC_EmitMergeInputChains1_0,
+/* 19570*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19578*/ 0, /*End of Scope*/
+/* 19579*/ /*Scope*/ 28, /*->19608*/
+/* 19580*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umin_32_acquire
+/* 19582*/ OPC_Scope, 11, /*->19595*/ // 2 children in Scope
+/* 19584*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19586*/ OPC_EmitMergeInputChains1_0,
+/* 19587*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19595*/ /*Scope*/ 11, /*->19607*/
+/* 19596*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19598*/ OPC_EmitMergeInputChains1_0,
+/* 19599*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19607*/ 0, /*End of Scope*/
+/* 19608*/ /*Scope*/ 28, /*->19637*/
+/* 19609*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umin_32_release
+/* 19611*/ OPC_Scope, 11, /*->19624*/ // 2 children in Scope
+/* 19613*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19615*/ OPC_EmitMergeInputChains1_0,
+/* 19616*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> - Complexity = 4
+ // Dst: (AMOMINU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19624*/ /*Scope*/ 11, /*->19636*/
+/* 19625*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19627*/ OPC_EmitMergeInputChains1_0,
+/* 19628*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> - Complexity = 4
+ // Dst: (AMOMINU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19636*/ 0, /*End of Scope*/
+/* 19637*/ /*Scope*/ 28, /*->19666*/
+/* 19638*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umin_32_acq_rel
+/* 19640*/ OPC_Scope, 11, /*->19653*/ // 2 children in Scope
+/* 19642*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19644*/ OPC_EmitMergeInputChains1_0,
+/* 19645*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19653*/ /*Scope*/ 11, /*->19665*/
+/* 19654*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19656*/ OPC_EmitMergeInputChains1_0,
+/* 19657*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19665*/ 0, /*End of Scope*/
+/* 19666*/ /*Scope*/ 28, /*->19695*/
+/* 19667*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umin_32_seq_cst
+/* 19669*/ OPC_Scope, 11, /*->19682*/ // 2 children in Scope
+/* 19671*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19673*/ OPC_EmitMergeInputChains1_0,
+/* 19674*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19682*/ /*Scope*/ 11, /*->19694*/
+/* 19683*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 19685*/ OPC_EmitMergeInputChains1_0,
+/* 19686*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19694*/ 0, /*End of Scope*/
+/* 19695*/ 0, /*End of Scope*/
+/* 19696*/ /*Scope*/ 21|128,1/*149*/, /*->19847*/
+/* 19698*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_umin_64
+/* 19700*/ OPC_Scope, 28, /*->19730*/ // 5 children in Scope
+/* 19702*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umin_64_monotonic
+/* 19704*/ OPC_Scope, 11, /*->19717*/ // 2 children in Scope
+/* 19706*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19708*/ OPC_EmitMergeInputChains1_0,
+/* 19709*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19717*/ /*Scope*/ 11, /*->19729*/
+/* 19718*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19720*/ OPC_EmitMergeInputChains1_0,
+/* 19721*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19729*/ 0, /*End of Scope*/
+/* 19730*/ /*Scope*/ 28, /*->19759*/
+/* 19731*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umin_64_acquire
+/* 19733*/ OPC_Scope, 11, /*->19746*/ // 2 children in Scope
+/* 19735*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19737*/ OPC_EmitMergeInputChains1_0,
+/* 19738*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19746*/ /*Scope*/ 11, /*->19758*/
+/* 19747*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19749*/ OPC_EmitMergeInputChains1_0,
+/* 19750*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19758*/ 0, /*End of Scope*/
+/* 19759*/ /*Scope*/ 28, /*->19788*/
+/* 19760*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umin_64_release
+/* 19762*/ OPC_Scope, 11, /*->19775*/ // 2 children in Scope
+/* 19764*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19766*/ OPC_EmitMergeInputChains1_0,
+/* 19767*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> - Complexity = 4
+ // Dst: (AMOMINU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19775*/ /*Scope*/ 11, /*->19787*/
+/* 19776*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19778*/ OPC_EmitMergeInputChains1_0,
+/* 19779*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> - Complexity = 4
+ // Dst: (AMOMINU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19787*/ 0, /*End of Scope*/
+/* 19788*/ /*Scope*/ 28, /*->19817*/
+/* 19789*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umin_64_acq_rel
+/* 19791*/ OPC_Scope, 11, /*->19804*/ // 2 children in Scope
+/* 19793*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19795*/ OPC_EmitMergeInputChains1_0,
+/* 19796*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19804*/ /*Scope*/ 11, /*->19816*/
+/* 19805*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19807*/ OPC_EmitMergeInputChains1_0,
+/* 19808*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19816*/ 0, /*End of Scope*/
+/* 19817*/ /*Scope*/ 28, /*->19846*/
+/* 19818*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umin_64_seq_cst
+/* 19820*/ OPC_Scope, 11, /*->19833*/ // 2 children in Scope
+/* 19822*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 19824*/ OPC_EmitMergeInputChains1_0,
+/* 19825*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19833*/ /*Scope*/ 11, /*->19845*/
+/* 19834*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 19836*/ OPC_EmitMergeInputChains1_0,
+/* 19837*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 19845*/ 0, /*End of Scope*/
+/* 19846*/ 0, /*End of Scope*/
+/* 19847*/ 0, /*End of Scope*/
+/* 19848*/ /*SwitchType*/ 27|128,1/*155*/, MVT::i64,// ->20006
+/* 19851*/ OPC_CheckChild1Type, MVT::i64,
+/* 19853*/ OPC_RecordChild2, // #2 = $rs2
+/* 19854*/ OPC_Scope, 74, /*->19930*/ // 2 children in Scope
+/* 19856*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_umin_32
+/* 19858*/ OPC_Scope, 13, /*->19873*/ // 5 children in Scope
+/* 19860*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umin_32_monotonic
+/* 19862*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19864*/ OPC_EmitMergeInputChains1_0,
+/* 19865*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19873*/ /*Scope*/ 13, /*->19887*/
+/* 19874*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umin_32_acquire
+/* 19876*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19878*/ OPC_EmitMergeInputChains1_0,
+/* 19879*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19887*/ /*Scope*/ 13, /*->19901*/
+/* 19888*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umin_32_release
+/* 19890*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19892*/ OPC_EmitMergeInputChains1_0,
+/* 19893*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> - Complexity = 4
+ // Dst: (AMOMINU_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19901*/ /*Scope*/ 13, /*->19915*/
+/* 19902*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umin_32_acq_rel
+/* 19904*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19906*/ OPC_EmitMergeInputChains1_0,
+/* 19907*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19915*/ /*Scope*/ 13, /*->19929*/
+/* 19916*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umin_32_seq_cst
+/* 19918*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19920*/ OPC_EmitMergeInputChains1_0,
+/* 19921*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19929*/ 0, /*End of Scope*/
+/* 19930*/ /*Scope*/ 74, /*->20005*/
+/* 19931*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_umin_64
+/* 19933*/ OPC_Scope, 13, /*->19948*/ // 5 children in Scope
+/* 19935*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_umin_64_monotonic
+/* 19937*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19939*/ OPC_EmitMergeInputChains1_0,
+/* 19940*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> - Complexity = 4
+ // Dst: (AMOMINU_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19948*/ /*Scope*/ 13, /*->19962*/
+/* 19949*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_umin_64_acquire
+/* 19951*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19953*/ OPC_EmitMergeInputChains1_0,
+/* 19954*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19962*/ /*Scope*/ 13, /*->19976*/
+/* 19963*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_umin_64_release
+/* 19965*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19967*/ OPC_EmitMergeInputChains1_0,
+/* 19968*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> - Complexity = 4
+ // Dst: (AMOMINU_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19976*/ /*Scope*/ 13, /*->19990*/
+/* 19977*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_umin_64_acq_rel
+/* 19979*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19981*/ OPC_EmitMergeInputChains1_0,
+/* 19982*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 19990*/ /*Scope*/ 13, /*->20004*/
+/* 19991*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_umin_64_seq_cst
+/* 19993*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 19995*/ OPC_EmitMergeInputChains1_0,
+/* 19996*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOMINU_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOMINU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 20004*/ 0, /*End of Scope*/
+/* 20005*/ 0, /*End of Scope*/
+/* 20006*/ 0, // EndSwitchType
+/* 20007*/ /*SwitchOpcode*/ 111|128,4/*623*/, TARGET_VAL(ISD::ATOMIC_LOAD_NAND),// ->20634
+/* 20011*/ OPC_RecordMemRef,
+/* 20012*/ OPC_RecordNode, // #0 = 'atomic_load_nand' chained node
+/* 20013*/ OPC_RecordChild1, // #1 = $addr
+/* 20014*/ OPC_SwitchType /*2 cases */, 23|128,3/*407*/, MVT::i32,// ->20425
+/* 20018*/ OPC_CheckChild1Type, MVT::i32,
+/* 20020*/ OPC_RecordChild2, // #2 = $incr
+/* 20021*/ OPC_Scope, 71|128,1/*199*/, /*->20223*/ // 2 children in Scope
+/* 20024*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_nand_32
+/* 20026*/ OPC_Scope, 38, /*->20066*/ // 5 children in Scope
+/* 20028*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_nand_32_monotonic
+/* 20030*/ OPC_Scope, 16, /*->20048*/ // 2 children in Scope
+/* 20032*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20034*/ OPC_EmitMergeInputChains1_0,
+/* 20035*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20038*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 2:{ *:[i32] })
+/* 20048*/ /*Scope*/ 16, /*->20065*/
+/* 20049*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20051*/ OPC_EmitMergeInputChains1_0,
+/* 20052*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20055*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 2:{ *:[i32] })
+/* 20065*/ 0, /*End of Scope*/
+/* 20066*/ /*Scope*/ 38, /*->20105*/
+/* 20067*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_nand_32_acquire
+/* 20069*/ OPC_Scope, 16, /*->20087*/ // 2 children in Scope
+/* 20071*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20073*/ OPC_EmitMergeInputChains1_0,
+/* 20074*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20077*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 4:{ *:[i32] })
+/* 20087*/ /*Scope*/ 16, /*->20104*/
+/* 20088*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20090*/ OPC_EmitMergeInputChains1_0,
+/* 20091*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20094*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 4:{ *:[i32] })
+/* 20104*/ 0, /*End of Scope*/
+/* 20105*/ /*Scope*/ 38, /*->20144*/
+/* 20106*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_nand_32_release
+/* 20108*/ OPC_Scope, 16, /*->20126*/ // 2 children in Scope
+/* 20110*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20112*/ OPC_EmitMergeInputChains1_0,
+/* 20113*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20116*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 5:{ *:[i32] })
+/* 20126*/ /*Scope*/ 16, /*->20143*/
+/* 20127*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20129*/ OPC_EmitMergeInputChains1_0,
+/* 20130*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20133*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 5:{ *:[i32] })
+/* 20143*/ 0, /*End of Scope*/
+/* 20144*/ /*Scope*/ 38, /*->20183*/
+/* 20145*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_nand_32_acq_rel
+/* 20147*/ OPC_Scope, 16, /*->20165*/ // 2 children in Scope
+/* 20149*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20151*/ OPC_EmitMergeInputChains1_0,
+/* 20152*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20155*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 6:{ *:[i32] })
+/* 20165*/ /*Scope*/ 16, /*->20182*/
+/* 20166*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20168*/ OPC_EmitMergeInputChains1_0,
+/* 20169*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20172*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 6:{ *:[i32] })
+/* 20182*/ 0, /*End of Scope*/
+/* 20183*/ /*Scope*/ 38, /*->20222*/
+/* 20184*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_nand_32_seq_cst
+/* 20186*/ OPC_Scope, 16, /*->20204*/ // 2 children in Scope
+/* 20188*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20190*/ OPC_EmitMergeInputChains1_0,
+/* 20191*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20194*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 7:{ *:[i32] })
+/* 20204*/ /*Scope*/ 16, /*->20221*/
+/* 20205*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20207*/ OPC_EmitMergeInputChains1_0,
+/* 20208*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20211*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 7:{ *:[i32] })
+/* 20221*/ 0, /*End of Scope*/
+/* 20222*/ 0, /*End of Scope*/
+/* 20223*/ /*Scope*/ 71|128,1/*199*/, /*->20424*/
+/* 20225*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_nand_64
+/* 20227*/ OPC_Scope, 38, /*->20267*/ // 5 children in Scope
+/* 20229*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_nand_64_monotonic
+/* 20231*/ OPC_Scope, 16, /*->20249*/ // 2 children in Scope
+/* 20233*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20235*/ OPC_EmitMergeInputChains1_0,
+/* 20236*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20239*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 2:{ *:[i32] })
+/* 20249*/ /*Scope*/ 16, /*->20266*/
+/* 20250*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20252*/ OPC_EmitMergeInputChains1_0,
+/* 20253*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20256*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 2:{ *:[i32] })
+/* 20266*/ 0, /*End of Scope*/
+/* 20267*/ /*Scope*/ 38, /*->20306*/
+/* 20268*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_nand_64_acquire
+/* 20270*/ OPC_Scope, 16, /*->20288*/ // 2 children in Scope
+/* 20272*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20274*/ OPC_EmitMergeInputChains1_0,
+/* 20275*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20278*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 4:{ *:[i32] })
+/* 20288*/ /*Scope*/ 16, /*->20305*/
+/* 20289*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20291*/ OPC_EmitMergeInputChains1_0,
+/* 20292*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20295*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 4:{ *:[i32] })
+/* 20305*/ 0, /*End of Scope*/
+/* 20306*/ /*Scope*/ 38, /*->20345*/
+/* 20307*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_nand_64_release
+/* 20309*/ OPC_Scope, 16, /*->20327*/ // 2 children in Scope
+/* 20311*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20313*/ OPC_EmitMergeInputChains1_0,
+/* 20314*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20317*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 5:{ *:[i32] })
+/* 20327*/ /*Scope*/ 16, /*->20344*/
+/* 20328*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20330*/ OPC_EmitMergeInputChains1_0,
+/* 20331*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20334*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 5:{ *:[i32] })
+/* 20344*/ 0, /*End of Scope*/
+/* 20345*/ /*Scope*/ 38, /*->20384*/
+/* 20346*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_nand_64_acq_rel
+/* 20348*/ OPC_Scope, 16, /*->20366*/ // 2 children in Scope
+/* 20350*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20352*/ OPC_EmitMergeInputChains1_0,
+/* 20353*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20356*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 6:{ *:[i32] })
+/* 20366*/ /*Scope*/ 16, /*->20383*/
+/* 20367*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20369*/ OPC_EmitMergeInputChains1_0,
+/* 20370*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20373*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 6:{ *:[i32] })
+/* 20383*/ 0, /*End of Scope*/
+/* 20384*/ /*Scope*/ 38, /*->20423*/
+/* 20385*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_nand_64_seq_cst
+/* 20387*/ OPC_Scope, 16, /*->20405*/ // 2 children in Scope
+/* 20389*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20391*/ OPC_EmitMergeInputChains1_0,
+/* 20392*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20395*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 7:{ *:[i32] })
+/* 20405*/ /*Scope*/ 16, /*->20422*/
+/* 20406*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20408*/ OPC_EmitMergeInputChains1_0,
+/* 20409*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20412*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr, 7:{ *:[i32] })
+/* 20422*/ 0, /*End of Scope*/
+/* 20423*/ 0, /*End of Scope*/
+/* 20424*/ 0, /*End of Scope*/
+/* 20425*/ /*SwitchType*/ 77|128,1/*205*/, MVT::i64,// ->20633
+/* 20428*/ OPC_CheckChild1Type, MVT::i64,
+/* 20430*/ OPC_RecordChild2, // #2 = $incr
+/* 20431*/ OPC_Scope, 99, /*->20532*/ // 2 children in Scope
+/* 20433*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_nand_32
+/* 20435*/ OPC_Scope, 18, /*->20455*/ // 5 children in Scope
+/* 20437*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_nand_32_monotonic
+/* 20439*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20441*/ OPC_EmitMergeInputChains1_0,
+/* 20442*/ OPC_EmitInteger, MVT::i64, 2,
+/* 20445*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 2:{ *:[i64] })
+/* 20455*/ /*Scope*/ 18, /*->20474*/
+/* 20456*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_nand_32_acquire
+/* 20458*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20460*/ OPC_EmitMergeInputChains1_0,
+/* 20461*/ OPC_EmitInteger, MVT::i64, 4,
+/* 20464*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 4:{ *:[i64] })
+/* 20474*/ /*Scope*/ 18, /*->20493*/
+/* 20475*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_nand_32_release
+/* 20477*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20479*/ OPC_EmitMergeInputChains1_0,
+/* 20480*/ OPC_EmitInteger, MVT::i64, 5,
+/* 20483*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 5:{ *:[i64] })
+/* 20493*/ /*Scope*/ 18, /*->20512*/
+/* 20494*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_nand_32_acq_rel
+/* 20496*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20498*/ OPC_EmitMergeInputChains1_0,
+/* 20499*/ OPC_EmitInteger, MVT::i64, 6,
+/* 20502*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 6:{ *:[i64] })
+/* 20512*/ /*Scope*/ 18, /*->20531*/
+/* 20513*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_nand_32_seq_cst
+/* 20515*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20517*/ OPC_EmitMergeInputChains1_0,
+/* 20518*/ OPC_EmitInteger, MVT::i64, 7,
+/* 20521*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_32>><<P:Predicate_atomic_load_nand_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 7:{ *:[i64] })
+/* 20531*/ 0, /*End of Scope*/
+/* 20532*/ /*Scope*/ 99, /*->20632*/
+/* 20533*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_nand_64
+/* 20535*/ OPC_Scope, 18, /*->20555*/ // 5 children in Scope
+/* 20537*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_nand_64_monotonic
+/* 20539*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20541*/ OPC_EmitMergeInputChains1_0,
+/* 20542*/ OPC_EmitInteger, MVT::i64, 2,
+/* 20545*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 2:{ *:[i64] })
+/* 20555*/ /*Scope*/ 18, /*->20574*/
+/* 20556*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_nand_64_acquire
+/* 20558*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20560*/ OPC_EmitMergeInputChains1_0,
+/* 20561*/ OPC_EmitInteger, MVT::i64, 4,
+/* 20564*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acquire>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 4:{ *:[i64] })
+/* 20574*/ /*Scope*/ 18, /*->20593*/
+/* 20575*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_nand_64_release
+/* 20577*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20579*/ OPC_EmitMergeInputChains1_0,
+/* 20580*/ OPC_EmitInteger, MVT::i64, 5,
+/* 20583*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_release>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 5:{ *:[i64] })
+/* 20593*/ /*Scope*/ 18, /*->20612*/
+/* 20594*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_nand_64_acq_rel
+/* 20596*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20598*/ OPC_EmitMergeInputChains1_0,
+/* 20599*/ OPC_EmitInteger, MVT::i64, 6,
+/* 20602*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 6:{ *:[i64] })
+/* 20612*/ /*Scope*/ 18, /*->20631*/
+/* 20613*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_nand_64_seq_cst
+/* 20615*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 20617*/ OPC_EmitMergeInputChains1_0,
+/* 20618*/ OPC_EmitInteger, MVT::i64, 7,
+/* 20621*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoAtomicLoadNand64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 3/*#Ops*/, 1, 2, 3,
+ // Src: (atomic_load_nand:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_nand_64>><<P:Predicate_atomic_load_nand_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoAtomicLoadNand64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr, 7:{ *:[i64] })
+/* 20631*/ 0, /*End of Scope*/
+/* 20632*/ 0, /*End of Scope*/
+/* 20633*/ 0, // EndSwitchType
+/* 20634*/ /*SwitchOpcode*/ 15|128,5/*655*/, TARGET_VAL(ISD::ATOMIC_CMP_SWAP),// ->21293
+/* 20638*/ OPC_RecordMemRef,
+/* 20639*/ OPC_RecordNode, // #0 = 'atomic_cmp_swap' chained node
+/* 20640*/ OPC_RecordChild1, // #1 = $addr
+/* 20641*/ OPC_SwitchType /*2 cases */, 44|128,3/*428*/, MVT::i32,// ->21073
+/* 20645*/ OPC_CheckChild1Type, MVT::i32,
+/* 20647*/ OPC_RecordChild2, // #2 = $cmp
+/* 20648*/ OPC_RecordChild3, // #3 = $new
+/* 20649*/ OPC_Scope, 81|128,1/*209*/, /*->20861*/ // 2 children in Scope
+/* 20652*/ OPC_CheckPredicate, 10, // Predicate_atomic_cmp_swap_32
+/* 20654*/ OPC_Scope, 40, /*->20696*/ // 5 children in Scope
+/* 20656*/ OPC_CheckPredicate, 20, // Predicate_atomic_cmp_swap_32_monotonic
+/* 20658*/ OPC_Scope, 17, /*->20677*/ // 2 children in Scope
+/* 20660*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20662*/ OPC_EmitMergeInputChains1_0,
+/* 20663*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20666*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 2:{ *:[i32] })
+/* 20677*/ /*Scope*/ 17, /*->20695*/
+/* 20678*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20680*/ OPC_EmitMergeInputChains1_0,
+/* 20681*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20684*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 2:{ *:[i32] })
+/* 20695*/ 0, /*End of Scope*/
+/* 20696*/ /*Scope*/ 40, /*->20737*/
+/* 20697*/ OPC_CheckPredicate, 21, // Predicate_atomic_cmp_swap_32_acquire
+/* 20699*/ OPC_Scope, 17, /*->20718*/ // 2 children in Scope
+/* 20701*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20703*/ OPC_EmitMergeInputChains1_0,
+/* 20704*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20707*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 4:{ *:[i32] })
+/* 20718*/ /*Scope*/ 17, /*->20736*/
+/* 20719*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20721*/ OPC_EmitMergeInputChains1_0,
+/* 20722*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20725*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 4:{ *:[i32] })
+/* 20736*/ 0, /*End of Scope*/
+/* 20737*/ /*Scope*/ 40, /*->20778*/
+/* 20738*/ OPC_CheckPredicate, 22, // Predicate_atomic_cmp_swap_32_release
+/* 20740*/ OPC_Scope, 17, /*->20759*/ // 2 children in Scope
+/* 20742*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20744*/ OPC_EmitMergeInputChains1_0,
+/* 20745*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20748*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 5:{ *:[i32] })
+/* 20759*/ /*Scope*/ 17, /*->20777*/
+/* 20760*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20762*/ OPC_EmitMergeInputChains1_0,
+/* 20763*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20766*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 5:{ *:[i32] })
+/* 20777*/ 0, /*End of Scope*/
+/* 20778*/ /*Scope*/ 40, /*->20819*/
+/* 20779*/ OPC_CheckPredicate, 23, // Predicate_atomic_cmp_swap_32_acq_rel
+/* 20781*/ OPC_Scope, 17, /*->20800*/ // 2 children in Scope
+/* 20783*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20785*/ OPC_EmitMergeInputChains1_0,
+/* 20786*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20789*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 6:{ *:[i32] })
+/* 20800*/ /*Scope*/ 17, /*->20818*/
+/* 20801*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20803*/ OPC_EmitMergeInputChains1_0,
+/* 20804*/ OPC_EmitInteger, MVT::i32, 6,
+/* 20807*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 6:{ *:[i32] })
+/* 20818*/ 0, /*End of Scope*/
+/* 20819*/ /*Scope*/ 40, /*->20860*/
+/* 20820*/ OPC_CheckPredicate, 24, // Predicate_atomic_cmp_swap_32_seq_cst
+/* 20822*/ OPC_Scope, 17, /*->20841*/ // 2 children in Scope
+/* 20824*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20826*/ OPC_EmitMergeInputChains1_0,
+/* 20827*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20830*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 7:{ *:[i32] })
+/* 20841*/ /*Scope*/ 17, /*->20859*/
+/* 20842*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 20844*/ OPC_EmitMergeInputChains1_0,
+/* 20845*/ OPC_EmitInteger, MVT::i32, 7,
+/* 20848*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 7:{ *:[i32] })
+/* 20859*/ 0, /*End of Scope*/
+/* 20860*/ 0, /*End of Scope*/
+/* 20861*/ /*Scope*/ 81|128,1/*209*/, /*->21072*/
+/* 20863*/ OPC_CheckPredicate, 14, // Predicate_atomic_cmp_swap_64
+/* 20865*/ OPC_Scope, 40, /*->20907*/ // 5 children in Scope
+/* 20867*/ OPC_CheckPredicate, 20, // Predicate_atomic_cmp_swap_64_monotonic
+/* 20869*/ OPC_Scope, 17, /*->20888*/ // 2 children in Scope
+/* 20871*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20873*/ OPC_EmitMergeInputChains1_0,
+/* 20874*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20877*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 2:{ *:[i32] })
+/* 20888*/ /*Scope*/ 17, /*->20906*/
+/* 20889*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20891*/ OPC_EmitMergeInputChains1_0,
+/* 20892*/ OPC_EmitInteger, MVT::i32, 2,
+/* 20895*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 2:{ *:[i32] })
+/* 20906*/ 0, /*End of Scope*/
+/* 20907*/ /*Scope*/ 40, /*->20948*/
+/* 20908*/ OPC_CheckPredicate, 21, // Predicate_atomic_cmp_swap_64_acquire
+/* 20910*/ OPC_Scope, 17, /*->20929*/ // 2 children in Scope
+/* 20912*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20914*/ OPC_EmitMergeInputChains1_0,
+/* 20915*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20918*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 4:{ *:[i32] })
+/* 20929*/ /*Scope*/ 17, /*->20947*/
+/* 20930*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20932*/ OPC_EmitMergeInputChains1_0,
+/* 20933*/ OPC_EmitInteger, MVT::i32, 4,
+/* 20936*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 4:{ *:[i32] })
+/* 20947*/ 0, /*End of Scope*/
+/* 20948*/ /*Scope*/ 40, /*->20989*/
+/* 20949*/ OPC_CheckPredicate, 22, // Predicate_atomic_cmp_swap_64_release
+/* 20951*/ OPC_Scope, 17, /*->20970*/ // 2 children in Scope
+/* 20953*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20955*/ OPC_EmitMergeInputChains1_0,
+/* 20956*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20959*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 5:{ *:[i32] })
+/* 20970*/ /*Scope*/ 17, /*->20988*/
+/* 20971*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 20973*/ OPC_EmitMergeInputChains1_0,
+/* 20974*/ OPC_EmitInteger, MVT::i32, 5,
+/* 20977*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 5:{ *:[i32] })
+/* 20988*/ 0, /*End of Scope*/
+/* 20989*/ /*Scope*/ 40, /*->21030*/
+/* 20990*/ OPC_CheckPredicate, 23, // Predicate_atomic_cmp_swap_64_acq_rel
+/* 20992*/ OPC_Scope, 17, /*->21011*/ // 2 children in Scope
+/* 20994*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 20996*/ OPC_EmitMergeInputChains1_0,
+/* 20997*/ OPC_EmitInteger, MVT::i32, 6,
+/* 21000*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 6:{ *:[i32] })
+/* 21011*/ /*Scope*/ 17, /*->21029*/
+/* 21012*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21014*/ OPC_EmitMergeInputChains1_0,
+/* 21015*/ OPC_EmitInteger, MVT::i32, 6,
+/* 21018*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 6:{ *:[i32] })
+/* 21029*/ 0, /*End of Scope*/
+/* 21030*/ /*Scope*/ 40, /*->21071*/
+/* 21031*/ OPC_CheckPredicate, 24, // Predicate_atomic_cmp_swap_64_seq_cst
+/* 21033*/ OPC_Scope, 17, /*->21052*/ // 2 children in Scope
+/* 21035*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21037*/ OPC_EmitMergeInputChains1_0,
+/* 21038*/ OPC_EmitInteger, MVT::i32, 7,
+/* 21041*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 7:{ *:[i32] })
+/* 21052*/ /*Scope*/ 17, /*->21070*/
+/* 21053*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21055*/ OPC_EmitMergeInputChains1_0,
+/* 21056*/ OPC_EmitInteger, MVT::i32, 7,
+/* 21059*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, MVT::i32, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i32] }:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$cmp, GPR:{ *:[i32] }:$new, 7:{ *:[i32] })
+/* 21070*/ 0, /*End of Scope*/
+/* 21071*/ 0, /*End of Scope*/
+/* 21072*/ 0, /*End of Scope*/
+/* 21073*/ /*SwitchType*/ 88|128,1/*216*/, MVT::i64,// ->21292
+/* 21076*/ OPC_CheckChild1Type, MVT::i64,
+/* 21078*/ OPC_RecordChild2, // #2 = $cmp
+/* 21079*/ OPC_RecordChild3, // #3 = $new
+/* 21080*/ OPC_Scope, 104, /*->21186*/ // 2 children in Scope
+/* 21082*/ OPC_CheckPredicate, 10, // Predicate_atomic_cmp_swap_32
+/* 21084*/ OPC_Scope, 19, /*->21105*/ // 5 children in Scope
+/* 21086*/ OPC_CheckPredicate, 20, // Predicate_atomic_cmp_swap_32_monotonic
+/* 21088*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21090*/ OPC_EmitMergeInputChains1_0,
+/* 21091*/ OPC_EmitInteger, MVT::i64, 2,
+/* 21094*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 2:{ *:[i64] })
+/* 21105*/ /*Scope*/ 19, /*->21125*/
+/* 21106*/ OPC_CheckPredicate, 21, // Predicate_atomic_cmp_swap_32_acquire
+/* 21108*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21110*/ OPC_EmitMergeInputChains1_0,
+/* 21111*/ OPC_EmitInteger, MVT::i64, 4,
+/* 21114*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 4:{ *:[i64] })
+/* 21125*/ /*Scope*/ 19, /*->21145*/
+/* 21126*/ OPC_CheckPredicate, 22, // Predicate_atomic_cmp_swap_32_release
+/* 21128*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21130*/ OPC_EmitMergeInputChains1_0,
+/* 21131*/ OPC_EmitInteger, MVT::i64, 5,
+/* 21134*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 5:{ *:[i64] })
+/* 21145*/ /*Scope*/ 19, /*->21165*/
+/* 21146*/ OPC_CheckPredicate, 23, // Predicate_atomic_cmp_swap_32_acq_rel
+/* 21148*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21150*/ OPC_EmitMergeInputChains1_0,
+/* 21151*/ OPC_EmitInteger, MVT::i64, 6,
+/* 21154*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 6:{ *:[i64] })
+/* 21165*/ /*Scope*/ 19, /*->21185*/
+/* 21166*/ OPC_CheckPredicate, 24, // Predicate_atomic_cmp_swap_32_seq_cst
+/* 21168*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21170*/ OPC_EmitMergeInputChains1_0,
+/* 21171*/ OPC_EmitInteger, MVT::i64, 7,
+/* 21174*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg32), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_32>><<P:Predicate_atomic_cmp_swap_32_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg32:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 7:{ *:[i64] })
+/* 21185*/ 0, /*End of Scope*/
+/* 21186*/ /*Scope*/ 104, /*->21291*/
+/* 21187*/ OPC_CheckPredicate, 14, // Predicate_atomic_cmp_swap_64
+/* 21189*/ OPC_Scope, 19, /*->21210*/ // 5 children in Scope
+/* 21191*/ OPC_CheckPredicate, 20, // Predicate_atomic_cmp_swap_64_monotonic
+/* 21193*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21195*/ OPC_EmitMergeInputChains1_0,
+/* 21196*/ OPC_EmitInteger, MVT::i64, 2,
+/* 21199*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_monotonic>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 2:{ *:[i64] })
+/* 21210*/ /*Scope*/ 19, /*->21230*/
+/* 21211*/ OPC_CheckPredicate, 21, // Predicate_atomic_cmp_swap_64_acquire
+/* 21213*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21215*/ OPC_EmitMergeInputChains1_0,
+/* 21216*/ OPC_EmitInteger, MVT::i64, 4,
+/* 21219*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acquire>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 4:{ *:[i64] })
+/* 21230*/ /*Scope*/ 19, /*->21250*/
+/* 21231*/ OPC_CheckPredicate, 22, // Predicate_atomic_cmp_swap_64_release
+/* 21233*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21235*/ OPC_EmitMergeInputChains1_0,
+/* 21236*/ OPC_EmitInteger, MVT::i64, 5,
+/* 21239*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_release>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 5:{ *:[i64] })
+/* 21250*/ /*Scope*/ 19, /*->21270*/
+/* 21251*/ OPC_CheckPredicate, 23, // Predicate_atomic_cmp_swap_64_acq_rel
+/* 21253*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21255*/ OPC_EmitMergeInputChains1_0,
+/* 21256*/ OPC_EmitInteger, MVT::i64, 6,
+/* 21259*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_acq_rel>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 6:{ *:[i64] })
+/* 21270*/ /*Scope*/ 19, /*->21290*/
+/* 21271*/ OPC_CheckPredicate, 24, // Predicate_atomic_cmp_swap_64_seq_cst
+/* 21273*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21275*/ OPC_EmitMergeInputChains1_0,
+/* 21276*/ OPC_EmitInteger, MVT::i64, 7,
+/* 21279*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::PseudoCmpXchg64), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, MVT::i64, 4/*#Ops*/, 1, 2, 3, 4,
+ // Src: (atomic_cmp_swap:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new)<<P:Predicate_atomic_cmp_swap_64>><<P:Predicate_atomic_cmp_swap_64_seq_cst>> - Complexity = 4
+ // Dst: (PseudoCmpXchg64:{ *:[i64] }:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$cmp, GPR:{ *:[i64] }:$new, 7:{ *:[i64] })
+/* 21290*/ 0, /*End of Scope*/
+/* 21291*/ 0, /*End of Scope*/
+/* 21292*/ 0, // EndSwitchType
+/* 21293*/ /*SwitchOpcode*/ 37|128,6/*805*/, TARGET_VAL(ISD::ATOMIC_LOAD_SUB),// ->22102
+/* 21297*/ OPC_RecordMemRef,
+/* 21298*/ OPC_RecordNode, // #0 = 'atomic_load_sub' chained node
+/* 21299*/ OPC_RecordChild1, // #1 = $addr
+/* 21300*/ OPC_SwitchType /*2 cases */, 15|128,4/*527*/, MVT::i32,// ->21831
+/* 21304*/ OPC_CheckChild1Type, MVT::i32,
+/* 21306*/ OPC_RecordChild2, // #2 = $incr
+/* 21307*/ OPC_Scope, 3|128,2/*259*/, /*->21569*/ // 2 children in Scope
+/* 21310*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_sub_32
+/* 21312*/ OPC_Scope, 50, /*->21364*/ // 5 children in Scope
+/* 21314*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_sub_32_monotonic
+/* 21316*/ OPC_Scope, 22, /*->21340*/ // 2 children in Scope
+/* 21318*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21320*/ OPC_EmitMergeInputChains1_0,
+/* 21321*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21324*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21332*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21340*/ /*Scope*/ 22, /*->21363*/
+/* 21341*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 21343*/ OPC_EmitMergeInputChains1_0,
+/* 21344*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21347*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21355*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21363*/ 0, /*End of Scope*/
+/* 21364*/ /*Scope*/ 50, /*->21415*/
+/* 21365*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_sub_32_acquire
+/* 21367*/ OPC_Scope, 22, /*->21391*/ // 2 children in Scope
+/* 21369*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21371*/ OPC_EmitMergeInputChains1_0,
+/* 21372*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21375*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21383*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21391*/ /*Scope*/ 22, /*->21414*/
+/* 21392*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 21394*/ OPC_EmitMergeInputChains1_0,
+/* 21395*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21398*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21406*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21414*/ 0, /*End of Scope*/
+/* 21415*/ /*Scope*/ 50, /*->21466*/
+/* 21416*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_sub_32_release
+/* 21418*/ OPC_Scope, 22, /*->21442*/ // 2 children in Scope
+/* 21420*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21422*/ OPC_EmitMergeInputChains1_0,
+/* 21423*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21426*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21434*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21442*/ /*Scope*/ 22, /*->21465*/
+/* 21443*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 21445*/ OPC_EmitMergeInputChains1_0,
+/* 21446*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21449*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21457*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21465*/ 0, /*End of Scope*/
+/* 21466*/ /*Scope*/ 50, /*->21517*/
+/* 21467*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_sub_32_acq_rel
+/* 21469*/ OPC_Scope, 22, /*->21493*/ // 2 children in Scope
+/* 21471*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21473*/ OPC_EmitMergeInputChains1_0,
+/* 21474*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21477*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21485*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21493*/ /*Scope*/ 22, /*->21516*/
+/* 21494*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 21496*/ OPC_EmitMergeInputChains1_0,
+/* 21497*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21500*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21508*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21516*/ 0, /*End of Scope*/
+/* 21517*/ /*Scope*/ 50, /*->21568*/
+/* 21518*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_sub_32_seq_cst
+/* 21520*/ OPC_Scope, 22, /*->21544*/ // 2 children in Scope
+/* 21522*/ OPC_CheckPatternPredicate, 17, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21524*/ OPC_EmitMergeInputChains1_0,
+/* 21525*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21528*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21536*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21544*/ /*Scope*/ 22, /*->21567*/
+/* 21545*/ OPC_CheckPatternPredicate, 18, // (Subtarget->hasStdExtA())
+/* 21547*/ OPC_EmitMergeInputChains1_0,
+/* 21548*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21551*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21559*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21567*/ 0, /*End of Scope*/
+/* 21568*/ 0, /*End of Scope*/
+/* 21569*/ /*Scope*/ 3|128,2/*259*/, /*->21830*/
+/* 21571*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_sub_64
+/* 21573*/ OPC_Scope, 50, /*->21625*/ // 5 children in Scope
+/* 21575*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_sub_64_monotonic
+/* 21577*/ OPC_Scope, 22, /*->21601*/ // 2 children in Scope
+/* 21579*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21581*/ OPC_EmitMergeInputChains1_0,
+/* 21582*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21585*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21593*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21601*/ /*Scope*/ 22, /*->21624*/
+/* 21602*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21604*/ OPC_EmitMergeInputChains1_0,
+/* 21605*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21608*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21616*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21624*/ 0, /*End of Scope*/
+/* 21625*/ /*Scope*/ 50, /*->21676*/
+/* 21626*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_sub_64_acquire
+/* 21628*/ OPC_Scope, 22, /*->21652*/ // 2 children in Scope
+/* 21630*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21632*/ OPC_EmitMergeInputChains1_0,
+/* 21633*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21636*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21644*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21652*/ /*Scope*/ 22, /*->21675*/
+/* 21653*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21655*/ OPC_EmitMergeInputChains1_0,
+/* 21656*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21659*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21667*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21675*/ 0, /*End of Scope*/
+/* 21676*/ /*Scope*/ 50, /*->21727*/
+/* 21677*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_sub_64_release
+/* 21679*/ OPC_Scope, 22, /*->21703*/ // 2 children in Scope
+/* 21681*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21683*/ OPC_EmitMergeInputChains1_0,
+/* 21684*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21687*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21695*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21703*/ /*Scope*/ 22, /*->21726*/
+/* 21704*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21706*/ OPC_EmitMergeInputChains1_0,
+/* 21707*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21710*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21718*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21726*/ 0, /*End of Scope*/
+/* 21727*/ /*Scope*/ 50, /*->21778*/
+/* 21728*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_sub_64_acq_rel
+/* 21730*/ OPC_Scope, 22, /*->21754*/ // 2 children in Scope
+/* 21732*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21734*/ OPC_EmitMergeInputChains1_0,
+/* 21735*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21738*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21746*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21754*/ /*Scope*/ 22, /*->21777*/
+/* 21755*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21757*/ OPC_EmitMergeInputChains1_0,
+/* 21758*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21761*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21769*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21777*/ 0, /*End of Scope*/
+/* 21778*/ /*Scope*/ 50, /*->21829*/
+/* 21779*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_sub_64_seq_cst
+/* 21781*/ OPC_Scope, 22, /*->21805*/ // 2 children in Scope
+/* 21783*/ OPC_CheckPatternPredicate, 19, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 21785*/ OPC_EmitMergeInputChains1_0,
+/* 21786*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21789*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21797*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21805*/ /*Scope*/ 22, /*->21828*/
+/* 21806*/ OPC_CheckPatternPredicate, 20, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit())
+/* 21808*/ OPC_EmitMergeInputChains1_0,
+/* 21809*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 21812*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21820*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i32, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+/* 21828*/ 0, /*End of Scope*/
+/* 21829*/ 0, /*End of Scope*/
+/* 21830*/ 0, /*End of Scope*/
+/* 21831*/ /*SwitchType*/ 11|128,2/*267*/, MVT::i64,// ->22101
+/* 21834*/ OPC_CheckChild1Type, MVT::i64,
+/* 21836*/ OPC_RecordChild2, // #2 = $incr
+/* 21837*/ OPC_Scope, 1|128,1/*129*/, /*->21969*/ // 2 children in Scope
+/* 21840*/ OPC_CheckPredicate, 10, // Predicate_atomic_load_sub_32
+/* 21842*/ OPC_Scope, 24, /*->21868*/ // 5 children in Scope
+/* 21844*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_sub_32_monotonic
+/* 21846*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21848*/ OPC_EmitMergeInputChains1_0,
+/* 21849*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21852*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21860*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_W:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21868*/ /*Scope*/ 24, /*->21893*/
+/* 21869*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_sub_32_acquire
+/* 21871*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21873*/ OPC_EmitMergeInputChains1_0,
+/* 21874*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21877*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21885*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21893*/ /*Scope*/ 24, /*->21918*/
+/* 21894*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_sub_32_release
+/* 21896*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21898*/ OPC_EmitMergeInputChains1_0,
+/* 21899*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21902*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21910*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> - Complexity = 4
+ // Dst: (AMOADD_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21918*/ /*Scope*/ 24, /*->21943*/
+/* 21919*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_sub_32_acq_rel
+/* 21921*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21923*/ OPC_EmitMergeInputChains1_0,
+/* 21924*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21927*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21935*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21943*/ /*Scope*/ 24, /*->21968*/
+/* 21944*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_sub_32_seq_cst
+/* 21946*/ OPC_CheckPatternPredicate, 21, // (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21948*/ OPC_EmitMergeInputChains1_0,
+/* 21949*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21952*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21960*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_W_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21968*/ 0, /*End of Scope*/
+/* 21969*/ /*Scope*/ 1|128,1/*129*/, /*->22100*/
+/* 21971*/ OPC_CheckPredicate, 14, // Predicate_atomic_load_sub_64
+/* 21973*/ OPC_Scope, 24, /*->21999*/ // 5 children in Scope
+/* 21975*/ OPC_CheckPredicate, 20, // Predicate_atomic_load_sub_64_monotonic
+/* 21977*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 21979*/ OPC_EmitMergeInputChains1_0,
+/* 21980*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 21983*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 21991*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> - Complexity = 4
+ // Dst: (AMOADD_D:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 21999*/ /*Scope*/ 24, /*->22024*/
+/* 22000*/ OPC_CheckPredicate, 21, // Predicate_atomic_load_sub_64_acquire
+/* 22002*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22004*/ OPC_EmitMergeInputChains1_0,
+/* 22005*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22008*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 22016*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 22024*/ /*Scope*/ 24, /*->22049*/
+/* 22025*/ OPC_CheckPredicate, 22, // Predicate_atomic_load_sub_64_release
+/* 22027*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22029*/ OPC_EmitMergeInputChains1_0,
+/* 22030*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22033*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 22041*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> - Complexity = 4
+ // Dst: (AMOADD_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 22049*/ /*Scope*/ 24, /*->22074*/
+/* 22050*/ OPC_CheckPredicate, 23, // Predicate_atomic_load_sub_64_acq_rel
+/* 22052*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22054*/ OPC_EmitMergeInputChains1_0,
+/* 22055*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22058*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 22066*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 22074*/ /*Scope*/ 24, /*->22099*/
+/* 22075*/ OPC_CheckPredicate, 24, // Predicate_atomic_load_sub_64_seq_cst
+/* 22077*/ OPC_CheckPatternPredicate, 22, // (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22079*/ OPC_EmitMergeInputChains1_0,
+/* 22080*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22083*/ OPC_EmitNode1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 3, 2, // Results = #4
+/* 22091*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::AMOADD_D_AQ_RL), 0|OPFL_Chain|OPFL_MemRefs,
+ MVT::i64, 2/*#Ops*/, 1, 4,
+ // Src: (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> - Complexity = 4
+ // Dst: (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+/* 22099*/ 0, /*End of Scope*/
+/* 22100*/ 0, /*End of Scope*/
+/* 22101*/ 0, // EndSwitchType
+/* 22102*/ /*SwitchOpcode*/ 14, TARGET_VAL(ISD::BR),// ->22119
+/* 22105*/ OPC_RecordNode, // #0 = 'br' chained node
+/* 22106*/ OPC_RecordChild1, // #1 = $imm20
+/* 22107*/ OPC_MoveChild1,
+/* 22108*/ OPC_CheckOpcode, TARGET_VAL(ISD::BasicBlock),
+/* 22111*/ OPC_MoveParent,
+/* 22112*/ OPC_EmitMergeInputChains1_0,
+/* 22113*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoBR), 0|OPFL_Chain,
+ 1/*#Ops*/, 1,
+ // Src: (br (bb:{ *:[Other] }):$imm20) - Complexity = 3
+ // Dst: (PseudoBR (bb:{ *:[Other] }):$imm20)
+/* 22119*/ /*SwitchOpcode*/ 8, TARGET_VAL(RISCVISD::RET_FLAG),// ->22130
+/* 22122*/ OPC_RecordNode, // #0 = 'riscv_ret_flag' chained node
+/* 22123*/ OPC_CaptureGlueInput,
+/* 22124*/ OPC_EmitMergeInputChains1_0,
+/* 22125*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::PseudoRET), 0|OPFL_Chain|OPFL_GlueInput|OPFL_Variadic0,
+ 0/*#Ops*/,
+ // Src: (riscv_ret_flag) - Complexity = 3
+ // Dst: (PseudoRET)
+/* 22130*/ /*SwitchOpcode*/ 7, TARGET_VAL(ISD::TRAP),// ->22140
+/* 22133*/ OPC_RecordNode, // #0 = 'trap' chained node
+/* 22134*/ OPC_EmitMergeInputChains1_0,
+/* 22135*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::UNIMP), 0|OPFL_Chain,
+ 0/*#Ops*/,
+ // Src: (trap) - Complexity = 3
+ // Dst: (UNIMP)
+/* 22140*/ /*SwitchOpcode*/ 7, TARGET_VAL(ISD::DEBUGTRAP),// ->22150
+/* 22143*/ OPC_RecordNode, // #0 = 'debugtrap' chained node
+/* 22144*/ OPC_EmitMergeInputChains1_0,
+/* 22145*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::EBREAK), 0|OPFL_Chain,
+ 0/*#Ops*/,
+ // Src: (debugtrap) - Complexity = 3
+ // Dst: (EBREAK)
+/* 22150*/ /*SwitchOpcode*/ 40, TARGET_VAL(ISD::SUB),// ->22193
+/* 22153*/ OPC_RecordChild0, // #0 = $rs1
+/* 22154*/ OPC_RecordChild1, // #1 = $rs2
+/* 22155*/ OPC_SwitchType /*2 cases */, 22, MVT::i32,// ->22180
+/* 22158*/ OPC_Scope, 10, /*->22170*/ // 2 children in Scope
+/* 22160*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22162*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SUB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22170*/ /*Scope*/ 8, /*->22179*/
+/* 22171*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sub:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SUB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22179*/ 0, /*End of Scope*/
+/* 22180*/ /*SwitchType*/ 10, MVT::i64,// ->22192
+/* 22182*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22184*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SUB), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sub:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SUB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22192*/ 0, // EndSwitchType
+/* 22193*/ /*SwitchOpcode*/ 53, TARGET_VAL(RISCVISD::URET_FLAG),// ->22249
+/* 22196*/ OPC_RecordNode, // #0 = 'riscv_uret_flag' chained node
+/* 22197*/ OPC_CaptureGlueInput,
+/* 22198*/ OPC_Scope, 16, /*->22216*/ // 3 children in Scope
+/* 22200*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22202*/ OPC_EmitMergeInputChains1_0,
+/* 22203*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22206*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22209*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::URET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_uret_flag) - Complexity = 3
+ // Dst: (URET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22216*/ /*Scope*/ 16, /*->22233*/
+/* 22217*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22219*/ OPC_EmitMergeInputChains1_0,
+/* 22220*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22223*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22226*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::URET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_uret_flag) - Complexity = 3
+ // Dst: (URET X0:{ *:[i64] }, X0:{ *:[i64] })
+/* 22233*/ /*Scope*/ 14, /*->22248*/
+/* 22234*/ OPC_EmitMergeInputChains1_0,
+/* 22235*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22238*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22241*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::URET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_uret_flag) - Complexity = 3
+ // Dst: (URET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22248*/ 0, /*End of Scope*/
+/* 22249*/ /*SwitchOpcode*/ 53, TARGET_VAL(RISCVISD::SRET_FLAG),// ->22305
+/* 22252*/ OPC_RecordNode, // #0 = 'riscv_sret_flag' chained node
+/* 22253*/ OPC_CaptureGlueInput,
+/* 22254*/ OPC_Scope, 16, /*->22272*/ // 3 children in Scope
+/* 22256*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22258*/ OPC_EmitMergeInputChains1_0,
+/* 22259*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22262*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22265*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_sret_flag) - Complexity = 3
+ // Dst: (SRET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22272*/ /*Scope*/ 16, /*->22289*/
+/* 22273*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22275*/ OPC_EmitMergeInputChains1_0,
+/* 22276*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22279*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22282*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_sret_flag) - Complexity = 3
+ // Dst: (SRET X0:{ *:[i64] }, X0:{ *:[i64] })
+/* 22289*/ /*Scope*/ 14, /*->22304*/
+/* 22290*/ OPC_EmitMergeInputChains1_0,
+/* 22291*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22294*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22297*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::SRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_sret_flag) - Complexity = 3
+ // Dst: (SRET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22304*/ 0, /*End of Scope*/
+/* 22305*/ /*SwitchOpcode*/ 53, TARGET_VAL(RISCVISD::MRET_FLAG),// ->22361
+/* 22308*/ OPC_RecordNode, // #0 = 'riscv_mret_flag' chained node
+/* 22309*/ OPC_CaptureGlueInput,
+/* 22310*/ OPC_Scope, 16, /*->22328*/ // 3 children in Scope
+/* 22312*/ OPC_CheckPatternPredicate, 6, // (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22314*/ OPC_EmitMergeInputChains1_0,
+/* 22315*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22318*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22321*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::MRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_mret_flag) - Complexity = 3
+ // Dst: (MRET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22328*/ /*Scope*/ 16, /*->22345*/
+/* 22329*/ OPC_CheckPatternPredicate, 7, // (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22331*/ OPC_EmitMergeInputChains1_0,
+/* 22332*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22335*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22338*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::MRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_mret_flag) - Complexity = 3
+ // Dst: (MRET X0:{ *:[i64] }, X0:{ *:[i64] })
+/* 22345*/ /*Scope*/ 14, /*->22360*/
+/* 22346*/ OPC_EmitMergeInputChains1_0,
+/* 22347*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22350*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22353*/ OPC_MorphNodeTo0, TARGET_VAL(RISCV::MRET), 0|OPFL_Chain|OPFL_GlueInput,
+ 2/*#Ops*/, 1, 2,
+ // Src: (riscv_mret_flag) - Complexity = 3
+ // Dst: (MRET X0:{ *:[i32] }, X0:{ *:[i32] })
+/* 22360*/ 0, /*End of Scope*/
+/* 22361*/ /*SwitchOpcode*/ 46, TARGET_VAL(RISCVISD::SLLW),// ->22410
+/* 22364*/ OPC_RecordChild0, // #0 = $rs1
+/* 22365*/ OPC_RecordChild1, // #1 = $rs2
+/* 22366*/ OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->22395
+/* 22369*/ OPC_CheckChild1Type, MVT::i32,
+/* 22371*/ OPC_Scope, 10, /*->22383*/ // 2 children in Scope
+/* 22373*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22375*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sllw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SLLW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22383*/ /*Scope*/ 10, /*->22394*/
+/* 22384*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 22386*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sllw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SLLW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22394*/ 0, /*End of Scope*/
+/* 22395*/ /*SwitchType*/ 12, MVT::i64,// ->22409
+/* 22397*/ OPC_CheckChild1Type, MVT::i64,
+/* 22399*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22401*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SLLW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sllw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SLLW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22409*/ 0, // EndSwitchType
+/* 22410*/ /*SwitchOpcode*/ 46, TARGET_VAL(RISCVISD::SRLW),// ->22459
+/* 22413*/ OPC_RecordChild0, // #0 = $rs1
+/* 22414*/ OPC_RecordChild1, // #1 = $rs2
+/* 22415*/ OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->22444
+/* 22418*/ OPC_CheckChild1Type, MVT::i32,
+/* 22420*/ OPC_Scope, 10, /*->22432*/ // 2 children in Scope
+/* 22422*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22424*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_srlw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRLW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22432*/ /*Scope*/ 10, /*->22443*/
+/* 22433*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 22435*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_srlw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRLW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22443*/ 0, /*End of Scope*/
+/* 22444*/ /*SwitchType*/ 12, MVT::i64,// ->22458
+/* 22446*/ OPC_CheckChild1Type, MVT::i64,
+/* 22448*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22450*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRLW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_srlw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SRLW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22458*/ 0, // EndSwitchType
+/* 22459*/ /*SwitchOpcode*/ 46, TARGET_VAL(RISCVISD::SRAW),// ->22508
+/* 22462*/ OPC_RecordChild0, // #0 = $rs1
+/* 22463*/ OPC_RecordChild1, // #1 = $rs2
+/* 22464*/ OPC_SwitchType /*2 cases */, 26, MVT::i32,// ->22493
+/* 22467*/ OPC_CheckChild1Type, MVT::i32,
+/* 22469*/ OPC_Scope, 10, /*->22481*/ // 2 children in Scope
+/* 22471*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22473*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sraw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRAW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22481*/ /*Scope*/ 10, /*->22492*/
+/* 22482*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 22484*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sraw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (SRAW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22492*/ 0, /*End of Scope*/
+/* 22493*/ /*SwitchType*/ 12, MVT::i64,// ->22507
+/* 22495*/ OPC_CheckChild1Type, MVT::i64,
+/* 22497*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22499*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::SRAW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_sraw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (SRAW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22507*/ 0, // EndSwitchType
+/* 22508*/ /*SwitchOpcode*/ 65, TARGET_VAL(ISD::READCYCLECOUNTER),// ->22576
+/* 22511*/ OPC_RecordNode, // #0 = 'readcyclecounter' chained node
+/* 22512*/ OPC_SwitchType /*2 cases */, 40, MVT::i32,// ->22555
+/* 22515*/ OPC_Scope, 18, /*->22535*/ // 2 children in Scope
+/* 22517*/ OPC_CheckPatternPredicate, 3, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22519*/ OPC_EmitMergeInputChains1_0,
+/* 22520*/ OPC_EmitInteger, MVT::i32, 0|128,24/*3072*/,
+/* 22524*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22527*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::CSRRS), 0|OPFL_Chain,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (readcyclecounter:{ *:[i32] }) - Complexity = 3
+ // Dst: (CSRRS:{ *:[i32] } 3072:{ *:[i32] }, X0:{ *:[i32] })
+/* 22535*/ /*Scope*/ 18, /*->22554*/
+/* 22536*/ OPC_CheckPatternPredicate, 4, // (Subtarget->is64Bit())
+/* 22538*/ OPC_EmitMergeInputChains1_0,
+/* 22539*/ OPC_EmitInteger, MVT::i32, 0|128,24/*3072*/,
+/* 22543*/ OPC_EmitRegister, MVT::i32, RISCV::X0,
+/* 22546*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::CSRRS), 0|OPFL_Chain,
+ MVT::i32, 2/*#Ops*/, 1, 2,
+ // Src: (readcyclecounter:{ *:[i32] }) - Complexity = 3
+ // Dst: (CSRRS:{ *:[i32] } 3072:{ *:[i32] }, X0:{ *:[i32] })
+/* 22554*/ 0, /*End of Scope*/
+/* 22555*/ /*SwitchType*/ 18, MVT::i64,// ->22575
+/* 22557*/ OPC_CheckPatternPredicate, 5, // (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22559*/ OPC_EmitMergeInputChains1_0,
+/* 22560*/ OPC_EmitInteger, MVT::i64, 0|128,24/*3072*/,
+/* 22564*/ OPC_EmitRegister, MVT::i64, RISCV::X0,
+/* 22567*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::CSRRS), 0|OPFL_Chain,
+ MVT::i64, 2/*#Ops*/, 1, 2,
+ // Src: (readcyclecounter:{ *:[i64] }) - Complexity = 3
+ // Dst: (CSRRS:{ *:[i64] } 3072:{ *:[i64] }, X0:{ *:[i64] })
+/* 22575*/ 0, // EndSwitchType
+/* 22576*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::MUL),// ->22621
+/* 22579*/ OPC_RecordChild0, // #0 = $rs1
+/* 22580*/ OPC_RecordChild1, // #1 = $rs2
+/* 22581*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22608
+/* 22584*/ OPC_Scope, 10, /*->22596*/ // 2 children in Scope
+/* 22586*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22588*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MUL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MUL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22596*/ /*Scope*/ 10, /*->22607*/
+/* 22597*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22599*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MUL), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mul:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MUL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22607*/ 0, /*End of Scope*/
+/* 22608*/ /*SwitchType*/ 10, MVT::i64,// ->22620
+/* 22610*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22612*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MUL), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (mul:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (MUL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22620*/ 0, // EndSwitchType
+/* 22621*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::MULHS),// ->22666
+/* 22624*/ OPC_RecordChild0, // #0 = $rs1
+/* 22625*/ OPC_RecordChild1, // #1 = $rs2
+/* 22626*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22653
+/* 22629*/ OPC_Scope, 10, /*->22641*/ // 2 children in Scope
+/* 22631*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22633*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULH), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MULH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22641*/ /*Scope*/ 10, /*->22652*/
+/* 22642*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22644*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULH), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MULH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22652*/ 0, /*End of Scope*/
+/* 22653*/ /*SwitchType*/ 10, MVT::i64,// ->22665
+/* 22655*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22657*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULH), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (mulhs:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (MULH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22665*/ 0, // EndSwitchType
+/* 22666*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::MULHU),// ->22711
+/* 22669*/ OPC_RecordChild0, // #0 = $rs1
+/* 22670*/ OPC_RecordChild1, // #1 = $rs2
+/* 22671*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22698
+/* 22674*/ OPC_Scope, 10, /*->22686*/ // 2 children in Scope
+/* 22676*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22678*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULHU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mulhu:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MULHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22686*/ /*Scope*/ 10, /*->22697*/
+/* 22687*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22689*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULHU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (mulhu:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (MULHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22697*/ 0, /*End of Scope*/
+/* 22698*/ /*SwitchType*/ 10, MVT::i64,// ->22710
+/* 22700*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22702*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::MULHU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (mulhu:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (MULHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22710*/ 0, // EndSwitchType
+/* 22711*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::SDIV),// ->22756
+/* 22714*/ OPC_RecordChild0, // #0 = $rs1
+/* 22715*/ OPC_RecordChild1, // #1 = $rs2
+/* 22716*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22743
+/* 22719*/ OPC_Scope, 10, /*->22731*/ // 2 children in Scope
+/* 22721*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22723*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIV), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIV:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22731*/ /*Scope*/ 10, /*->22742*/
+/* 22732*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22734*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIV), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIV:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22742*/ 0, /*End of Scope*/
+/* 22743*/ /*SwitchType*/ 10, MVT::i64,// ->22755
+/* 22745*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22747*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIV), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (sdiv:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (DIV:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22755*/ 0, // EndSwitchType
+/* 22756*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::UDIV),// ->22801
+/* 22759*/ OPC_RecordChild0, // #0 = $rs1
+/* 22760*/ OPC_RecordChild1, // #1 = $rs2
+/* 22761*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22788
+/* 22764*/ OPC_Scope, 10, /*->22776*/ // 2 children in Scope
+/* 22766*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22768*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (udiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22776*/ /*Scope*/ 10, /*->22787*/
+/* 22777*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22779*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (udiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22787*/ 0, /*End of Scope*/
+/* 22788*/ /*SwitchType*/ 10, MVT::i64,// ->22800
+/* 22790*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22792*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (udiv:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22800*/ 0, // EndSwitchType
+/* 22801*/ /*SwitchOpcode*/ 42, TARGET_VAL(ISD::UREM),// ->22846
+/* 22804*/ OPC_RecordChild0, // #0 = $rs1
+/* 22805*/ OPC_RecordChild1, // #1 = $rs2
+/* 22806*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22833
+/* 22809*/ OPC_Scope, 10, /*->22821*/ // 2 children in Scope
+/* 22811*/ OPC_CheckPatternPredicate, 25, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22813*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (urem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22821*/ /*Scope*/ 10, /*->22832*/
+/* 22822*/ OPC_CheckPatternPredicate, 26, // (Subtarget->hasStdExtM())
+/* 22824*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (urem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22832*/ 0, /*End of Scope*/
+/* 22833*/ /*SwitchType*/ 10, MVT::i64,// ->22845
+/* 22835*/ OPC_CheckPatternPredicate, 27, // (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22837*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMU), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (urem:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22845*/ 0, // EndSwitchType
+/* 22846*/ /*SwitchOpcode*/ 42, TARGET_VAL(RISCVISD::DIVW),// ->22891
+/* 22849*/ OPC_RecordChild0, // #0 = $rs1
+/* 22850*/ OPC_RecordChild1, // #1 = $rs2
+/* 22851*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22878
+/* 22854*/ OPC_Scope, 10, /*->22866*/ // 2 children in Scope
+/* 22856*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22858*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22866*/ /*Scope*/ 10, /*->22877*/
+/* 22867*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 22869*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22877*/ 0, /*End of Scope*/
+/* 22878*/ /*SwitchType*/ 10, MVT::i64,// ->22890
+/* 22880*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22882*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (DIVW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22890*/ 0, // EndSwitchType
+/* 22891*/ /*SwitchOpcode*/ 42, TARGET_VAL(RISCVISD::DIVUW),// ->22936
+/* 22894*/ OPC_RecordChild0, // #0 = $rs1
+/* 22895*/ OPC_RecordChild1, // #1 = $rs2
+/* 22896*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22923
+/* 22899*/ OPC_Scope, 10, /*->22911*/ // 2 children in Scope
+/* 22901*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22903*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVUW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divuw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVUW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22911*/ /*Scope*/ 10, /*->22922*/
+/* 22912*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 22914*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVUW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divuw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (DIVUW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22922*/ 0, /*End of Scope*/
+/* 22923*/ /*SwitchType*/ 10, MVT::i64,// ->22935
+/* 22925*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22927*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::DIVUW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_divuw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (DIVUW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22935*/ 0, // EndSwitchType
+/* 22936*/ /*SwitchOpcode*/ 42, TARGET_VAL(RISCVISD::REMUW),// ->22981
+/* 22939*/ OPC_RecordChild0, // #0 = $rs1
+/* 22940*/ OPC_RecordChild1, // #1 = $rs2
+/* 22941*/ OPC_SwitchType /*2 cases */, 24, MVT::i32,// ->22968
+/* 22944*/ OPC_Scope, 10, /*->22956*/ // 2 children in Scope
+/* 22946*/ OPC_CheckPatternPredicate, 0, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22948*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMUW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_remuw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REMUW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22956*/ /*Scope*/ 10, /*->22967*/
+/* 22957*/ OPC_CheckPatternPredicate, 1, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit())
+/* 22959*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMUW), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_remuw:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) - Complexity = 3
+ // Dst: (REMUW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+/* 22967*/ 0, /*End of Scope*/
+/* 22968*/ /*SwitchType*/ 10, MVT::i64,// ->22980
+/* 22970*/ OPC_CheckPatternPredicate, 2, // (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 22972*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::REMUW), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (riscv_remuw:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) - Complexity = 3
+ // Dst: (REMUW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+/* 22980*/ 0, // EndSwitchType
+/* 22981*/ /*SwitchOpcode*/ 35|128,1/*163*/, TARGET_VAL(ISD::BITCAST),// ->23148
+/* 22985*/ OPC_RecordChild0, // #0 = $rs1
+/* 22986*/ OPC_Scope, 39, /*->23027*/ // 4 children in Scope
+/* 22988*/ OPC_CheckChild0Type, MVT::f32,
+/* 22990*/ OPC_SwitchType /*2 cases */, 22, MVT::i32,// ->23015
+/* 22993*/ OPC_Scope, 9, /*->23004*/ // 2 children in Scope
+/* 22995*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 22997*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_W:{ *:[i32] } FPR32:{ *:[f32] }:$rs1)
+/* 23004*/ /*Scope*/ 9, /*->23014*/
+/* 23005*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 23007*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_W:{ *:[i32] } FPR32:{ *:[f32] }:$rs1)
+/* 23014*/ 0, /*End of Scope*/
+/* 23015*/ /*SwitchType*/ 9, MVT::i64,// ->23026
+/* 23017*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23019*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i64, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_W:{ *:[i64] } FPR32:{ *:[f32] }:$rs1)
+/* 23026*/ 0, // EndSwitchType
+/* 23027*/ /*Scope*/ 39, /*->23067*/
+/* 23028*/ OPC_CheckChild0Type, MVT::f64,
+/* 23030*/ OPC_SwitchType /*2 cases */, 22, MVT::i32,// ->23055
+/* 23033*/ OPC_Scope, 9, /*->23044*/ // 2 children in Scope
+/* 23035*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23037*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_D), 0,
+ MVT::i32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1)
+/* 23044*/ /*Scope*/ 9, /*->23054*/
+/* 23045*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23047*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_D), 0,
+ MVT::i32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1)
+/* 23054*/ 0, /*End of Scope*/
+/* 23055*/ /*SwitchType*/ 9, MVT::i64,// ->23066
+/* 23057*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23059*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_D), 0,
+ MVT::i64, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FMV_X_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1)
+/* 23066*/ 0, // EndSwitchType
+/* 23067*/ /*Scope*/ 52, /*->23120*/
+/* 23068*/ OPC_CheckChild0Type, MVT::i32,
+/* 23070*/ OPC_SwitchType /*2 cases */, 22, MVT::f32,// ->23095
+/* 23073*/ OPC_Scope, 9, /*->23084*/ // 2 children in Scope
+/* 23075*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23077*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_W_X), 0,
+ MVT::f32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_W_X:{ *:[f32] } GPR:{ *:[i32] }:$rs1)
+/* 23084*/ /*Scope*/ 9, /*->23094*/
+/* 23085*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 23087*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_W_X), 0,
+ MVT::f32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_W_X:{ *:[f32] } GPR:{ *:[i32] }:$rs1)
+/* 23094*/ 0, /*End of Scope*/
+/* 23095*/ /*SwitchType*/ 22, MVT::f64,// ->23119
+/* 23097*/ OPC_Scope, 9, /*->23108*/ // 2 children in Scope
+/* 23099*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23101*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_D_X), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_D_X:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 23108*/ /*Scope*/ 9, /*->23118*/
+/* 23109*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23111*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_D_X), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FMV_D_X:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 23118*/ 0, /*End of Scope*/
+/* 23119*/ 0, // EndSwitchType
+/* 23120*/ /*Scope*/ 26, /*->23147*/
+/* 23121*/ OPC_CheckChild0Type, MVT::i64,
+/* 23123*/ OPC_SwitchType /*2 cases */, 9, MVT::f32,// ->23135
+/* 23126*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23128*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_W_X), 0,
+ MVT::f32, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f32] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FMV_W_X:{ *:[f32] } GPR:{ *:[i64] }:$rs1)
+/* 23135*/ /*SwitchType*/ 9, MVT::f64,// ->23146
+/* 23137*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23139*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_D_X), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (bitconvert:{ *:[f64] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FMV_D_X:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+/* 23146*/ 0, // EndSwitchType
+/* 23147*/ 0, /*End of Scope*/
+/* 23148*/ /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::FP_TO_SINT),// ->23377
+/* 23152*/ OPC_RecordChild0, // #0 = $rs1
+/* 23153*/ OPC_Scope, 124, /*->23279*/ // 2 children in Scope
+/* 23155*/ OPC_CheckChild0Type, MVT::f32,
+/* 23157*/ OPC_SwitchType /*2 cases */, 86, MVT::i32,// ->23246
+/* 23160*/ OPC_Scope, 13, /*->23175*/ // 6 children in Scope
+/* 23162*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23164*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23167*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23175*/ /*Scope*/ 13, /*->23189*/
+/* 23176*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23178*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23181*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23189*/ /*Scope*/ 13, /*->23203*/
+/* 23190*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23192*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23195*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23203*/ /*Scope*/ 13, /*->23217*/
+/* 23204*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23206*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23209*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23217*/ /*Scope*/ 13, /*->23231*/
+/* 23218*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23220*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23223*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23231*/ /*Scope*/ 13, /*->23245*/
+/* 23232*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 23234*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23237*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23245*/ 0, /*End of Scope*/
+/* 23246*/ /*SwitchType*/ 30, MVT::i64,// ->23278
+/* 23248*/ OPC_Scope, 13, /*->23263*/ // 2 children in Scope
+/* 23250*/ OPC_CheckPatternPredicate, 34, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23252*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23255*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, 1:{ *:[i64] })
+/* 23263*/ /*Scope*/ 13, /*->23277*/
+/* 23264*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23266*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23269*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, 1:{ *:[i64] })
+/* 23277*/ 0, /*End of Scope*/
+/* 23278*/ 0, // EndSwitchType
+/* 23279*/ /*Scope*/ 96, /*->23376*/
+/* 23280*/ OPC_CheckChild0Type, MVT::f64,
+/* 23282*/ OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->23343
+/* 23285*/ OPC_Scope, 13, /*->23300*/ // 4 children in Scope
+/* 23287*/ OPC_CheckPatternPredicate, 35, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23289*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23292*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23300*/ /*Scope*/ 13, /*->23314*/
+/* 23301*/ OPC_CheckPatternPredicate, 36, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit())
+/* 23303*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23306*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23314*/ /*Scope*/ 13, /*->23328*/
+/* 23315*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23317*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23320*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23328*/ /*Scope*/ 13, /*->23342*/
+/* 23329*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23331*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23334*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23342*/ 0, /*End of Scope*/
+/* 23343*/ /*SwitchType*/ 30, MVT::i64,// ->23375
+/* 23345*/ OPC_Scope, 13, /*->23360*/ // 2 children in Scope
+/* 23347*/ OPC_CheckPatternPredicate, 37, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23349*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23352*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_W_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_W_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 23360*/ /*Scope*/ 13, /*->23374*/
+/* 23361*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23363*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23366*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_L_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_sint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_L_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 23374*/ 0, /*End of Scope*/
+/* 23375*/ 0, // EndSwitchType
+/* 23376*/ 0, /*End of Scope*/
+/* 23377*/ /*SwitchOpcode*/ 97|128,1/*225*/, TARGET_VAL(ISD::FP_TO_UINT),// ->23606
+/* 23381*/ OPC_RecordChild0, // #0 = $rs1
+/* 23382*/ OPC_Scope, 124, /*->23508*/ // 2 children in Scope
+/* 23384*/ OPC_CheckChild0Type, MVT::f32,
+/* 23386*/ OPC_SwitchType /*2 cases */, 86, MVT::i32,// ->23475
+/* 23389*/ OPC_Scope, 13, /*->23404*/ // 6 children in Scope
+/* 23391*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23393*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23396*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23404*/ /*Scope*/ 13, /*->23418*/
+/* 23405*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23407*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23410*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23418*/ /*Scope*/ 13, /*->23432*/
+/* 23419*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23421*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23424*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23432*/ /*Scope*/ 13, /*->23446*/
+/* 23433*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23435*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23438*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23446*/ /*Scope*/ 13, /*->23460*/
+/* 23447*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23449*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23452*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23460*/ /*Scope*/ 13, /*->23474*/
+/* 23461*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 23463*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23466*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_S), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_S:{ *:[i32] } ?:{ *:[f32] }:$rs1, 1:{ *:[i32] })
+/* 23474*/ 0, /*End of Scope*/
+/* 23475*/ /*SwitchType*/ 30, MVT::i64,// ->23507
+/* 23477*/ OPC_Scope, 13, /*->23492*/ // 2 children in Scope
+/* 23479*/ OPC_CheckPatternPredicate, 34, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23481*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23484*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, 1:{ *:[i64] })
+/* 23492*/ /*Scope*/ 13, /*->23506*/
+/* 23493*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23495*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23498*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_S), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_S:{ *:[i64] } ?:{ *:[f32] }:$rs1, 1:{ *:[i64] })
+/* 23506*/ 0, /*End of Scope*/
+/* 23507*/ 0, // EndSwitchType
+/* 23508*/ /*Scope*/ 96, /*->23605*/
+/* 23509*/ OPC_CheckChild0Type, MVT::f64,
+/* 23511*/ OPC_SwitchType /*2 cases */, 58, MVT::i32,// ->23572
+/* 23514*/ OPC_Scope, 13, /*->23529*/ // 4 children in Scope
+/* 23516*/ OPC_CheckPatternPredicate, 35, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23518*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23521*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23529*/ /*Scope*/ 13, /*->23543*/
+/* 23530*/ OPC_CheckPatternPredicate, 36, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit())
+/* 23532*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23535*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23543*/ /*Scope*/ 13, /*->23557*/
+/* 23544*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23546*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23549*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23557*/ /*Scope*/ 13, /*->23571*/
+/* 23558*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23560*/ OPC_EmitInteger, MVT::i32, 1,
+/* 23563*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_D), 0,
+ MVT::i32, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+/* 23571*/ 0, /*End of Scope*/
+/* 23572*/ /*SwitchType*/ 30, MVT::i64,// ->23604
+/* 23574*/ OPC_Scope, 13, /*->23589*/ // 2 children in Scope
+/* 23576*/ OPC_CheckPatternPredicate, 37, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23578*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23581*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_WU_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_WU_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 23589*/ /*Scope*/ 13, /*->23603*/
+/* 23590*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23592*/ OPC_EmitInteger, MVT::i64, 1,
+/* 23595*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_LU_D), 0,
+ MVT::i64, 2/*#Ops*/, 0, 1,
+ // Src: (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_LU_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+/* 23603*/ 0, /*End of Scope*/
+/* 23604*/ 0, // EndSwitchType
+/* 23605*/ 0, /*End of Scope*/
+/* 23606*/ /*SwitchOpcode*/ 10, TARGET_VAL(RISCVISD::FMV_X_ANYEXTW_RV64),// ->23619
+/* 23609*/ OPC_RecordChild0, // #0 = $src
+/* 23610*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23612*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_X_W), 0,
+ MVT::i64, 1/*#Ops*/, 0,
+ // Src: (riscv_fmv_x_anyextw_rv64:{ *:[i64] } FPR32:{ *:[f32] }:$src) - Complexity = 3
+ // Dst: (FMV_X_W:{ *:[i64] } FPR32:{ *:[f32] }:$src)
+/* 23619*/ /*SwitchOpcode*/ 25, TARGET_VAL(RISCVISD::SplitF64),// ->23647
+/* 23622*/ OPC_RecordChild0, // #0 = $src
+/* 23623*/ OPC_Scope, 10, /*->23635*/ // 2 children in Scope
+/* 23625*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23627*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::SplitF64Pseudo), 0,
+ MVT::i32, MVT::i32, 1/*#Ops*/, 0,
+ // Src: (RISCVSplitF64:{ *:[i32] }:{ *:[i32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
+ // Dst: (SplitF64Pseudo:{ *:[i32] }:{ *:[i32] } FPR64:{ *:[f64] }:$src)
+/* 23635*/ /*Scope*/ 10, /*->23646*/
+/* 23636*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 23638*/ OPC_MorphNodeTo2, TARGET_VAL(RISCV::SplitF64Pseudo), 0,
+ MVT::i32, MVT::i32, 1/*#Ops*/, 0,
+ // Src: (RISCVSplitF64:{ *:[i32] }:{ *:[i32] } FPR64:{ *:[f64] }:$src) - Complexity = 3
+ // Dst: (SplitF64Pseudo:{ *:[i32] }:{ *:[i32] } FPR64:{ *:[f64] }:$src)
+/* 23646*/ 0, /*End of Scope*/
+/* 23647*/ /*SwitchOpcode*/ 42|128,3/*426*/, TARGET_VAL(ISD::UINT_TO_FP),// ->24077
+/* 23651*/ OPC_Scope, 78|128,1/*206*/, /*->23860*/ // 2 children in Scope
+/* 23654*/ OPC_MoveChild0,
+/* 23655*/ OPC_Scope, 101, /*->23758*/ // 2 children in Scope
+/* 23657*/ OPC_CheckAndImm, 127|128,127|128,127|128,127|128,15/*4294967295*/,
+/* 23663*/ OPC_RecordChild0, // #0 = $rs1
+/* 23664*/ OPC_SwitchType /*2 cases */, 59, MVT::i32,// ->23726
+/* 23667*/ OPC_MoveParent,
+/* 23668*/ OPC_SwitchType /*2 cases */, 30, MVT::f32,// ->23701
+/* 23671*/ OPC_Scope, 13, /*->23686*/ // 2 children in Scope
+/* 23673*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23675*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23678*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] })) - Complexity = 11
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23686*/ /*Scope*/ 13, /*->23700*/
+/* 23687*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 23689*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23692*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] })) - Complexity = 11
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23700*/ 0, /*End of Scope*/
+/* 23701*/ /*SwitchType*/ 22, MVT::f64,// ->23725
+/* 23703*/ OPC_Scope, 9, /*->23714*/ // 2 children in Scope
+/* 23705*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23707*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] })) - Complexity = 11
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i32] }:$rs1)
+/* 23714*/ /*Scope*/ 9, /*->23724*/
+/* 23715*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23717*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] })) - Complexity = 11
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i32] }:$rs1)
+/* 23724*/ 0, /*End of Scope*/
+/* 23725*/ 0, // EndSwitchType
+/* 23726*/ /*SwitchType*/ 29, MVT::i64,// ->23757
+/* 23728*/ OPC_MoveParent,
+/* 23729*/ OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->23745
+/* 23732*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23734*/ OPC_EmitInteger, MVT::i64, 7,
+/* 23737*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] })) - Complexity = 11
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 23745*/ /*SwitchType*/ 9, MVT::f64,// ->23756
+/* 23747*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23749*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] })) - Complexity = 11
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i64] }:$rs1)
+/* 23756*/ 0, // EndSwitchType
+/* 23757*/ 0, // EndSwitchType
+/* 23758*/ /*Scope*/ 100, /*->23859*/
+/* 23759*/ OPC_CheckOpcode, TARGET_VAL(ISD::AssertZext),
+/* 23762*/ OPC_RecordChild0, // #0 = $rs1
+/* 23763*/ OPC_CheckPredicate, 0, // Predicate_assertzexti32
+/* 23765*/ OPC_SwitchType /*2 cases */, 59, MVT::i32,// ->23827
+/* 23768*/ OPC_MoveParent,
+/* 23769*/ OPC_SwitchType /*2 cases */, 30, MVT::f32,// ->23802
+/* 23772*/ OPC_Scope, 13, /*->23787*/ // 2 children in Scope
+/* 23774*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23776*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23779*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23787*/ /*Scope*/ 13, /*->23801*/
+/* 23788*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 23790*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23793*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23801*/ 0, /*End of Scope*/
+/* 23802*/ /*SwitchType*/ 22, MVT::f64,// ->23826
+/* 23804*/ OPC_Scope, 9, /*->23815*/ // 2 children in Scope
+/* 23806*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23808*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i32] }:$rs1)
+/* 23815*/ /*Scope*/ 9, /*->23825*/
+/* 23816*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23818*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (assertzext:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i32] }:$rs1)
+/* 23825*/ 0, /*End of Scope*/
+/* 23826*/ 0, // EndSwitchType
+/* 23827*/ /*SwitchType*/ 29, MVT::i64,// ->23858
+/* 23829*/ OPC_MoveParent,
+/* 23830*/ OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->23846
+/* 23833*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23835*/ OPC_EmitInteger, MVT::i64, 7,
+/* 23838*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 23846*/ /*SwitchType*/ 9, MVT::f64,// ->23857
+/* 23848*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 23850*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } (assertzext:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_assertzexti32>>) - Complexity = 7
+ // Dst: (FCVT_D_WU:{ *:[f64] } ?:{ *:[i64] }:$rs1)
+/* 23857*/ 0, // EndSwitchType
+/* 23858*/ 0, // EndSwitchType
+/* 23859*/ 0, /*End of Scope*/
+/* 23860*/ /*Scope*/ 86|128,1/*214*/, /*->24076*/
+/* 23862*/ OPC_RecordChild0, // #0 = $rs1
+/* 23863*/ OPC_Scope, 16|128,1/*144*/, /*->24010*/ // 2 children in Scope
+/* 23866*/ OPC_CheckChild0Type, MVT::i32,
+/* 23868*/ OPC_SwitchType /*2 cases */, 86, MVT::f32,// ->23957
+/* 23871*/ OPC_Scope, 13, /*->23886*/ // 6 children in Scope
+/* 23873*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23875*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23878*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23886*/ /*Scope*/ 13, /*->23900*/
+/* 23887*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23889*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23892*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23900*/ /*Scope*/ 13, /*->23914*/
+/* 23901*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23903*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23906*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23914*/ /*Scope*/ 13, /*->23928*/
+/* 23915*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 23917*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23920*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23928*/ /*Scope*/ 13, /*->23942*/
+/* 23929*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23931*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23934*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_LU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_LU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23942*/ /*Scope*/ 13, /*->23956*/
+/* 23943*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 23945*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23948*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_LU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_LU:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23956*/ 0, /*End of Scope*/
+/* 23957*/ /*SwitchType*/ 50, MVT::f64,// ->24009
+/* 23959*/ OPC_Scope, 9, /*->23970*/ // 4 children in Scope
+/* 23961*/ OPC_CheckPatternPredicate, 35, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23963*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 23970*/ /*Scope*/ 9, /*->23980*/
+/* 23971*/ OPC_CheckPatternPredicate, 36, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit())
+/* 23973*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 23980*/ /*Scope*/ 13, /*->23994*/
+/* 23981*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 23983*/ OPC_EmitInteger, MVT::i32, 7,
+/* 23986*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_LU), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 23994*/ /*Scope*/ 13, /*->24008*/
+/* 23995*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 23997*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24000*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_LU), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24008*/ 0, /*End of Scope*/
+/* 24009*/ 0, // EndSwitchType
+/* 24010*/ /*Scope*/ 64, /*->24075*/
+/* 24011*/ OPC_CheckChild0Type, MVT::i64,
+/* 24013*/ OPC_SwitchType /*2 cases */, 30, MVT::f32,// ->24046
+/* 24016*/ OPC_Scope, 13, /*->24031*/ // 2 children in Scope
+/* 24018*/ OPC_CheckPatternPredicate, 34, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24020*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24023*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_WU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_WU:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24031*/ /*Scope*/ 13, /*->24045*/
+/* 24032*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24034*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24037*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_LU), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f32] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_LU:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24045*/ 0, /*End of Scope*/
+/* 24046*/ /*SwitchType*/ 26, MVT::f64,// ->24074
+/* 24048*/ OPC_Scope, 9, /*->24059*/ // 2 children in Scope
+/* 24050*/ OPC_CheckPatternPredicate, 37, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24052*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_WU), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+/* 24059*/ /*Scope*/ 13, /*->24073*/
+/* 24060*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24062*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24065*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_LU), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (uint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24073*/ 0, /*End of Scope*/
+/* 24074*/ 0, // EndSwitchType
+/* 24075*/ 0, /*End of Scope*/
+/* 24076*/ 0, /*End of Scope*/
+/* 24077*/ /*SwitchOpcode*/ 92|128,3/*476*/, TARGET_VAL(ISD::FMA),// ->24557
+/* 24081*/ OPC_Scope, 119, /*->24202*/ // 6 children in Scope
+/* 24083*/ OPC_MoveChild0,
+/* 24084*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24087*/ OPC_RecordChild0, // #0 = $rs1
+/* 24088*/ OPC_MoveParent,
+/* 24089*/ OPC_RecordChild1, // #1 = $rs2
+/* 24090*/ OPC_MoveChild2,
+/* 24091*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24094*/ OPC_RecordChild0, // #2 = $rs3
+/* 24095*/ OPC_MoveParent,
+/* 24096*/ OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->24149
+/* 24099*/ OPC_Scope, 15, /*->24116*/ // 3 children in Scope
+/* 24101*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24103*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24106*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24116*/ /*Scope*/ 15, /*->24132*/
+/* 24117*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24119*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24122*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+/* 24132*/ /*Scope*/ 15, /*->24148*/
+/* 24133*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24135*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24138*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24148*/ 0, /*End of Scope*/
+/* 24149*/ /*SwitchType*/ 50, MVT::f64,// ->24201
+/* 24151*/ OPC_Scope, 15, /*->24168*/ // 3 children in Scope
+/* 24153*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24155*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24158*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24168*/ /*Scope*/ 15, /*->24184*/
+/* 24169*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24171*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24174*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+/* 24184*/ /*Scope*/ 15, /*->24200*/
+/* 24185*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24187*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24190*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 9
+ // Dst: (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24200*/ 0, /*End of Scope*/
+/* 24201*/ 0, // EndSwitchType
+/* 24202*/ /*Scope*/ 60, /*->24263*/
+/* 24203*/ OPC_RecordChild0, // #0 = $rs1
+/* 24204*/ OPC_RecordChild1, // #1 = $rs2
+/* 24205*/ OPC_MoveChild2,
+/* 24206*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24209*/ OPC_RecordChild0, // #2 = $rs3
+/* 24210*/ OPC_MoveParent,
+/* 24211*/ OPC_CheckType, MVT::f32,
+/* 24213*/ OPC_Scope, 15, /*->24230*/ // 3 children in Scope
+/* 24215*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24217*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24220*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24230*/ /*Scope*/ 15, /*->24246*/
+/* 24231*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24233*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24236*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+/* 24246*/ /*Scope*/ 15, /*->24262*/
+/* 24247*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24249*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24252*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24262*/ 0, /*End of Scope*/
+/* 24263*/ /*Scope*/ 60, /*->24324*/
+/* 24264*/ OPC_MoveChild0,
+/* 24265*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24268*/ OPC_RecordChild0, // #0 = $rs1
+/* 24269*/ OPC_MoveParent,
+/* 24270*/ OPC_RecordChild1, // #1 = $rs2
+/* 24271*/ OPC_RecordChild2, // #2 = $rs3
+/* 24272*/ OPC_CheckType, MVT::f32,
+/* 24274*/ OPC_Scope, 15, /*->24291*/ // 3 children in Scope
+/* 24276*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24278*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24281*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24291*/ /*Scope*/ 15, /*->24307*/
+/* 24292*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24294*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24297*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+/* 24307*/ /*Scope*/ 15, /*->24323*/
+/* 24308*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24310*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24313*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24323*/ 0, /*End of Scope*/
+/* 24324*/ /*Scope*/ 60, /*->24385*/
+/* 24325*/ OPC_RecordChild0, // #0 = $rs1
+/* 24326*/ OPC_RecordChild1, // #1 = $rs2
+/* 24327*/ OPC_MoveChild2,
+/* 24328*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24331*/ OPC_RecordChild0, // #2 = $rs3
+/* 24332*/ OPC_MoveParent,
+/* 24333*/ OPC_CheckType, MVT::f64,
+/* 24335*/ OPC_Scope, 15, /*->24352*/ // 3 children in Scope
+/* 24337*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24339*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24342*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24352*/ /*Scope*/ 15, /*->24368*/
+/* 24353*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24355*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24358*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+/* 24368*/ /*Scope*/ 15, /*->24384*/
+/* 24369*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24371*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24374*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) - Complexity = 6
+ // Dst: (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24384*/ 0, /*End of Scope*/
+/* 24385*/ /*Scope*/ 60, /*->24446*/
+/* 24386*/ OPC_MoveChild0,
+/* 24387*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24390*/ OPC_RecordChild0, // #0 = $rs1
+/* 24391*/ OPC_MoveParent,
+/* 24392*/ OPC_RecordChild1, // #1 = $rs2
+/* 24393*/ OPC_RecordChild2, // #2 = $rs3
+/* 24394*/ OPC_CheckType, MVT::f64,
+/* 24396*/ OPC_Scope, 15, /*->24413*/ // 3 children in Scope
+/* 24398*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24400*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24403*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24413*/ /*Scope*/ 15, /*->24429*/
+/* 24414*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24416*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24419*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+/* 24429*/ /*Scope*/ 15, /*->24445*/
+/* 24430*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24432*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24435*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FNMSUB_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 6
+ // Dst: (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24445*/ 0, /*End of Scope*/
+/* 24446*/ /*Scope*/ 109, /*->24556*/
+/* 24447*/ OPC_RecordChild0, // #0 = $rs1
+/* 24448*/ OPC_RecordChild1, // #1 = $rs2
+/* 24449*/ OPC_RecordChild2, // #2 = $rs3
+/* 24450*/ OPC_SwitchType /*2 cases */, 50, MVT::f32,// ->24503
+/* 24453*/ OPC_Scope, 15, /*->24470*/ // 3 children in Scope
+/* 24455*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24457*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24460*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, ?:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24470*/ /*Scope*/ 15, /*->24486*/
+/* 24471*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24473*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24476*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, ?:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+/* 24486*/ /*Scope*/ 15, /*->24502*/
+/* 24487*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24489*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24492*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_S), 0,
+ MVT::f32, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, ?:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+/* 24502*/ 0, /*End of Scope*/
+/* 24503*/ /*SwitchType*/ 50, MVT::f64,// ->24555
+/* 24505*/ OPC_Scope, 15, /*->24522*/ // 3 children in Scope
+/* 24507*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24509*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24512*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, ?:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24522*/ /*Scope*/ 15, /*->24538*/
+/* 24523*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24525*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24528*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, ?:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+/* 24538*/ /*Scope*/ 15, /*->24554*/
+/* 24539*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24541*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24544*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMADD_D), 0,
+ MVT::f64, 4/*#Ops*/, 0, 1, 2, 3,
+ // Src: (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) - Complexity = 3
+ // Dst: (FMADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, ?:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+/* 24554*/ 0, /*End of Scope*/
+/* 24555*/ 0, // EndSwitchType
+/* 24556*/ 0, /*End of Scope*/
+/* 24557*/ /*SwitchOpcode*/ 40|128,1/*168*/, TARGET_VAL(ISD::FCOPYSIGN),// ->24729
+/* 24561*/ OPC_RecordChild0, // #0 = $rs1
+/* 24562*/ OPC_Scope, 37, /*->24601*/ // 2 children in Scope
+/* 24564*/ OPC_MoveChild1,
+/* 24565*/ OPC_CheckOpcode, TARGET_VAL(ISD::FNEG),
+/* 24568*/ OPC_RecordChild0, // #1 = $rs2
+/* 24569*/ OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->24585
+/* 24572*/ OPC_MoveParent,
+/* 24573*/ OPC_CheckType, MVT::f32,
+/* 24575*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24577*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJN_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fcopysign:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs2)) - Complexity = 6
+ // Dst: (FSGNJN_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 24585*/ /*SwitchType*/ 13, MVT::f64,// ->24600
+/* 24587*/ OPC_MoveParent,
+/* 24588*/ OPC_CheckType, MVT::f64,
+/* 24590*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24592*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJN_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fcopysign:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs2)) - Complexity = 6
+ // Dst: (FSGNJN_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 24600*/ 0, // EndSwitchType
+/* 24601*/ /*Scope*/ 126, /*->24728*/
+/* 24602*/ OPC_RecordChild1, // #1 = $rs2
+/* 24603*/ OPC_Scope, 35, /*->24640*/ // 2 children in Scope
+/* 24605*/ OPC_CheckChild1Type, MVT::f32,
+/* 24607*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->24620
+/* 24610*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24612*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fcopysign:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 24620*/ /*SwitchType*/ 17, MVT::f64,// ->24639
+/* 24622*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24624*/ OPC_EmitNode1, TARGET_VAL(RISCV::FCVT_D_S), 0,
+ MVT::f64, 1/*#Ops*/, 1, // Results = #2
+/* 24631*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 2,
+ // Src: (fcopysign:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, (FCVT_D_S:{ *:[f64] } ?:{ *:[f32] }:$rs2))
+/* 24639*/ 0, // EndSwitchType
+/* 24640*/ /*Scope*/ 86, /*->24727*/
+/* 24641*/ OPC_CheckChild1Type, MVT::f64,
+/* 24643*/ OPC_SwitchType /*2 cases */, 10, MVT::f64,// ->24656
+/* 24646*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24648*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fcopysign:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 24656*/ /*SwitchType*/ 68, MVT::f32,// ->24726
+/* 24658*/ OPC_Scope, 21, /*->24681*/ // 3 children in Scope
+/* 24660*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24662*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24665*/ OPC_EmitNode1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 1, 2, // Results = #3
+/* 24673*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 3,
+ // Src: (fcopysign:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, (FCVT_S_D:{ *:[f32] } ?:{ *:[f64] }:$rs2, 7:{ *:[i32] }))
+/* 24681*/ /*Scope*/ 21, /*->24703*/
+/* 24682*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24684*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24687*/ OPC_EmitNode1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 1, 2, // Results = #3
+/* 24695*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 3,
+ // Src: (fcopysign:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, (FCVT_S_D:{ *:[f32] } ?:{ *:[f64] }:$rs2, 7:{ *:[i64] }))
+/* 24703*/ /*Scope*/ 21, /*->24725*/
+/* 24704*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 24706*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24709*/ OPC_EmitNode1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 1, 2, // Results = #3
+/* 24717*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJ_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 3,
+ // Src: (fcopysign:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSGNJ_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, (FCVT_S_D:{ *:[f32] } ?:{ *:[f64] }:$rs2, 7:{ *:[i32] }))
+/* 24725*/ 0, /*End of Scope*/
+/* 24726*/ 0, // EndSwitchType
+/* 24727*/ 0, /*End of Scope*/
+/* 24728*/ 0, /*End of Scope*/
+/* 24729*/ /*SwitchOpcode*/ 1|128,2/*257*/, TARGET_VAL(ISD::SINT_TO_FP),// ->24990
+/* 24733*/ OPC_Scope, 38, /*->24773*/ // 2 children in Scope
+/* 24735*/ OPC_MoveChild0,
+/* 24736*/ OPC_CheckOpcode, TARGET_VAL(ISD::SIGN_EXTEND_INREG),
+/* 24739*/ OPC_RecordChild0, // #0 = $rs1
+/* 24740*/ OPC_MoveChild1,
+/* 24741*/ OPC_CheckValueType, MVT::i32,
+/* 24743*/ OPC_MoveParent,
+/* 24744*/ OPC_MoveParent,
+/* 24745*/ OPC_SwitchType /*2 cases */, 13, MVT::f32,// ->24761
+/* 24748*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24750*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24753*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] })) - Complexity = 6
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24761*/ /*SwitchType*/ 9, MVT::f64,// ->24772
+/* 24763*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24765*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_W), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (sint_to_fp:{ *:[f64] } (sext_inreg:{ *:[i64] } GPR:{ *:[i64] }:$rs1, i32:{ *:[Other] })) - Complexity = 6
+ // Dst: (FCVT_D_W:{ *:[f64] } ?:{ *:[i64] }:$rs1)
+/* 24772*/ 0, // EndSwitchType
+/* 24773*/ /*Scope*/ 86|128,1/*214*/, /*->24989*/
+/* 24775*/ OPC_RecordChild0, // #0 = $rs1
+/* 24776*/ OPC_Scope, 16|128,1/*144*/, /*->24923*/ // 2 children in Scope
+/* 24779*/ OPC_CheckChild0Type, MVT::i32,
+/* 24781*/ OPC_SwitchType /*2 cases */, 86, MVT::f32,// ->24870
+/* 24784*/ OPC_Scope, 13, /*->24799*/ // 6 children in Scope
+/* 24786*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24788*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24791*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24799*/ /*Scope*/ 13, /*->24813*/
+/* 24800*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 24802*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24805*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24813*/ /*Scope*/ 13, /*->24827*/
+/* 24814*/ OPC_CheckPatternPredicate, 30, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24816*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24819*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24827*/ /*Scope*/ 13, /*->24841*/
+/* 24828*/ OPC_CheckPatternPredicate, 31, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit())
+/* 24830*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24833*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24841*/ /*Scope*/ 13, /*->24855*/
+/* 24842*/ OPC_CheckPatternPredicate, 32, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24844*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24847*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_L), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_L:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24855*/ /*Scope*/ 13, /*->24869*/
+/* 24856*/ OPC_CheckPatternPredicate, 33, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit())
+/* 24858*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24861*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_L), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_L:{ *:[f32] } ?:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24869*/ 0, /*End of Scope*/
+/* 24870*/ /*SwitchType*/ 50, MVT::f64,// ->24922
+/* 24872*/ OPC_Scope, 9, /*->24883*/ // 4 children in Scope
+/* 24874*/ OPC_CheckPatternPredicate, 35, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24876*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_W), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_W:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 24883*/ /*Scope*/ 9, /*->24893*/
+/* 24884*/ OPC_CheckPatternPredicate, 36, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit())
+/* 24886*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_W), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_W:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+/* 24893*/ /*Scope*/ 13, /*->24907*/
+/* 24894*/ OPC_CheckPatternPredicate, 28, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 24896*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24899*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_L), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_L:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24907*/ /*Scope*/ 13, /*->24921*/
+/* 24908*/ OPC_CheckPatternPredicate, 29, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit())
+/* 24910*/ OPC_EmitInteger, MVT::i32, 7,
+/* 24913*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_L), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_L:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+/* 24921*/ 0, /*End of Scope*/
+/* 24922*/ 0, // EndSwitchType
+/* 24923*/ /*Scope*/ 64, /*->24988*/
+/* 24924*/ OPC_CheckChild0Type, MVT::i64,
+/* 24926*/ OPC_SwitchType /*2 cases */, 30, MVT::f32,// ->24959
+/* 24929*/ OPC_Scope, 13, /*->24944*/ // 2 children in Scope
+/* 24931*/ OPC_CheckPatternPredicate, 34, // (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24933*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24936*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_W), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_W:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24944*/ /*Scope*/ 13, /*->24958*/
+/* 24945*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24947*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24950*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_L), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f32] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_L:{ *:[f32] } ?:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24958*/ 0, /*End of Scope*/
+/* 24959*/ /*SwitchType*/ 26, MVT::f64,// ->24987
+/* 24961*/ OPC_Scope, 9, /*->24972*/ // 2 children in Scope
+/* 24963*/ OPC_CheckPatternPredicate, 37, // (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24965*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_W), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_W:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+/* 24972*/ /*Scope*/ 13, /*->24986*/
+/* 24973*/ OPC_CheckPatternPredicate, 23, // (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 24975*/ OPC_EmitInteger, MVT::i64, 7,
+/* 24978*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_L), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (sint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_L:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+/* 24986*/ 0, /*End of Scope*/
+/* 24987*/ 0, // EndSwitchType
+/* 24988*/ 0, /*End of Scope*/
+/* 24989*/ 0, /*End of Scope*/
+/* 24990*/ /*SwitchOpcode*/ 27, TARGET_VAL(ISD::FNEG),// ->25020
+/* 24993*/ OPC_RecordChild0, // #0 = $rs1
+/* 24994*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->25007
+/* 24997*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 24999*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJN_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 0,
+ // Src: (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FSGNJN_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs1)
+/* 25007*/ /*SwitchType*/ 10, MVT::f64,// ->25019
+/* 25009*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25011*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJN_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 0,
+ // Src: (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FSGNJN_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs1)
+/* 25019*/ 0, // EndSwitchType
+/* 25020*/ /*SwitchOpcode*/ 27, TARGET_VAL(ISD::FABS),// ->25050
+/* 25023*/ OPC_RecordChild0, // #0 = $rs1
+/* 25024*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->25037
+/* 25027*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25029*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJX_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 0,
+ // Src: (fabs:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FSGNJX_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs1)
+/* 25037*/ /*SwitchType*/ 10, MVT::f64,// ->25049
+/* 25039*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25041*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSGNJX_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 0,
+ // Src: (fabs:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FSGNJX_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs1)
+/* 25049*/ 0, // EndSwitchType
+/* 25050*/ /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FMINNUM),// ->25081
+/* 25053*/ OPC_RecordChild0, // #0 = $rs1
+/* 25054*/ OPC_RecordChild1, // #1 = $rs2
+/* 25055*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->25068
+/* 25058*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25060*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMIN_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fminnum:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FMIN_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 25068*/ /*SwitchType*/ 10, MVT::f64,// ->25080
+/* 25070*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25072*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMIN_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fminnum:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FMIN_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 25080*/ 0, // EndSwitchType
+/* 25081*/ /*SwitchOpcode*/ 28, TARGET_VAL(ISD::FMAXNUM),// ->25112
+/* 25084*/ OPC_RecordChild0, // #0 = $rs1
+/* 25085*/ OPC_RecordChild1, // #1 = $rs2
+/* 25086*/ OPC_SwitchType /*2 cases */, 10, MVT::f32,// ->25099
+/* 25089*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25091*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMAX_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fmaxnum:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FMAX_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2)
+/* 25099*/ /*SwitchType*/ 10, MVT::f64,// ->25111
+/* 25101*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25103*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMAX_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fmaxnum:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FMAX_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2)
+/* 25111*/ 0, // EndSwitchType
+/* 25112*/ /*SwitchOpcode*/ 10, TARGET_VAL(ISD::FP_EXTEND),// ->25125
+/* 25115*/ OPC_RecordChild0, // #0 = $rs1
+/* 25116*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25118*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_D_S), 0,
+ MVT::f64, 1/*#Ops*/, 0,
+ // Src: (fpextend:{ *:[f64] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_D_S:{ *:[f64] } FPR32:{ *:[f32] }:$rs1)
+/* 25125*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::FADD),// ->25230
+/* 25128*/ OPC_RecordChild0, // #0 = $rs1
+/* 25129*/ OPC_RecordChild1, // #1 = $rs2
+/* 25130*/ OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->25180
+/* 25133*/ OPC_Scope, 14, /*->25149*/ // 3 children in Scope
+/* 25135*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25137*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25140*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25149*/ /*Scope*/ 14, /*->25164*/
+/* 25150*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25152*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25155*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i64] })
+/* 25164*/ /*Scope*/ 14, /*->25179*/
+/* 25165*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25167*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25170*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FADD_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25179*/ 0, /*End of Scope*/
+/* 25180*/ /*SwitchType*/ 47, MVT::f64,// ->25229
+/* 25182*/ OPC_Scope, 14, /*->25198*/ // 3 children in Scope
+/* 25184*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25186*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25189*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25198*/ /*Scope*/ 14, /*->25213*/
+/* 25199*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25201*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25204*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i64] })
+/* 25213*/ /*Scope*/ 14, /*->25228*/
+/* 25214*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25216*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25219*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FADD_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fadd:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FADD_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25228*/ 0, /*End of Scope*/
+/* 25229*/ 0, // EndSwitchType
+/* 25230*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::FSUB),// ->25335
+/* 25233*/ OPC_RecordChild0, // #0 = $rs1
+/* 25234*/ OPC_RecordChild1, // #1 = $rs2
+/* 25235*/ OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->25285
+/* 25238*/ OPC_Scope, 14, /*->25254*/ // 3 children in Scope
+/* 25240*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25242*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25245*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25254*/ /*Scope*/ 14, /*->25269*/
+/* 25255*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25257*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25260*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i64] })
+/* 25269*/ /*Scope*/ 14, /*->25284*/
+/* 25270*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25272*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25275*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25284*/ 0, /*End of Scope*/
+/* 25285*/ /*SwitchType*/ 47, MVT::f64,// ->25334
+/* 25287*/ OPC_Scope, 14, /*->25303*/ // 3 children in Scope
+/* 25289*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25291*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25294*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25303*/ /*Scope*/ 14, /*->25318*/
+/* 25304*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25306*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25309*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i64] })
+/* 25318*/ /*Scope*/ 14, /*->25333*/
+/* 25319*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25321*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25324*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSUB_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fsub:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FSUB_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25333*/ 0, /*End of Scope*/
+/* 25334*/ 0, // EndSwitchType
+/* 25335*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::FMUL),// ->25440
+/* 25338*/ OPC_RecordChild0, // #0 = $rs1
+/* 25339*/ OPC_RecordChild1, // #1 = $rs2
+/* 25340*/ OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->25390
+/* 25343*/ OPC_Scope, 14, /*->25359*/ // 3 children in Scope
+/* 25345*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25347*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25350*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25359*/ /*Scope*/ 14, /*->25374*/
+/* 25360*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25362*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25365*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i64] })
+/* 25374*/ /*Scope*/ 14, /*->25389*/
+/* 25375*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25377*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25380*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25389*/ 0, /*End of Scope*/
+/* 25390*/ /*SwitchType*/ 47, MVT::f64,// ->25439
+/* 25392*/ OPC_Scope, 14, /*->25408*/ // 3 children in Scope
+/* 25394*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25396*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25399*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25408*/ /*Scope*/ 14, /*->25423*/
+/* 25409*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25411*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25414*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i64] })
+/* 25423*/ /*Scope*/ 14, /*->25438*/
+/* 25424*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25426*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25429*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMUL_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fmul:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FMUL_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25438*/ 0, /*End of Scope*/
+/* 25439*/ 0, // EndSwitchType
+/* 25440*/ /*SwitchOpcode*/ 102, TARGET_VAL(ISD::FDIV),// ->25545
+/* 25443*/ OPC_RecordChild0, // #0 = $rs1
+/* 25444*/ OPC_RecordChild1, // #1 = $rs2
+/* 25445*/ OPC_SwitchType /*2 cases */, 47, MVT::f32,// ->25495
+/* 25448*/ OPC_Scope, 14, /*->25464*/ // 3 children in Scope
+/* 25450*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25452*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25455*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25464*/ /*Scope*/ 14, /*->25479*/
+/* 25465*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25467*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25470*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i64] })
+/* 25479*/ /*Scope*/ 14, /*->25494*/
+/* 25480*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25482*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25485*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_S), 0,
+ MVT::f32, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_S:{ *:[f32] } ?:{ *:[f32] }:$rs1, ?:{ *:[f32] }:$rs2, 7:{ *:[i32] })
+/* 25494*/ 0, /*End of Scope*/
+/* 25495*/ /*SwitchType*/ 47, MVT::f64,// ->25544
+/* 25497*/ OPC_Scope, 14, /*->25513*/ // 3 children in Scope
+/* 25499*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25501*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25504*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25513*/ /*Scope*/ 14, /*->25528*/
+/* 25514*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25516*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25519*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i64] })
+/* 25528*/ /*Scope*/ 14, /*->25543*/
+/* 25529*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25531*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25534*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FDIV_D), 0,
+ MVT::f64, 3/*#Ops*/, 0, 1, 2,
+ // Src: (fdiv:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2) - Complexity = 3
+ // Dst: (FDIV_D:{ *:[f64] } ?:{ *:[f64] }:$rs1, ?:{ *:[f64] }:$rs2, 7:{ *:[i32] })
+/* 25543*/ 0, /*End of Scope*/
+/* 25544*/ 0, // EndSwitchType
+/* 25545*/ /*SwitchOpcode*/ 95, TARGET_VAL(ISD::FSQRT),// ->25643
+/* 25548*/ OPC_RecordChild0, // #0 = $rs1
+/* 25549*/ OPC_SwitchType /*2 cases */, 44, MVT::f32,// ->25596
+/* 25552*/ OPC_Scope, 13, /*->25567*/ // 3 children in Scope
+/* 25554*/ OPC_CheckPatternPredicate, 11, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25556*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25559*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i32] })
+/* 25567*/ /*Scope*/ 13, /*->25581*/
+/* 25568*/ OPC_CheckPatternPredicate, 15, // (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25570*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25573*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i64] })
+/* 25581*/ /*Scope*/ 13, /*->25595*/
+/* 25582*/ OPC_CheckPatternPredicate, 12, // (Subtarget->hasStdExtF())
+/* 25584*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25587*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_S), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i32] })
+/* 25595*/ 0, /*End of Scope*/
+/* 25596*/ /*SwitchType*/ 44, MVT::f64,// ->25642
+/* 25598*/ OPC_Scope, 13, /*->25613*/ // 3 children in Scope
+/* 25600*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25602*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25605*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+/* 25613*/ /*Scope*/ 13, /*->25627*/
+/* 25614*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25616*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25619*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i64] })
+/* 25627*/ /*Scope*/ 13, /*->25641*/
+/* 25628*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25630*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25633*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FSQRT_D), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+/* 25641*/ 0, /*End of Scope*/
+/* 25642*/ 0, // EndSwitchType
+/* 25643*/ /*SwitchOpcode*/ 10, TARGET_VAL(RISCVISD::FMV_W_X_RV64),// ->25656
+/* 25646*/ OPC_RecordChild0, // #0 = $src
+/* 25647*/ OPC_CheckPatternPredicate, 24, // (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25649*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FMV_W_X), 0,
+ MVT::f32, 1/*#Ops*/, 0,
+ // Src: (riscv_fmv_w_x_rv64:{ *:[f32] } GPR:{ *:[i64] }:$src) - Complexity = 3
+ // Dst: (FMV_W_X:{ *:[f32] } GPR:{ *:[i64] }:$src)
+/* 25656*/ /*SwitchOpcode*/ 45, TARGET_VAL(ISD::FP_ROUND),// ->25704
+/* 25659*/ OPC_RecordChild0, // #0 = $rs1
+/* 25660*/ OPC_Scope, 13, /*->25675*/ // 3 children in Scope
+/* 25662*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25664*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25667*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+/* 25675*/ /*Scope*/ 13, /*->25689*/
+/* 25676*/ OPC_CheckPatternPredicate, 16, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"))
+/* 25678*/ OPC_EmitInteger, MVT::i64, 7,
+/* 25681*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i64] })
+/* 25689*/ /*Scope*/ 13, /*->25703*/
+/* 25690*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25692*/ OPC_EmitInteger, MVT::i32, 7,
+/* 25695*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::FCVT_S_D), 0,
+ MVT::f32, 2/*#Ops*/, 0, 1,
+ // Src: (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) - Complexity = 3
+ // Dst: (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+/* 25703*/ 0, /*End of Scope*/
+/* 25704*/ /*SwitchOpcode*/ 26, TARGET_VAL(RISCVISD::BuildPairF64),// ->25733
+/* 25707*/ OPC_RecordChild0, // #0 = $src1
+/* 25708*/ OPC_RecordChild1, // #1 = $src2
+/* 25709*/ OPC_Scope, 10, /*->25721*/ // 2 children in Scope
+/* 25711*/ OPC_CheckPatternPredicate, 13, // (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"))
+/* 25713*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::BuildPairF64Pseudo), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (RISCVBuildPairF64:{ *:[f64] } GPR:{ *:[i32] }:$src1, GPR:{ *:[i32] }:$src2) - Complexity = 3
+ // Dst: (BuildPairF64Pseudo:{ *:[f64] } GPR:{ *:[i32] }:$src1, GPR:{ *:[i32] }:$src2)
+/* 25721*/ /*Scope*/ 10, /*->25732*/
+/* 25722*/ OPC_CheckPatternPredicate, 14, // (Subtarget->hasStdExtD())
+/* 25724*/ OPC_MorphNodeTo1, TARGET_VAL(RISCV::BuildPairF64Pseudo), 0,
+ MVT::f64, 2/*#Ops*/, 0, 1,
+ // Src: (RISCVBuildPairF64:{ *:[f64] } GPR:{ *:[i32] }:$src1, GPR:{ *:[i32] }:$src2) - Complexity = 3
+ // Dst: (BuildPairF64Pseudo:{ *:[f64] } GPR:{ *:[i32] }:$src1, GPR:{ *:[i32] }:$src2)
+/* 25732*/ 0, /*End of Scope*/
+/* 25733*/ 0, // EndSwitchOpcode
+ 0
+ }; // Total Array size is 25735 bytes
+
+ // Opcode Histogram:
+ // #OPC_Scope = 627
+ // #OPC_RecordNode = 33
+ // #OPC_RecordChild = 364
+ // #OPC_RecordMemRef = 16
+ // #OPC_CaptureGlueInput = 8
+ // #OPC_MoveChild = 160
+ // #OPC_MoveParent = 260
+ // #OPC_CheckSame = 0
+ // #OPC_CheckChildSame = 0
+ // #OPC_CheckPatternPredicate = 1223
+ // #OPC_CheckPredicate = 721
+ // #OPC_CheckOpcode = 128
+ // #OPC_SwitchOpcode = 18
+ // #OPC_CheckType = 77
+ // #OPC_SwitchType = 146
+ // #OPC_CheckChildType = 123
+ // #OPC_CheckInteger = 0
+ // #OPC_CheckChildInteger = 24
+ // #OPC_CheckCondCode = 0
+ // #OPC_CheckChild2CondCode = 68
+ // #OPC_CheckValueType = 22
+ // #OPC_CheckComplexPat = 256
+ // #OPC_CheckAndImm = 15
+ // #OPC_CheckOrImm = 0
+ // #OPC_CheckImmAllOnesV = 0
+ // #OPC_CheckImmAllZerosV = 0
+ // #OPC_CheckFoldableChainNode = 0
+ // #OPC_EmitInteger = 406
+ // #OPC_EmitStringInteger = 0
+ // #OPC_EmitRegister = 66
+ // #OPC_EmitConvertToTarget = 343
+ // #OPC_EmitMergeInputChains = 894
+ // #OPC_EmitCopyToReg = 0
+ // #OPC_EmitNode = 94
+ // #OPC_EmitNodeXForm = 9
+ // #OPC_CompleteMatch = 0
+ // #OPC_MorphNodeTo = 1338
+
+ #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->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 1: return (Subtarget->hasStdExtM()) && (Subtarget->is64Bit());
+ case 2: return (Subtarget->hasStdExtM()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 3: return (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 4: return (Subtarget->is64Bit());
+ case 5: return (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 6: return (MF->getSubtarget().checkFeatures("-64bit"));
+ case 7: return (MF->getSubtarget().checkFeatures("+64bit"));
+ case 8: return (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 9: return (!Subtarget->is64Bit());
+ case 10: return (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 11: return (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 12: return (Subtarget->hasStdExtF());
+ case 13: return (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 14: return (Subtarget->hasStdExtD());
+ case 15: return (Subtarget->hasStdExtF()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 16: return (Subtarget->hasStdExtD()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 17: return (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 18: return (Subtarget->hasStdExtA());
+ case 19: return (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 20: return (Subtarget->hasStdExtA()) && (Subtarget->is64Bit());
+ case 21: return (Subtarget->hasStdExtA()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 22: return (Subtarget->hasStdExtA()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 23: return (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 24: return (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 25: return (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 26: return (Subtarget->hasStdExtM());
+ case 27: return (Subtarget->hasStdExtM()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 28: return (Subtarget->hasStdExtD()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 29: return (Subtarget->hasStdExtD()) && (Subtarget->is64Bit());
+ case 30: return (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 31: return (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit());
+ case 32: return (Subtarget->hasStdExtF()) && (Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 33: return (Subtarget->hasStdExtF()) && (Subtarget->is64Bit());
+ case 34: return (Subtarget->hasStdExtF()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ case 35: return (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("-64bit"));
+ case 36: return (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit());
+ case 37: return (Subtarget->hasStdExtD()) && (!Subtarget->is64Bit()) && (MF->getSubtarget().checkFeatures("+64bit"));
+ }
+}
+#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_assertzexti32
+ // Predicate_assertsexti32
+ SDNode *N = Node;
+ (void)N;
+
+ return cast<VTSDNode>(N->getOperand(1))->getVT() == MVT::i32;
+
+ }
+ case 1: {
+ // Predicate_simm12
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+return isInt<12>(Imm);
+ }
+ case 2: {
+ // Predicate_IsOrAdd
+ SDNode *N = Node;
+ (void)N;
+
+ return isOrEquivalentToAdd(N);
+
+ }
+ case 3: {
+ // Predicate_unindexedload
+ SDNode *N = Node;
+ (void)N;
+if (cast<LoadSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
+return true;
+
+ }
+ case 4: {
+ // Predicate_sextload
+ SDNode *N = Node;
+ (void)N;
+if (cast<LoadSDNode>(N)->getExtensionType() != ISD::SEXTLOAD) return false;
+return true;
+
+ }
+ case 5: {
+ // Predicate_sextloadi8
+ // Predicate_extloadi8
+ // Predicate_zextloadi8
+ // Predicate_truncstorei8
+ // Predicate_atomic_store_8
+ // Predicate_atomic_load_8
+ SDNode *N = Node;
+ (void)N;
+if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i8) return false;
+return true;
+
+ }
+ case 6: {
+ // Predicate_extload
+ SDNode *N = Node;
+ (void)N;
+if (cast<LoadSDNode>(N)->getExtensionType() != ISD::EXTLOAD) return false;
+return true;
+
+ }
+ case 7: {
+ // Predicate_sextloadi16
+ // Predicate_extloadi16
+ // Predicate_zextloadi16
+ // Predicate_truncstorei16
+ // Predicate_atomic_store_16
+ // Predicate_atomic_load_16
+ SDNode *N = Node;
+ (void)N;
+if (cast<MemSDNode>(N)->getMemoryVT() != MVT::i16) return false;
+return true;
+
+ }
+ case 8: {
+ // Predicate_load
+ SDNode *N = Node;
+ (void)N;
+if (cast<LoadSDNode>(N)->getExtensionType() != ISD::NON_EXTLOAD) return false;
+return true;
+
+ }
+ case 9: {
+ // Predicate_zextload
+ SDNode *N = Node;
+ (void)N;
+if (cast<LoadSDNode>(N)->getExtensionType() != ISD::ZEXTLOAD) return false;
+return true;
+
+ }
+ case 10: {
+ // Predicate_sextloadi32
+ // Predicate_extloadi32
+ // Predicate_zextloadi32
+ // Predicate_truncstorei32
+ // Predicate_atomic_store_32
+ // Predicate_atomic_load_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_max_32
+ // Predicate_atomic_load_min_32
+ // Predicate_atomic_load_umax_32
+ // Predicate_atomic_load_umin_32
+ // Predicate_atomic_load_nand_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 11: {
+ // Predicate_unindexedstore
+ SDNode *N = Node;
+ (void)N;
+if (cast<StoreSDNode>(N)->getAddressingMode() != ISD::UNINDEXED) return false;
+return true;
+
+ }
+ case 12: {
+ // Predicate_truncstore
+ SDNode *N = Node;
+ (void)N;
+ if (!cast<StoreSDNode>(N)->isTruncatingStore()) return false;
+return true;
+
+ }
+ case 13: {
+ // Predicate_store
+ SDNode *N = Node;
+ (void)N;
+ if (cast<StoreSDNode>(N)->isTruncatingStore()) return false;
+return true;
+
+ }
+ case 14: {
+ // Predicate_atomic_store_64
+ // Predicate_atomic_load_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_max_64
+ // Predicate_atomic_load_min_64
+ // Predicate_atomic_load_umax_64
+ // Predicate_atomic_load_umin_64
+ // Predicate_atomic_load_nand_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 15: {
+ // Predicate_uimm5
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+return isUInt<5>(Imm);
+ }
+ case 16: {
+ // Predicate_immbottomxlenset
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+
+ if (Subtarget->is64Bit())
+ return countTrailingOnes<uint64_t>(Imm) >= 6;
+ return countTrailingOnes<uint64_t>(Imm) >= 5;
+
+ }
+ case 17: {
+ // Predicate_uimmlog2xlen
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+
+ if (Subtarget->is64Bit())
+ return isUInt<6>(Imm);
+ return isUInt<5>(Imm);
+
+ }
+ case 18: {
+ // Predicate_simm32hi20
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+return isShiftedInt<20, 12>(Imm);
+ }
+ case 19: {
+ // Predicate_simm32
+ int64_t Imm = cast<ConstantSDNode>(Node)->getSExtValue();
+return isInt<32>(Imm);
+ }
+ case 20: {
+ // Predicate_atomic_swap_32_monotonic
+ // Predicate_atomic_swap_64_monotonic
+ // Predicate_atomic_load_add_32_monotonic
+ // Predicate_atomic_load_add_64_monotonic
+ // Predicate_atomic_load_and_32_monotonic
+ // Predicate_atomic_load_and_64_monotonic
+ // Predicate_atomic_load_or_32_monotonic
+ // Predicate_atomic_load_or_64_monotonic
+ // Predicate_atomic_load_xor_32_monotonic
+ // Predicate_atomic_load_xor_64_monotonic
+ // Predicate_atomic_load_max_32_monotonic
+ // Predicate_atomic_load_max_64_monotonic
+ // Predicate_atomic_load_min_32_monotonic
+ // Predicate_atomic_load_min_64_monotonic
+ // Predicate_atomic_load_umax_32_monotonic
+ // Predicate_atomic_load_umax_64_monotonic
+ // Predicate_atomic_load_umin_32_monotonic
+ // Predicate_atomic_load_umin_64_monotonic
+ // Predicate_atomic_load_nand_32_monotonic
+ // Predicate_atomic_load_nand_64_monotonic
+ // Predicate_atomic_cmp_swap_32_monotonic
+ // Predicate_atomic_cmp_swap_64_monotonic
+ // Predicate_atomic_load_sub_32_monotonic
+ // Predicate_atomic_load_sub_64_monotonic
+ SDNode *N = Node;
+ (void)N;
+if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Monotonic) return false;
+return true;
+
+ }
+ case 21: {
+ // Predicate_atomic_swap_32_acquire
+ // Predicate_atomic_swap_64_acquire
+ // Predicate_atomic_load_add_32_acquire
+ // Predicate_atomic_load_add_64_acquire
+ // Predicate_atomic_load_and_32_acquire
+ // Predicate_atomic_load_and_64_acquire
+ // Predicate_atomic_load_or_32_acquire
+ // Predicate_atomic_load_or_64_acquire
+ // Predicate_atomic_load_xor_32_acquire
+ // Predicate_atomic_load_xor_64_acquire
+ // Predicate_atomic_load_max_32_acquire
+ // Predicate_atomic_load_max_64_acquire
+ // Predicate_atomic_load_min_32_acquire
+ // Predicate_atomic_load_min_64_acquire
+ // Predicate_atomic_load_umax_32_acquire
+ // Predicate_atomic_load_umax_64_acquire
+ // Predicate_atomic_load_umin_32_acquire
+ // Predicate_atomic_load_umin_64_acquire
+ // Predicate_atomic_load_nand_32_acquire
+ // Predicate_atomic_load_nand_64_acquire
+ // Predicate_atomic_cmp_swap_32_acquire
+ // Predicate_atomic_cmp_swap_64_acquire
+ // Predicate_atomic_load_sub_32_acquire
+ // Predicate_atomic_load_sub_64_acquire
+ SDNode *N = Node;
+ (void)N;
+if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Acquire) return false;
+return true;
+
+ }
+ case 22: {
+ // Predicate_atomic_swap_32_release
+ // Predicate_atomic_swap_64_release
+ // Predicate_atomic_load_add_32_release
+ // Predicate_atomic_load_add_64_release
+ // Predicate_atomic_load_and_32_release
+ // Predicate_atomic_load_and_64_release
+ // Predicate_atomic_load_or_32_release
+ // Predicate_atomic_load_or_64_release
+ // Predicate_atomic_load_xor_32_release
+ // Predicate_atomic_load_xor_64_release
+ // Predicate_atomic_load_max_32_release
+ // Predicate_atomic_load_max_64_release
+ // Predicate_atomic_load_min_32_release
+ // Predicate_atomic_load_min_64_release
+ // Predicate_atomic_load_umax_32_release
+ // Predicate_atomic_load_umax_64_release
+ // Predicate_atomic_load_umin_32_release
+ // Predicate_atomic_load_umin_64_release
+ // Predicate_atomic_load_nand_32_release
+ // Predicate_atomic_load_nand_64_release
+ // Predicate_atomic_cmp_swap_32_release
+ // Predicate_atomic_cmp_swap_64_release
+ // Predicate_atomic_load_sub_32_release
+ // Predicate_atomic_load_sub_64_release
+ SDNode *N = Node;
+ (void)N;
+if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::Release) return false;
+return true;
+
+ }
+ case 23: {
+ // Predicate_atomic_swap_32_acq_rel
+ // Predicate_atomic_swap_64_acq_rel
+ // Predicate_atomic_load_add_32_acq_rel
+ // Predicate_atomic_load_add_64_acq_rel
+ // Predicate_atomic_load_and_32_acq_rel
+ // Predicate_atomic_load_and_64_acq_rel
+ // Predicate_atomic_load_or_32_acq_rel
+ // Predicate_atomic_load_or_64_acq_rel
+ // Predicate_atomic_load_xor_32_acq_rel
+ // Predicate_atomic_load_xor_64_acq_rel
+ // Predicate_atomic_load_max_32_acq_rel
+ // Predicate_atomic_load_max_64_acq_rel
+ // Predicate_atomic_load_min_32_acq_rel
+ // Predicate_atomic_load_min_64_acq_rel
+ // Predicate_atomic_load_umax_32_acq_rel
+ // Predicate_atomic_load_umax_64_acq_rel
+ // Predicate_atomic_load_umin_32_acq_rel
+ // Predicate_atomic_load_umin_64_acq_rel
+ // Predicate_atomic_load_nand_32_acq_rel
+ // Predicate_atomic_load_nand_64_acq_rel
+ // Predicate_atomic_cmp_swap_32_acq_rel
+ // Predicate_atomic_cmp_swap_64_acq_rel
+ // Predicate_atomic_load_sub_32_acq_rel
+ // Predicate_atomic_load_sub_64_acq_rel
+ SDNode *N = Node;
+ (void)N;
+if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::AcquireRelease) return false;
+return true;
+
+ }
+ case 24: {
+ // Predicate_atomic_swap_32_seq_cst
+ // Predicate_atomic_swap_64_seq_cst
+ // Predicate_atomic_load_add_32_seq_cst
+ // Predicate_atomic_load_add_64_seq_cst
+ // Predicate_atomic_load_and_32_seq_cst
+ // Predicate_atomic_load_and_64_seq_cst
+ // Predicate_atomic_load_or_32_seq_cst
+ // Predicate_atomic_load_or_64_seq_cst
+ // Predicate_atomic_load_xor_32_seq_cst
+ // Predicate_atomic_load_xor_64_seq_cst
+ // Predicate_atomic_load_max_32_seq_cst
+ // Predicate_atomic_load_max_64_seq_cst
+ // Predicate_atomic_load_min_32_seq_cst
+ // Predicate_atomic_load_min_64_seq_cst
+ // Predicate_atomic_load_umax_32_seq_cst
+ // Predicate_atomic_load_umax_64_seq_cst
+ // Predicate_atomic_load_umin_32_seq_cst
+ // Predicate_atomic_load_umin_64_seq_cst
+ // Predicate_atomic_load_nand_32_seq_cst
+ // Predicate_atomic_load_nand_64_seq_cst
+ // Predicate_atomic_cmp_swap_32_seq_cst
+ // Predicate_atomic_cmp_swap_64_seq_cst
+ // Predicate_atomic_load_sub_32_seq_cst
+ // Predicate_atomic_load_sub_64_seq_cst
+ SDNode *N = Node;
+ (void)N;
+if (cast<AtomicSDNode>(N)->getOrdering() != AtomicOrdering::SequentiallyConsistent) return false;
+return true;
+
+ }
+ }
+}
+#endif // GET_DAGISEL_BODY
+
+#ifdef GET_DAGISEL_DECL
+bool CheckComplexPattern(SDNode *Root, SDNode *Parent,
+ SDValue N, unsigned PatternNo,
+ SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result) override;
+#endif
+#if defined(GET_DAGISEL_BODY) || DAGISEL_INLINE
+bool DAGISEL_CLASS_COLONCOLON CheckComplexPattern(SDNode *Root, SDNode *Parent,
+ SDValue N, unsigned PatternNo,
+ SmallVectorImpl<std::pair<SDValue, SDNode*>> &Result)
+#if DAGISEL_INLINE
+ override
+#endif
+ {
+ unsigned NextRes = Result.size();
+ switch (PatternNo) {
+ default: llvm_unreachable("Invalid pattern # in table?");
+ case 0:
+ Result.resize(NextRes+1);
+ return SelectAddrFI(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: { // HI20
+ ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
+
+ return CurDAG->getTargetConstant(((N->getZExtValue()+0x800) >> 12) & 0xfffff,
+ SDLoc(N), N->getValueType(0));
+
+ }
+ case 1: { // LO12Sext
+ ConstantSDNode *N = cast<ConstantSDNode>(V.getNode());
+
+ return CurDAG->getTargetConstant(SignExtend64<12>(N->getZExtValue()),
+ 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
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDisassemblerTables.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDisassemblerTables.inc
new file mode 100644
index 0000000..d2d5b2a
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenDisassemblerTables.inc
@@ -0,0 +1,1898 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* * RISCV Disassembler *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#include "llvm/MC/MCInst.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/DataTypes.h"
+#include "llvm/Support/LEB128.h"
+#include "llvm/Support/raw_ostream.h"
+#include <assert.h>
+
+namespace llvm {
+
+// Helper functions for extracting fields from encoded instructions.
+// InsnType must either be integral or an APInt-like object that must:
+// * Have a static const max_size_in_bits equal to the number of bits in the
+// encoding.
+// * be default-constructible and copy-constructible
+// * be constructible from a uint64_t
+// * be constructible from an APInt (this can be private)
+// * Support getBitsSet(loBit, hiBit)
+// * be convertible to uint64_t
+// * Support the ~, &, ==, !=, and |= operators with other objects of the same type
+// * Support shift (<<, >>) with signed and unsigned integers on the RHS
+// * Support put (<<) to raw_ostream&
+template<typename InsnType>
+#if defined(_MSC_VER) && !defined(__clang__)
+__declspec(noinline)
+#endif
+static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
+ unsigned numBits, std::true_type) {
+ assert(startBit + numBits <= 64 && "Cannot support >64-bit extractions!");
+ assert(startBit + numBits <= (sizeof(InsnType) * 8) &&
+ "Instruction field out of bounds!");
+ InsnType fieldMask;
+ if (numBits == sizeof(InsnType) * 8)
+ fieldMask = (InsnType)(-1LL);
+ else
+ fieldMask = (((InsnType)1 << numBits) - 1) << startBit;
+ return (insn & fieldMask) >> startBit;
+}
+
+template<typename InsnType>
+static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
+ unsigned numBits, std::false_type) {
+ assert(startBit + numBits <= InsnType::max_size_in_bits && "Instruction field out of bounds!");
+ InsnType fieldMask = InsnType::getBitsSet(0, numBits);
+ return (insn >> startBit) & fieldMask;
+}
+
+template<typename InsnType>
+static InsnType fieldFromInstruction(InsnType insn, unsigned startBit,
+ unsigned numBits) {
+ return fieldFromInstruction(insn, startBit, numBits, std::is_integral<InsnType>());
+}
+
+static const uint8_t DecoderTable16[] = {
+/* 0 */ MCD::OPC_ExtractField, 13, 3, // Inst{15-13} ...
+/* 3 */ MCD::OPC_FilterValue, 0, 132, 0, 0, // Skip to: 140
+/* 8 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 11 */ MCD::OPC_FilterValue, 0, 25, 0, 0, // Skip to: 41
+/* 16 */ MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 32
+/* 21 */ MCD::OPC_CheckField, 2, 11, 0, 4, 0, 0, // Skip to: 32
+/* 28 */ MCD::OPC_Decode, 243, 2, 0, // Opcode: C_UNIMP
+/* 32 */ MCD::OPC_CheckPredicate, 0, 24, 3, 0, // Skip to: 829
+/* 37 */ MCD::OPC_Decode, 193, 2, 1, // Opcode: C_ADDI4SPN
+/* 41 */ MCD::OPC_FilterValue, 1, 41, 0, 0, // Skip to: 87
+/* 46 */ MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 62
+/* 51 */ MCD::OPC_CheckField, 2, 11, 0, 4, 0, 0, // Skip to: 62
+/* 58 */ MCD::OPC_Decode, 227, 2, 0, // Opcode: C_NOP
+/* 62 */ MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 78
+/* 67 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 78
+/* 74 */ MCD::OPC_Decode, 228, 2, 2, // Opcode: C_NOP_HINT
+/* 78 */ MCD::OPC_CheckPredicate, 0, 234, 2, 0, // Skip to: 829
+/* 83 */ MCD::OPC_Decode, 191, 2, 3, // Opcode: C_ADDI
+/* 87 */ MCD::OPC_FilterValue, 2, 225, 2, 0, // Skip to: 829
+/* 92 */ MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 115
+/* 97 */ MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 115
+/* 104 */ MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 115
+/* 111 */ MCD::OPC_Decode, 233, 2, 4, // Opcode: C_SLLI64_HINT
+/* 115 */ MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 131
+/* 120 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 131
+/* 127 */ MCD::OPC_Decode, 234, 2, 5, // Opcode: C_SLLI_HINT
+/* 131 */ MCD::OPC_CheckPredicate, 0, 181, 2, 0, // Skip to: 829
+/* 136 */ MCD::OPC_Decode, 232, 2, 6, // Opcode: C_SLLI
+/* 140 */ MCD::OPC_FilterValue, 1, 45, 0, 0, // Skip to: 190
+/* 145 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 148 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 162
+/* 153 */ MCD::OPC_CheckPredicate, 2, 159, 2, 0, // Skip to: 829
+/* 158 */ MCD::OPC_Decode, 205, 2, 7, // Opcode: C_FLD
+/* 162 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 176
+/* 167 */ MCD::OPC_CheckPredicate, 3, 145, 2, 0, // Skip to: 829
+/* 172 */ MCD::OPC_Decode, 194, 2, 3, // Opcode: C_ADDIW
+/* 176 */ MCD::OPC_FilterValue, 2, 136, 2, 0, // Skip to: 829
+/* 181 */ MCD::OPC_CheckPredicate, 2, 131, 2, 0, // Skip to: 829
+/* 186 */ MCD::OPC_Decode, 206, 2, 8, // Opcode: C_FLDSP
+/* 190 */ MCD::OPC_FilterValue, 2, 61, 0, 0, // Skip to: 256
+/* 195 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 198 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 212
+/* 203 */ MCD::OPC_CheckPredicate, 0, 109, 2, 0, // Skip to: 829
+/* 208 */ MCD::OPC_Decode, 223, 2, 9, // Opcode: C_LW
+/* 212 */ MCD::OPC_FilterValue, 1, 25, 0, 0, // Skip to: 242
+/* 217 */ MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 233
+/* 222 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 233
+/* 229 */ MCD::OPC_Decode, 220, 2, 10, // Opcode: C_LI_HINT
+/* 233 */ MCD::OPC_CheckPredicate, 0, 79, 2, 0, // Skip to: 829
+/* 238 */ MCD::OPC_Decode, 219, 2, 11, // Opcode: C_LI
+/* 242 */ MCD::OPC_FilterValue, 2, 70, 2, 0, // Skip to: 829
+/* 247 */ MCD::OPC_CheckPredicate, 0, 65, 2, 0, // Skip to: 829
+/* 252 */ MCD::OPC_Decode, 224, 2, 12, // Opcode: C_LWSP
+/* 256 */ MCD::OPC_FilterValue, 3, 76, 0, 0, // Skip to: 337
+/* 261 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 264 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 278
+/* 269 */ MCD::OPC_CheckPredicate, 3, 43, 2, 0, // Skip to: 829
+/* 274 */ MCD::OPC_Decode, 217, 2, 13, // Opcode: C_LD
+/* 278 */ MCD::OPC_FilterValue, 1, 40, 0, 0, // Skip to: 323
+/* 283 */ MCD::OPC_ExtractField, 7, 5, // Inst{11-7} ...
+/* 286 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 300
+/* 291 */ MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 314
+/* 296 */ MCD::OPC_Decode, 222, 2, 10, // Opcode: C_LUI_HINT
+/* 300 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 314
+/* 305 */ MCD::OPC_CheckPredicate, 0, 4, 0, 0, // Skip to: 314
+/* 310 */ MCD::OPC_Decode, 192, 2, 14, // Opcode: C_ADDI16SP
+/* 314 */ MCD::OPC_CheckPredicate, 0, 254, 1, 0, // Skip to: 829
+/* 319 */ MCD::OPC_Decode, 221, 2, 15, // Opcode: C_LUI
+/* 323 */ MCD::OPC_FilterValue, 2, 245, 1, 0, // Skip to: 829
+/* 328 */ MCD::OPC_CheckPredicate, 3, 240, 1, 0, // Skip to: 829
+/* 333 */ MCD::OPC_Decode, 218, 2, 16, // Opcode: C_LDSP
+/* 337 */ MCD::OPC_FilterValue, 4, 81, 1, 0, // Skip to: 679
+/* 342 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 345 */ MCD::OPC_FilterValue, 1, 213, 0, 0, // Skip to: 563
+/* 350 */ MCD::OPC_ExtractField, 10, 2, // Inst{11-10} ...
+/* 353 */ MCD::OPC_FilterValue, 0, 32, 0, 0, // Skip to: 390
+/* 358 */ MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 381
+/* 363 */ MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 381
+/* 370 */ MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 381
+/* 377 */ MCD::OPC_Decode, 238, 2, 17, // Opcode: C_SRLI64_HINT
+/* 381 */ MCD::OPC_CheckPredicate, 0, 187, 1, 0, // Skip to: 829
+/* 386 */ MCD::OPC_Decode, 237, 2, 18, // Opcode: C_SRLI
+/* 390 */ MCD::OPC_FilterValue, 1, 32, 0, 0, // Skip to: 427
+/* 395 */ MCD::OPC_CheckPredicate, 1, 18, 0, 0, // Skip to: 418
+/* 400 */ MCD::OPC_CheckField, 12, 1, 0, 11, 0, 0, // Skip to: 418
+/* 407 */ MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 418
+/* 414 */ MCD::OPC_Decode, 236, 2, 17, // Opcode: C_SRAI64_HINT
+/* 418 */ MCD::OPC_CheckPredicate, 0, 150, 1, 0, // Skip to: 829
+/* 423 */ MCD::OPC_Decode, 235, 2, 18, // Opcode: C_SRAI
+/* 427 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 441
+/* 432 */ MCD::OPC_CheckPredicate, 0, 136, 1, 0, // Skip to: 829
+/* 437 */ MCD::OPC_Decode, 201, 2, 19, // Opcode: C_ANDI
+/* 441 */ MCD::OPC_FilterValue, 3, 127, 1, 0, // Skip to: 829
+/* 446 */ MCD::OPC_ExtractField, 5, 2, // Inst{6-5} ...
+/* 449 */ MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 485
+/* 454 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ...
+/* 457 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 471
+/* 462 */ MCD::OPC_CheckPredicate, 0, 106, 1, 0, // Skip to: 829
+/* 467 */ MCD::OPC_Decode, 239, 2, 20, // Opcode: C_SUB
+/* 471 */ MCD::OPC_FilterValue, 1, 97, 1, 0, // Skip to: 829
+/* 476 */ MCD::OPC_CheckPredicate, 3, 92, 1, 0, // Skip to: 829
+/* 481 */ MCD::OPC_Decode, 240, 2, 20, // Opcode: C_SUBW
+/* 485 */ MCD::OPC_FilterValue, 1, 31, 0, 0, // Skip to: 521
+/* 490 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ...
+/* 493 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 507
+/* 498 */ MCD::OPC_CheckPredicate, 0, 70, 1, 0, // Skip to: 829
+/* 503 */ MCD::OPC_Decode, 244, 2, 20, // Opcode: C_XOR
+/* 507 */ MCD::OPC_FilterValue, 1, 61, 1, 0, // Skip to: 829
+/* 512 */ MCD::OPC_CheckPredicate, 3, 56, 1, 0, // Skip to: 829
+/* 517 */ MCD::OPC_Decode, 198, 2, 20, // Opcode: C_ADDW
+/* 521 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 542
+/* 526 */ MCD::OPC_CheckPredicate, 0, 42, 1, 0, // Skip to: 829
+/* 531 */ MCD::OPC_CheckField, 12, 1, 0, 35, 1, 0, // Skip to: 829
+/* 538 */ MCD::OPC_Decode, 229, 2, 20, // Opcode: C_OR
+/* 542 */ MCD::OPC_FilterValue, 3, 26, 1, 0, // Skip to: 829
+/* 547 */ MCD::OPC_CheckPredicate, 0, 21, 1, 0, // Skip to: 829
+/* 552 */ MCD::OPC_CheckField, 12, 1, 0, 14, 1, 0, // Skip to: 829
+/* 559 */ MCD::OPC_Decode, 200, 2, 20, // Opcode: C_AND
+/* 563 */ MCD::OPC_FilterValue, 2, 5, 1, 0, // Skip to: 829
+/* 568 */ MCD::OPC_ExtractField, 12, 1, // Inst{12} ...
+/* 571 */ MCD::OPC_FilterValue, 0, 41, 0, 0, // Skip to: 617
+/* 576 */ MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 592
+/* 581 */ MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 592
+/* 588 */ MCD::OPC_Decode, 216, 2, 21, // Opcode: C_JR
+/* 592 */ MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 608
+/* 597 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 608
+/* 604 */ MCD::OPC_Decode, 226, 2, 22, // Opcode: C_MV_HINT
+/* 608 */ MCD::OPC_CheckPredicate, 0, 216, 0, 0, // Skip to: 829
+/* 613 */ MCD::OPC_Decode, 225, 2, 23, // Opcode: C_MV
+/* 617 */ MCD::OPC_FilterValue, 1, 207, 0, 0, // Skip to: 829
+/* 622 */ MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 638
+/* 627 */ MCD::OPC_CheckField, 2, 10, 0, 4, 0, 0, // Skip to: 638
+/* 634 */ MCD::OPC_Decode, 204, 2, 0, // Opcode: C_EBREAK
+/* 638 */ MCD::OPC_CheckPredicate, 1, 11, 0, 0, // Skip to: 654
+/* 643 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 654
+/* 650 */ MCD::OPC_Decode, 199, 2, 24, // Opcode: C_ADD_HINT
+/* 654 */ MCD::OPC_CheckPredicate, 0, 11, 0, 0, // Skip to: 670
+/* 659 */ MCD::OPC_CheckField, 2, 5, 0, 4, 0, 0, // Skip to: 670
+/* 666 */ MCD::OPC_Decode, 215, 2, 21, // Opcode: C_JALR
+/* 670 */ MCD::OPC_CheckPredicate, 0, 154, 0, 0, // Skip to: 829
+/* 675 */ MCD::OPC_Decode, 190, 2, 25, // Opcode: C_ADD
+/* 679 */ MCD::OPC_FilterValue, 5, 45, 0, 0, // Skip to: 729
+/* 684 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 687 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 701
+/* 692 */ MCD::OPC_CheckPredicate, 2, 132, 0, 0, // Skip to: 829
+/* 697 */ MCD::OPC_Decode, 209, 2, 7, // Opcode: C_FSD
+/* 701 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 715
+/* 706 */ MCD::OPC_CheckPredicate, 0, 118, 0, 0, // Skip to: 829
+/* 711 */ MCD::OPC_Decode, 213, 2, 26, // Opcode: C_J
+/* 715 */ MCD::OPC_FilterValue, 2, 109, 0, 0, // Skip to: 829
+/* 720 */ MCD::OPC_CheckPredicate, 2, 104, 0, 0, // Skip to: 829
+/* 725 */ MCD::OPC_Decode, 210, 2, 27, // Opcode: C_FSDSP
+/* 729 */ MCD::OPC_FilterValue, 6, 45, 0, 0, // Skip to: 779
+/* 734 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 737 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 751
+/* 742 */ MCD::OPC_CheckPredicate, 0, 82, 0, 0, // Skip to: 829
+/* 747 */ MCD::OPC_Decode, 241, 2, 9, // Opcode: C_SW
+/* 751 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 765
+/* 756 */ MCD::OPC_CheckPredicate, 0, 68, 0, 0, // Skip to: 829
+/* 761 */ MCD::OPC_Decode, 202, 2, 28, // Opcode: C_BEQZ
+/* 765 */ MCD::OPC_FilterValue, 2, 59, 0, 0, // Skip to: 829
+/* 770 */ MCD::OPC_CheckPredicate, 0, 54, 0, 0, // Skip to: 829
+/* 775 */ MCD::OPC_Decode, 242, 2, 29, // Opcode: C_SWSP
+/* 779 */ MCD::OPC_FilterValue, 7, 45, 0, 0, // Skip to: 829
+/* 784 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 787 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 801
+/* 792 */ MCD::OPC_CheckPredicate, 3, 32, 0, 0, // Skip to: 829
+/* 797 */ MCD::OPC_Decode, 230, 2, 13, // Opcode: C_SD
+/* 801 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 815
+/* 806 */ MCD::OPC_CheckPredicate, 0, 18, 0, 0, // Skip to: 829
+/* 811 */ MCD::OPC_Decode, 203, 2, 28, // Opcode: C_BNEZ
+/* 815 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 829
+/* 820 */ MCD::OPC_CheckPredicate, 3, 4, 0, 0, // Skip to: 829
+/* 825 */ MCD::OPC_Decode, 231, 2, 30, // Opcode: C_SDSP
+/* 829 */ MCD::OPC_Fail,
+ 0
+};
+
+static const uint8_t DecoderTable32[] = {
+/* 0 */ MCD::OPC_ExtractField, 0, 7, // Inst{6-0} ...
+/* 3 */ MCD::OPC_FilterValue, 3, 76, 0, 0, // Skip to: 84
+/* 8 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 11 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 20
+/* 16 */ MCD::OPC_Decode, 190, 3, 31, // Opcode: LB
+/* 20 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 29
+/* 25 */ MCD::OPC_Decode, 193, 3, 31, // Opcode: LH
+/* 29 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 38
+/* 34 */ MCD::OPC_Decode, 204, 3, 31, // Opcode: LW
+/* 38 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 52
+/* 43 */ MCD::OPC_CheckPredicate, 4, 55, 15, 0, // Skip to: 3943
+/* 48 */ MCD::OPC_Decode, 192, 3, 31, // Opcode: LD
+/* 52 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 61
+/* 57 */ MCD::OPC_Decode, 191, 3, 31, // Opcode: LBU
+/* 61 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 70
+/* 66 */ MCD::OPC_Decode, 194, 3, 31, // Opcode: LHU
+/* 70 */ MCD::OPC_FilterValue, 6, 28, 15, 0, // Skip to: 3943
+/* 75 */ MCD::OPC_CheckPredicate, 4, 23, 15, 0, // Skip to: 3943
+/* 80 */ MCD::OPC_Decode, 205, 3, 31, // Opcode: LWU
+/* 84 */ MCD::OPC_FilterValue, 7, 31, 0, 0, // Skip to: 120
+/* 89 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 92 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 106
+/* 97 */ MCD::OPC_CheckPredicate, 5, 1, 15, 0, // Skip to: 3943
+/* 102 */ MCD::OPC_Decode, 157, 3, 32, // Opcode: FLW
+/* 106 */ MCD::OPC_FilterValue, 3, 248, 14, 0, // Skip to: 3943
+/* 111 */ MCD::OPC_CheckPredicate, 6, 243, 14, 0, // Skip to: 3943
+/* 116 */ MCD::OPC_Decode, 152, 3, 33, // Opcode: FLD
+/* 120 */ MCD::OPC_FilterValue, 15, 52, 0, 0, // Skip to: 177
+/* 125 */ MCD::OPC_ExtractField, 7, 13, // Inst{19-7} ...
+/* 128 */ MCD::OPC_FilterValue, 0, 28, 0, 0, // Skip to: 161
+/* 133 */ MCD::OPC_ExtractField, 28, 4, // Inst{31-28} ...
+/* 136 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 145
+/* 141 */ MCD::OPC_Decode, 147, 3, 34, // Opcode: FENCE
+/* 145 */ MCD::OPC_FilterValue, 8, 209, 14, 0, // Skip to: 3943
+/* 150 */ MCD::OPC_CheckField, 20, 8, 51, 202, 14, 0, // Skip to: 3943
+/* 157 */ MCD::OPC_Decode, 149, 3, 0, // Opcode: FENCE_TSO
+/* 161 */ MCD::OPC_FilterValue, 32, 193, 14, 0, // Skip to: 3943
+/* 166 */ MCD::OPC_CheckField, 20, 12, 0, 186, 14, 0, // Skip to: 3943
+/* 173 */ MCD::OPC_Decode, 148, 3, 0, // Opcode: FENCE_I
+/* 177 */ MCD::OPC_FilterValue, 19, 99, 0, 0, // Skip to: 281
+/* 182 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 185 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 194
+/* 190 */ MCD::OPC_Decode, 228, 1, 31, // Opcode: ADDI
+/* 194 */ MCD::OPC_FilterValue, 1, 11, 0, 0, // Skip to: 210
+/* 199 */ MCD::OPC_CheckField, 26, 6, 0, 153, 14, 0, // Skip to: 3943
+/* 206 */ MCD::OPC_Decode, 231, 3, 35, // Opcode: SLLI
+/* 210 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 219
+/* 215 */ MCD::OPC_Decode, 235, 3, 31, // Opcode: SLTI
+/* 219 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 228
+/* 224 */ MCD::OPC_Decode, 236, 3, 31, // Opcode: SLTIU
+/* 228 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 237
+/* 233 */ MCD::OPC_Decode, 254, 3, 31, // Opcode: XORI
+/* 237 */ MCD::OPC_FilterValue, 5, 21, 0, 0, // Skip to: 263
+/* 242 */ MCD::OPC_ExtractField, 26, 6, // Inst{31-26} ...
+/* 245 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 254
+/* 250 */ MCD::OPC_Decode, 244, 3, 35, // Opcode: SRLI
+/* 254 */ MCD::OPC_FilterValue, 16, 100, 14, 0, // Skip to: 3943
+/* 259 */ MCD::OPC_Decode, 239, 3, 35, // Opcode: SRAI
+/* 263 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 272
+/* 268 */ MCD::OPC_Decode, 213, 3, 31, // Opcode: ORI
+/* 272 */ MCD::OPC_FilterValue, 7, 82, 14, 0, // Skip to: 3943
+/* 277 */ MCD::OPC_Decode, 176, 2, 31, // Opcode: ANDI
+/* 281 */ MCD::OPC_FilterValue, 23, 4, 0, 0, // Skip to: 290
+/* 286 */ MCD::OPC_Decode, 177, 2, 36, // Opcode: AUIPC
+/* 290 */ MCD::OPC_FilterValue, 27, 74, 0, 0, // Skip to: 369
+/* 295 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 298 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 312
+/* 303 */ MCD::OPC_CheckPredicate, 4, 51, 14, 0, // Skip to: 3943
+/* 308 */ MCD::OPC_Decode, 229, 1, 31, // Opcode: ADDIW
+/* 312 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 333
+/* 317 */ MCD::OPC_CheckPredicate, 4, 37, 14, 0, // Skip to: 3943
+/* 322 */ MCD::OPC_CheckField, 25, 7, 0, 30, 14, 0, // Skip to: 3943
+/* 329 */ MCD::OPC_Decode, 232, 3, 37, // Opcode: SLLIW
+/* 333 */ MCD::OPC_FilterValue, 5, 21, 14, 0, // Skip to: 3943
+/* 338 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 341 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 355
+/* 346 */ MCD::OPC_CheckPredicate, 4, 8, 14, 0, // Skip to: 3943
+/* 351 */ MCD::OPC_Decode, 245, 3, 37, // Opcode: SRLIW
+/* 355 */ MCD::OPC_FilterValue, 32, 255, 13, 0, // Skip to: 3943
+/* 360 */ MCD::OPC_CheckPredicate, 4, 250, 13, 0, // Skip to: 3943
+/* 365 */ MCD::OPC_Decode, 240, 3, 37, // Opcode: SRAIW
+/* 369 */ MCD::OPC_FilterValue, 35, 44, 0, 0, // Skip to: 418
+/* 374 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 377 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 386
+/* 382 */ MCD::OPC_Decode, 218, 3, 38, // Opcode: SB
+/* 386 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 395
+/* 391 */ MCD::OPC_Decode, 229, 3, 38, // Opcode: SH
+/* 395 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 404
+/* 400 */ MCD::OPC_Decode, 249, 3, 38, // Opcode: SW
+/* 404 */ MCD::OPC_FilterValue, 3, 206, 13, 0, // Skip to: 3943
+/* 409 */ MCD::OPC_CheckPredicate, 4, 201, 13, 0, // Skip to: 3943
+/* 414 */ MCD::OPC_Decode, 227, 3, 38, // Opcode: SD
+/* 418 */ MCD::OPC_FilterValue, 39, 31, 0, 0, // Skip to: 454
+/* 423 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 426 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 440
+/* 431 */ MCD::OPC_CheckPredicate, 5, 179, 13, 0, // Skip to: 3943
+/* 436 */ MCD::OPC_Decode, 187, 3, 39, // Opcode: FSW
+/* 440 */ MCD::OPC_FilterValue, 3, 170, 13, 0, // Skip to: 3943
+/* 445 */ MCD::OPC_CheckPredicate, 6, 165, 13, 0, // Skip to: 3943
+/* 450 */ MCD::OPC_Decode, 176, 3, 40, // Opcode: FSD
+/* 454 */ MCD::OPC_FilterValue, 47, 107, 6, 0, // Skip to: 2102
+/* 459 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 462 */ MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 498
+/* 467 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 470 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 484
+/* 475 */ MCD::OPC_CheckPredicate, 7, 135, 13, 0, // Skip to: 3943
+/* 480 */ MCD::OPC_Decode, 235, 1, 41, // Opcode: AMOADD_W
+/* 484 */ MCD::OPC_FilterValue, 3, 126, 13, 0, // Skip to: 3943
+/* 489 */ MCD::OPC_CheckPredicate, 8, 121, 13, 0, // Skip to: 3943
+/* 494 */ MCD::OPC_Decode, 231, 1, 41, // Opcode: AMOADD_D
+/* 498 */ MCD::OPC_FilterValue, 1, 31, 0, 0, // Skip to: 534
+/* 503 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 506 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 520
+/* 511 */ MCD::OPC_CheckPredicate, 7, 99, 13, 0, // Skip to: 3943
+/* 516 */ MCD::OPC_Decode, 238, 1, 41, // Opcode: AMOADD_W_RL
+/* 520 */ MCD::OPC_FilterValue, 3, 90, 13, 0, // Skip to: 3943
+/* 525 */ MCD::OPC_CheckPredicate, 8, 85, 13, 0, // Skip to: 3943
+/* 530 */ MCD::OPC_Decode, 234, 1, 41, // Opcode: AMOADD_D_RL
+/* 534 */ MCD::OPC_FilterValue, 2, 31, 0, 0, // Skip to: 570
+/* 539 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 542 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 556
+/* 547 */ MCD::OPC_CheckPredicate, 7, 63, 13, 0, // Skip to: 3943
+/* 552 */ MCD::OPC_Decode, 236, 1, 41, // Opcode: AMOADD_W_AQ
+/* 556 */ MCD::OPC_FilterValue, 3, 54, 13, 0, // Skip to: 3943
+/* 561 */ MCD::OPC_CheckPredicate, 8, 49, 13, 0, // Skip to: 3943
+/* 566 */ MCD::OPC_Decode, 232, 1, 41, // Opcode: AMOADD_D_AQ
+/* 570 */ MCD::OPC_FilterValue, 3, 31, 0, 0, // Skip to: 606
+/* 575 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 578 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 592
+/* 583 */ MCD::OPC_CheckPredicate, 7, 27, 13, 0, // Skip to: 3943
+/* 588 */ MCD::OPC_Decode, 237, 1, 41, // Opcode: AMOADD_W_AQ_RL
+/* 592 */ MCD::OPC_FilterValue, 3, 18, 13, 0, // Skip to: 3943
+/* 597 */ MCD::OPC_CheckPredicate, 8, 13, 13, 0, // Skip to: 3943
+/* 602 */ MCD::OPC_Decode, 233, 1, 41, // Opcode: AMOADD_D_AQ_RL
+/* 606 */ MCD::OPC_FilterValue, 4, 31, 0, 0, // Skip to: 642
+/* 611 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 614 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 628
+/* 619 */ MCD::OPC_CheckPredicate, 7, 247, 12, 0, // Skip to: 3943
+/* 624 */ MCD::OPC_Decode, 163, 2, 41, // Opcode: AMOSWAP_W
+/* 628 */ MCD::OPC_FilterValue, 3, 238, 12, 0, // Skip to: 3943
+/* 633 */ MCD::OPC_CheckPredicate, 8, 233, 12, 0, // Skip to: 3943
+/* 638 */ MCD::OPC_Decode, 159, 2, 41, // Opcode: AMOSWAP_D
+/* 642 */ MCD::OPC_FilterValue, 5, 31, 0, 0, // Skip to: 678
+/* 647 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 650 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 664
+/* 655 */ MCD::OPC_CheckPredicate, 7, 211, 12, 0, // Skip to: 3943
+/* 660 */ MCD::OPC_Decode, 166, 2, 41, // Opcode: AMOSWAP_W_RL
+/* 664 */ MCD::OPC_FilterValue, 3, 202, 12, 0, // Skip to: 3943
+/* 669 */ MCD::OPC_CheckPredicate, 8, 197, 12, 0, // Skip to: 3943
+/* 674 */ MCD::OPC_Decode, 162, 2, 41, // Opcode: AMOSWAP_D_RL
+/* 678 */ MCD::OPC_FilterValue, 6, 31, 0, 0, // Skip to: 714
+/* 683 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 686 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 700
+/* 691 */ MCD::OPC_CheckPredicate, 7, 175, 12, 0, // Skip to: 3943
+/* 696 */ MCD::OPC_Decode, 164, 2, 41, // Opcode: AMOSWAP_W_AQ
+/* 700 */ MCD::OPC_FilterValue, 3, 166, 12, 0, // Skip to: 3943
+/* 705 */ MCD::OPC_CheckPredicate, 8, 161, 12, 0, // Skip to: 3943
+/* 710 */ MCD::OPC_Decode, 160, 2, 41, // Opcode: AMOSWAP_D_AQ
+/* 714 */ MCD::OPC_FilterValue, 7, 31, 0, 0, // Skip to: 750
+/* 719 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 722 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 736
+/* 727 */ MCD::OPC_CheckPredicate, 7, 139, 12, 0, // Skip to: 3943
+/* 732 */ MCD::OPC_Decode, 165, 2, 41, // Opcode: AMOSWAP_W_AQ_RL
+/* 736 */ MCD::OPC_FilterValue, 3, 130, 12, 0, // Skip to: 3943
+/* 741 */ MCD::OPC_CheckPredicate, 8, 125, 12, 0, // Skip to: 3943
+/* 746 */ MCD::OPC_Decode, 161, 2, 41, // Opcode: AMOSWAP_D_AQ_RL
+/* 750 */ MCD::OPC_FilterValue, 8, 45, 0, 0, // Skip to: 800
+/* 755 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 758 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 779
+/* 763 */ MCD::OPC_CheckPredicate, 7, 103, 12, 0, // Skip to: 3943
+/* 768 */ MCD::OPC_CheckField, 20, 5, 0, 96, 12, 0, // Skip to: 3943
+/* 775 */ MCD::OPC_Decode, 199, 3, 42, // Opcode: LR_W
+/* 779 */ MCD::OPC_FilterValue, 3, 87, 12, 0, // Skip to: 3943
+/* 784 */ MCD::OPC_CheckPredicate, 8, 82, 12, 0, // Skip to: 3943
+/* 789 */ MCD::OPC_CheckField, 20, 5, 0, 75, 12, 0, // Skip to: 3943
+/* 796 */ MCD::OPC_Decode, 195, 3, 42, // Opcode: LR_D
+/* 800 */ MCD::OPC_FilterValue, 9, 45, 0, 0, // Skip to: 850
+/* 805 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 808 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 829
+/* 813 */ MCD::OPC_CheckPredicate, 7, 53, 12, 0, // Skip to: 3943
+/* 818 */ MCD::OPC_CheckField, 20, 5, 0, 46, 12, 0, // Skip to: 3943
+/* 825 */ MCD::OPC_Decode, 202, 3, 42, // Opcode: LR_W_RL
+/* 829 */ MCD::OPC_FilterValue, 3, 37, 12, 0, // Skip to: 3943
+/* 834 */ MCD::OPC_CheckPredicate, 8, 32, 12, 0, // Skip to: 3943
+/* 839 */ MCD::OPC_CheckField, 20, 5, 0, 25, 12, 0, // Skip to: 3943
+/* 846 */ MCD::OPC_Decode, 198, 3, 42, // Opcode: LR_D_RL
+/* 850 */ MCD::OPC_FilterValue, 10, 45, 0, 0, // Skip to: 900
+/* 855 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 858 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 879
+/* 863 */ MCD::OPC_CheckPredicate, 7, 3, 12, 0, // Skip to: 3943
+/* 868 */ MCD::OPC_CheckField, 20, 5, 0, 252, 11, 0, // Skip to: 3943
+/* 875 */ MCD::OPC_Decode, 200, 3, 42, // Opcode: LR_W_AQ
+/* 879 */ MCD::OPC_FilterValue, 3, 243, 11, 0, // Skip to: 3943
+/* 884 */ MCD::OPC_CheckPredicate, 8, 238, 11, 0, // Skip to: 3943
+/* 889 */ MCD::OPC_CheckField, 20, 5, 0, 231, 11, 0, // Skip to: 3943
+/* 896 */ MCD::OPC_Decode, 196, 3, 42, // Opcode: LR_D_AQ
+/* 900 */ MCD::OPC_FilterValue, 11, 45, 0, 0, // Skip to: 950
+/* 905 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 908 */ MCD::OPC_FilterValue, 2, 16, 0, 0, // Skip to: 929
+/* 913 */ MCD::OPC_CheckPredicate, 7, 209, 11, 0, // Skip to: 3943
+/* 918 */ MCD::OPC_CheckField, 20, 5, 0, 202, 11, 0, // Skip to: 3943
+/* 925 */ MCD::OPC_Decode, 201, 3, 42, // Opcode: LR_W_AQ_RL
+/* 929 */ MCD::OPC_FilterValue, 3, 193, 11, 0, // Skip to: 3943
+/* 934 */ MCD::OPC_CheckPredicate, 8, 188, 11, 0, // Skip to: 3943
+/* 939 */ MCD::OPC_CheckField, 20, 5, 0, 181, 11, 0, // Skip to: 3943
+/* 946 */ MCD::OPC_Decode, 197, 3, 42, // Opcode: LR_D_AQ_RL
+/* 950 */ MCD::OPC_FilterValue, 12, 31, 0, 0, // Skip to: 986
+/* 955 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 958 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 972
+/* 963 */ MCD::OPC_CheckPredicate, 7, 159, 11, 0, // Skip to: 3943
+/* 968 */ MCD::OPC_Decode, 223, 3, 41, // Opcode: SC_W
+/* 972 */ MCD::OPC_FilterValue, 3, 150, 11, 0, // Skip to: 3943
+/* 977 */ MCD::OPC_CheckPredicate, 8, 145, 11, 0, // Skip to: 3943
+/* 982 */ MCD::OPC_Decode, 219, 3, 41, // Opcode: SC_D
+/* 986 */ MCD::OPC_FilterValue, 13, 31, 0, 0, // Skip to: 1022
+/* 991 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 994 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1008
+/* 999 */ MCD::OPC_CheckPredicate, 7, 123, 11, 0, // Skip to: 3943
+/* 1004 */ MCD::OPC_Decode, 226, 3, 41, // Opcode: SC_W_RL
+/* 1008 */ MCD::OPC_FilterValue, 3, 114, 11, 0, // Skip to: 3943
+/* 1013 */ MCD::OPC_CheckPredicate, 8, 109, 11, 0, // Skip to: 3943
+/* 1018 */ MCD::OPC_Decode, 222, 3, 41, // Opcode: SC_D_RL
+/* 1022 */ MCD::OPC_FilterValue, 14, 31, 0, 0, // Skip to: 1058
+/* 1027 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1030 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1044
+/* 1035 */ MCD::OPC_CheckPredicate, 7, 87, 11, 0, // Skip to: 3943
+/* 1040 */ MCD::OPC_Decode, 224, 3, 41, // Opcode: SC_W_AQ
+/* 1044 */ MCD::OPC_FilterValue, 3, 78, 11, 0, // Skip to: 3943
+/* 1049 */ MCD::OPC_CheckPredicate, 8, 73, 11, 0, // Skip to: 3943
+/* 1054 */ MCD::OPC_Decode, 220, 3, 41, // Opcode: SC_D_AQ
+/* 1058 */ MCD::OPC_FilterValue, 15, 31, 0, 0, // Skip to: 1094
+/* 1063 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1066 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1080
+/* 1071 */ MCD::OPC_CheckPredicate, 7, 51, 11, 0, // Skip to: 3943
+/* 1076 */ MCD::OPC_Decode, 225, 3, 41, // Opcode: SC_W_AQ_RL
+/* 1080 */ MCD::OPC_FilterValue, 3, 42, 11, 0, // Skip to: 3943
+/* 1085 */ MCD::OPC_CheckPredicate, 8, 37, 11, 0, // Skip to: 3943
+/* 1090 */ MCD::OPC_Decode, 221, 3, 41, // Opcode: SC_D_AQ_RL
+/* 1094 */ MCD::OPC_FilterValue, 16, 31, 0, 0, // Skip to: 1130
+/* 1099 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1102 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1116
+/* 1107 */ MCD::OPC_CheckPredicate, 7, 15, 11, 0, // Skip to: 3943
+/* 1112 */ MCD::OPC_Decode, 171, 2, 41, // Opcode: AMOXOR_W
+/* 1116 */ MCD::OPC_FilterValue, 3, 6, 11, 0, // Skip to: 3943
+/* 1121 */ MCD::OPC_CheckPredicate, 8, 1, 11, 0, // Skip to: 3943
+/* 1126 */ MCD::OPC_Decode, 167, 2, 41, // Opcode: AMOXOR_D
+/* 1130 */ MCD::OPC_FilterValue, 17, 31, 0, 0, // Skip to: 1166
+/* 1135 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1138 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1152
+/* 1143 */ MCD::OPC_CheckPredicate, 7, 235, 10, 0, // Skip to: 3943
+/* 1148 */ MCD::OPC_Decode, 174, 2, 41, // Opcode: AMOXOR_W_RL
+/* 1152 */ MCD::OPC_FilterValue, 3, 226, 10, 0, // Skip to: 3943
+/* 1157 */ MCD::OPC_CheckPredicate, 8, 221, 10, 0, // Skip to: 3943
+/* 1162 */ MCD::OPC_Decode, 170, 2, 41, // Opcode: AMOXOR_D_RL
+/* 1166 */ MCD::OPC_FilterValue, 18, 31, 0, 0, // Skip to: 1202
+/* 1171 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1174 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1188
+/* 1179 */ MCD::OPC_CheckPredicate, 7, 199, 10, 0, // Skip to: 3943
+/* 1184 */ MCD::OPC_Decode, 172, 2, 41, // Opcode: AMOXOR_W_AQ
+/* 1188 */ MCD::OPC_FilterValue, 3, 190, 10, 0, // Skip to: 3943
+/* 1193 */ MCD::OPC_CheckPredicate, 8, 185, 10, 0, // Skip to: 3943
+/* 1198 */ MCD::OPC_Decode, 168, 2, 41, // Opcode: AMOXOR_D_AQ
+/* 1202 */ MCD::OPC_FilterValue, 19, 31, 0, 0, // Skip to: 1238
+/* 1207 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1210 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1224
+/* 1215 */ MCD::OPC_CheckPredicate, 7, 163, 10, 0, // Skip to: 3943
+/* 1220 */ MCD::OPC_Decode, 173, 2, 41, // Opcode: AMOXOR_W_AQ_RL
+/* 1224 */ MCD::OPC_FilterValue, 3, 154, 10, 0, // Skip to: 3943
+/* 1229 */ MCD::OPC_CheckPredicate, 8, 149, 10, 0, // Skip to: 3943
+/* 1234 */ MCD::OPC_Decode, 169, 2, 41, // Opcode: AMOXOR_D_AQ_RL
+/* 1238 */ MCD::OPC_FilterValue, 32, 31, 0, 0, // Skip to: 1274
+/* 1243 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1246 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1260
+/* 1251 */ MCD::OPC_CheckPredicate, 7, 127, 10, 0, // Skip to: 3943
+/* 1256 */ MCD::OPC_Decode, 155, 2, 41, // Opcode: AMOOR_W
+/* 1260 */ MCD::OPC_FilterValue, 3, 118, 10, 0, // Skip to: 3943
+/* 1265 */ MCD::OPC_CheckPredicate, 8, 113, 10, 0, // Skip to: 3943
+/* 1270 */ MCD::OPC_Decode, 151, 2, 41, // Opcode: AMOOR_D
+/* 1274 */ MCD::OPC_FilterValue, 33, 31, 0, 0, // Skip to: 1310
+/* 1279 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1282 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1296
+/* 1287 */ MCD::OPC_CheckPredicate, 7, 91, 10, 0, // Skip to: 3943
+/* 1292 */ MCD::OPC_Decode, 158, 2, 41, // Opcode: AMOOR_W_RL
+/* 1296 */ MCD::OPC_FilterValue, 3, 82, 10, 0, // Skip to: 3943
+/* 1301 */ MCD::OPC_CheckPredicate, 8, 77, 10, 0, // Skip to: 3943
+/* 1306 */ MCD::OPC_Decode, 154, 2, 41, // Opcode: AMOOR_D_RL
+/* 1310 */ MCD::OPC_FilterValue, 34, 31, 0, 0, // Skip to: 1346
+/* 1315 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1318 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1332
+/* 1323 */ MCD::OPC_CheckPredicate, 7, 55, 10, 0, // Skip to: 3943
+/* 1328 */ MCD::OPC_Decode, 156, 2, 41, // Opcode: AMOOR_W_AQ
+/* 1332 */ MCD::OPC_FilterValue, 3, 46, 10, 0, // Skip to: 3943
+/* 1337 */ MCD::OPC_CheckPredicate, 8, 41, 10, 0, // Skip to: 3943
+/* 1342 */ MCD::OPC_Decode, 152, 2, 41, // Opcode: AMOOR_D_AQ
+/* 1346 */ MCD::OPC_FilterValue, 35, 31, 0, 0, // Skip to: 1382
+/* 1351 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1354 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1368
+/* 1359 */ MCD::OPC_CheckPredicate, 7, 19, 10, 0, // Skip to: 3943
+/* 1364 */ MCD::OPC_Decode, 157, 2, 41, // Opcode: AMOOR_W_AQ_RL
+/* 1368 */ MCD::OPC_FilterValue, 3, 10, 10, 0, // Skip to: 3943
+/* 1373 */ MCD::OPC_CheckPredicate, 8, 5, 10, 0, // Skip to: 3943
+/* 1378 */ MCD::OPC_Decode, 153, 2, 41, // Opcode: AMOOR_D_AQ_RL
+/* 1382 */ MCD::OPC_FilterValue, 48, 31, 0, 0, // Skip to: 1418
+/* 1387 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1390 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1404
+/* 1395 */ MCD::OPC_CheckPredicate, 7, 239, 9, 0, // Skip to: 3943
+/* 1400 */ MCD::OPC_Decode, 243, 1, 41, // Opcode: AMOAND_W
+/* 1404 */ MCD::OPC_FilterValue, 3, 230, 9, 0, // Skip to: 3943
+/* 1409 */ MCD::OPC_CheckPredicate, 8, 225, 9, 0, // Skip to: 3943
+/* 1414 */ MCD::OPC_Decode, 239, 1, 41, // Opcode: AMOAND_D
+/* 1418 */ MCD::OPC_FilterValue, 49, 31, 0, 0, // Skip to: 1454
+/* 1423 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1426 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1440
+/* 1431 */ MCD::OPC_CheckPredicate, 7, 203, 9, 0, // Skip to: 3943
+/* 1436 */ MCD::OPC_Decode, 246, 1, 41, // Opcode: AMOAND_W_RL
+/* 1440 */ MCD::OPC_FilterValue, 3, 194, 9, 0, // Skip to: 3943
+/* 1445 */ MCD::OPC_CheckPredicate, 8, 189, 9, 0, // Skip to: 3943
+/* 1450 */ MCD::OPC_Decode, 242, 1, 41, // Opcode: AMOAND_D_RL
+/* 1454 */ MCD::OPC_FilterValue, 50, 31, 0, 0, // Skip to: 1490
+/* 1459 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1462 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1476
+/* 1467 */ MCD::OPC_CheckPredicate, 7, 167, 9, 0, // Skip to: 3943
+/* 1472 */ MCD::OPC_Decode, 244, 1, 41, // Opcode: AMOAND_W_AQ
+/* 1476 */ MCD::OPC_FilterValue, 3, 158, 9, 0, // Skip to: 3943
+/* 1481 */ MCD::OPC_CheckPredicate, 8, 153, 9, 0, // Skip to: 3943
+/* 1486 */ MCD::OPC_Decode, 240, 1, 41, // Opcode: AMOAND_D_AQ
+/* 1490 */ MCD::OPC_FilterValue, 51, 31, 0, 0, // Skip to: 1526
+/* 1495 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1498 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1512
+/* 1503 */ MCD::OPC_CheckPredicate, 7, 131, 9, 0, // Skip to: 3943
+/* 1508 */ MCD::OPC_Decode, 245, 1, 41, // Opcode: AMOAND_W_AQ_RL
+/* 1512 */ MCD::OPC_FilterValue, 3, 122, 9, 0, // Skip to: 3943
+/* 1517 */ MCD::OPC_CheckPredicate, 8, 117, 9, 0, // Skip to: 3943
+/* 1522 */ MCD::OPC_Decode, 241, 1, 41, // Opcode: AMOAND_D_AQ_RL
+/* 1526 */ MCD::OPC_FilterValue, 64, 31, 0, 0, // Skip to: 1562
+/* 1531 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1534 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1548
+/* 1539 */ MCD::OPC_CheckPredicate, 7, 95, 9, 0, // Skip to: 3943
+/* 1544 */ MCD::OPC_Decode, 147, 2, 41, // Opcode: AMOMIN_W
+/* 1548 */ MCD::OPC_FilterValue, 3, 86, 9, 0, // Skip to: 3943
+/* 1553 */ MCD::OPC_CheckPredicate, 8, 81, 9, 0, // Skip to: 3943
+/* 1558 */ MCD::OPC_Decode, 143, 2, 41, // Opcode: AMOMIN_D
+/* 1562 */ MCD::OPC_FilterValue, 65, 31, 0, 0, // Skip to: 1598
+/* 1567 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1570 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1584
+/* 1575 */ MCD::OPC_CheckPredicate, 7, 59, 9, 0, // Skip to: 3943
+/* 1580 */ MCD::OPC_Decode, 150, 2, 41, // Opcode: AMOMIN_W_RL
+/* 1584 */ MCD::OPC_FilterValue, 3, 50, 9, 0, // Skip to: 3943
+/* 1589 */ MCD::OPC_CheckPredicate, 8, 45, 9, 0, // Skip to: 3943
+/* 1594 */ MCD::OPC_Decode, 146, 2, 41, // Opcode: AMOMIN_D_RL
+/* 1598 */ MCD::OPC_FilterValue, 66, 31, 0, 0, // Skip to: 1634
+/* 1603 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1606 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1620
+/* 1611 */ MCD::OPC_CheckPredicate, 7, 23, 9, 0, // Skip to: 3943
+/* 1616 */ MCD::OPC_Decode, 148, 2, 41, // Opcode: AMOMIN_W_AQ
+/* 1620 */ MCD::OPC_FilterValue, 3, 14, 9, 0, // Skip to: 3943
+/* 1625 */ MCD::OPC_CheckPredicate, 8, 9, 9, 0, // Skip to: 3943
+/* 1630 */ MCD::OPC_Decode, 144, 2, 41, // Opcode: AMOMIN_D_AQ
+/* 1634 */ MCD::OPC_FilterValue, 67, 31, 0, 0, // Skip to: 1670
+/* 1639 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1642 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1656
+/* 1647 */ MCD::OPC_CheckPredicate, 7, 243, 8, 0, // Skip to: 3943
+/* 1652 */ MCD::OPC_Decode, 149, 2, 41, // Opcode: AMOMIN_W_AQ_RL
+/* 1656 */ MCD::OPC_FilterValue, 3, 234, 8, 0, // Skip to: 3943
+/* 1661 */ MCD::OPC_CheckPredicate, 8, 229, 8, 0, // Skip to: 3943
+/* 1666 */ MCD::OPC_Decode, 145, 2, 41, // Opcode: AMOMIN_D_AQ_RL
+/* 1670 */ MCD::OPC_FilterValue, 80, 31, 0, 0, // Skip to: 1706
+/* 1675 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1678 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1692
+/* 1683 */ MCD::OPC_CheckPredicate, 7, 207, 8, 0, // Skip to: 3943
+/* 1688 */ MCD::OPC_Decode, 131, 2, 41, // Opcode: AMOMAX_W
+/* 1692 */ MCD::OPC_FilterValue, 3, 198, 8, 0, // Skip to: 3943
+/* 1697 */ MCD::OPC_CheckPredicate, 8, 193, 8, 0, // Skip to: 3943
+/* 1702 */ MCD::OPC_Decode, 255, 1, 41, // Opcode: AMOMAX_D
+/* 1706 */ MCD::OPC_FilterValue, 81, 31, 0, 0, // Skip to: 1742
+/* 1711 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1714 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1728
+/* 1719 */ MCD::OPC_CheckPredicate, 7, 171, 8, 0, // Skip to: 3943
+/* 1724 */ MCD::OPC_Decode, 134, 2, 41, // Opcode: AMOMAX_W_RL
+/* 1728 */ MCD::OPC_FilterValue, 3, 162, 8, 0, // Skip to: 3943
+/* 1733 */ MCD::OPC_CheckPredicate, 8, 157, 8, 0, // Skip to: 3943
+/* 1738 */ MCD::OPC_Decode, 130, 2, 41, // Opcode: AMOMAX_D_RL
+/* 1742 */ MCD::OPC_FilterValue, 82, 31, 0, 0, // Skip to: 1778
+/* 1747 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1750 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1764
+/* 1755 */ MCD::OPC_CheckPredicate, 7, 135, 8, 0, // Skip to: 3943
+/* 1760 */ MCD::OPC_Decode, 132, 2, 41, // Opcode: AMOMAX_W_AQ
+/* 1764 */ MCD::OPC_FilterValue, 3, 126, 8, 0, // Skip to: 3943
+/* 1769 */ MCD::OPC_CheckPredicate, 8, 121, 8, 0, // Skip to: 3943
+/* 1774 */ MCD::OPC_Decode, 128, 2, 41, // Opcode: AMOMAX_D_AQ
+/* 1778 */ MCD::OPC_FilterValue, 83, 31, 0, 0, // Skip to: 1814
+/* 1783 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1786 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1800
+/* 1791 */ MCD::OPC_CheckPredicate, 7, 99, 8, 0, // Skip to: 3943
+/* 1796 */ MCD::OPC_Decode, 133, 2, 41, // Opcode: AMOMAX_W_AQ_RL
+/* 1800 */ MCD::OPC_FilterValue, 3, 90, 8, 0, // Skip to: 3943
+/* 1805 */ MCD::OPC_CheckPredicate, 8, 85, 8, 0, // Skip to: 3943
+/* 1810 */ MCD::OPC_Decode, 129, 2, 41, // Opcode: AMOMAX_D_AQ_RL
+/* 1814 */ MCD::OPC_FilterValue, 96, 31, 0, 0, // Skip to: 1850
+/* 1819 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1822 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1836
+/* 1827 */ MCD::OPC_CheckPredicate, 7, 63, 8, 0, // Skip to: 3943
+/* 1832 */ MCD::OPC_Decode, 139, 2, 41, // Opcode: AMOMINU_W
+/* 1836 */ MCD::OPC_FilterValue, 3, 54, 8, 0, // Skip to: 3943
+/* 1841 */ MCD::OPC_CheckPredicate, 8, 49, 8, 0, // Skip to: 3943
+/* 1846 */ MCD::OPC_Decode, 135, 2, 41, // Opcode: AMOMINU_D
+/* 1850 */ MCD::OPC_FilterValue, 97, 31, 0, 0, // Skip to: 1886
+/* 1855 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1858 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1872
+/* 1863 */ MCD::OPC_CheckPredicate, 7, 27, 8, 0, // Skip to: 3943
+/* 1868 */ MCD::OPC_Decode, 142, 2, 41, // Opcode: AMOMINU_W_RL
+/* 1872 */ MCD::OPC_FilterValue, 3, 18, 8, 0, // Skip to: 3943
+/* 1877 */ MCD::OPC_CheckPredicate, 8, 13, 8, 0, // Skip to: 3943
+/* 1882 */ MCD::OPC_Decode, 138, 2, 41, // Opcode: AMOMINU_D_RL
+/* 1886 */ MCD::OPC_FilterValue, 98, 31, 0, 0, // Skip to: 1922
+/* 1891 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1894 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1908
+/* 1899 */ MCD::OPC_CheckPredicate, 7, 247, 7, 0, // Skip to: 3943
+/* 1904 */ MCD::OPC_Decode, 140, 2, 41, // Opcode: AMOMINU_W_AQ
+/* 1908 */ MCD::OPC_FilterValue, 3, 238, 7, 0, // Skip to: 3943
+/* 1913 */ MCD::OPC_CheckPredicate, 8, 233, 7, 0, // Skip to: 3943
+/* 1918 */ MCD::OPC_Decode, 136, 2, 41, // Opcode: AMOMINU_D_AQ
+/* 1922 */ MCD::OPC_FilterValue, 99, 31, 0, 0, // Skip to: 1958
+/* 1927 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1930 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1944
+/* 1935 */ MCD::OPC_CheckPredicate, 7, 211, 7, 0, // Skip to: 3943
+/* 1940 */ MCD::OPC_Decode, 141, 2, 41, // Opcode: AMOMINU_W_AQ_RL
+/* 1944 */ MCD::OPC_FilterValue, 3, 202, 7, 0, // Skip to: 3943
+/* 1949 */ MCD::OPC_CheckPredicate, 8, 197, 7, 0, // Skip to: 3943
+/* 1954 */ MCD::OPC_Decode, 137, 2, 41, // Opcode: AMOMINU_D_AQ_RL
+/* 1958 */ MCD::OPC_FilterValue, 112, 31, 0, 0, // Skip to: 1994
+/* 1963 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 1966 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 1980
+/* 1971 */ MCD::OPC_CheckPredicate, 7, 175, 7, 0, // Skip to: 3943
+/* 1976 */ MCD::OPC_Decode, 251, 1, 41, // Opcode: AMOMAXU_W
+/* 1980 */ MCD::OPC_FilterValue, 3, 166, 7, 0, // Skip to: 3943
+/* 1985 */ MCD::OPC_CheckPredicate, 8, 161, 7, 0, // Skip to: 3943
+/* 1990 */ MCD::OPC_Decode, 247, 1, 41, // Opcode: AMOMAXU_D
+/* 1994 */ MCD::OPC_FilterValue, 113, 31, 0, 0, // Skip to: 2030
+/* 1999 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2002 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2016
+/* 2007 */ MCD::OPC_CheckPredicate, 7, 139, 7, 0, // Skip to: 3943
+/* 2012 */ MCD::OPC_Decode, 254, 1, 41, // Opcode: AMOMAXU_W_RL
+/* 2016 */ MCD::OPC_FilterValue, 3, 130, 7, 0, // Skip to: 3943
+/* 2021 */ MCD::OPC_CheckPredicate, 8, 125, 7, 0, // Skip to: 3943
+/* 2026 */ MCD::OPC_Decode, 250, 1, 41, // Opcode: AMOMAXU_D_RL
+/* 2030 */ MCD::OPC_FilterValue, 114, 31, 0, 0, // Skip to: 2066
+/* 2035 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2038 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2052
+/* 2043 */ MCD::OPC_CheckPredicate, 7, 103, 7, 0, // Skip to: 3943
+/* 2048 */ MCD::OPC_Decode, 252, 1, 41, // Opcode: AMOMAXU_W_AQ
+/* 2052 */ MCD::OPC_FilterValue, 3, 94, 7, 0, // Skip to: 3943
+/* 2057 */ MCD::OPC_CheckPredicate, 8, 89, 7, 0, // Skip to: 3943
+/* 2062 */ MCD::OPC_Decode, 248, 1, 41, // Opcode: AMOMAXU_D_AQ
+/* 2066 */ MCD::OPC_FilterValue, 115, 80, 7, 0, // Skip to: 3943
+/* 2071 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2074 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 2088
+/* 2079 */ MCD::OPC_CheckPredicate, 7, 67, 7, 0, // Skip to: 3943
+/* 2084 */ MCD::OPC_Decode, 253, 1, 41, // Opcode: AMOMAXU_W_AQ_RL
+/* 2088 */ MCD::OPC_FilterValue, 3, 58, 7, 0, // Skip to: 3943
+/* 2093 */ MCD::OPC_CheckPredicate, 8, 53, 7, 0, // Skip to: 3943
+/* 2098 */ MCD::OPC_Decode, 249, 1, 41, // Opcode: AMOMAXU_D_AQ_RL
+/* 2102 */ MCD::OPC_FilterValue, 51, 13, 1, 0, // Skip to: 2376
+/* 2107 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2110 */ MCD::OPC_FilterValue, 0, 35, 0, 0, // Skip to: 2150
+/* 2115 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2118 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2127
+/* 2123 */ MCD::OPC_Decode, 227, 1, 41, // Opcode: ADD
+/* 2127 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2141
+/* 2132 */ MCD::OPC_CheckPredicate, 9, 14, 7, 0, // Skip to: 3943
+/* 2137 */ MCD::OPC_Decode, 207, 3, 41, // Opcode: MUL
+/* 2141 */ MCD::OPC_FilterValue, 32, 5, 7, 0, // Skip to: 3943
+/* 2146 */ MCD::OPC_Decode, 247, 3, 41, // Opcode: SUB
+/* 2150 */ MCD::OPC_FilterValue, 1, 26, 0, 0, // Skip to: 2181
+/* 2155 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2158 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2167
+/* 2163 */ MCD::OPC_Decode, 230, 3, 41, // Opcode: SLL
+/* 2167 */ MCD::OPC_FilterValue, 1, 235, 6, 0, // Skip to: 3943
+/* 2172 */ MCD::OPC_CheckPredicate, 9, 230, 6, 0, // Skip to: 3943
+/* 2177 */ MCD::OPC_Decode, 208, 3, 41, // Opcode: MULH
+/* 2181 */ MCD::OPC_FilterValue, 2, 26, 0, 0, // Skip to: 2212
+/* 2186 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2189 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2198
+/* 2194 */ MCD::OPC_Decode, 234, 3, 41, // Opcode: SLT
+/* 2198 */ MCD::OPC_FilterValue, 1, 204, 6, 0, // Skip to: 3943
+/* 2203 */ MCD::OPC_CheckPredicate, 9, 199, 6, 0, // Skip to: 3943
+/* 2208 */ MCD::OPC_Decode, 209, 3, 41, // Opcode: MULHSU
+/* 2212 */ MCD::OPC_FilterValue, 3, 26, 0, 0, // Skip to: 2243
+/* 2217 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2220 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2229
+/* 2225 */ MCD::OPC_Decode, 237, 3, 41, // Opcode: SLTU
+/* 2229 */ MCD::OPC_FilterValue, 1, 173, 6, 0, // Skip to: 3943
+/* 2234 */ MCD::OPC_CheckPredicate, 9, 168, 6, 0, // Skip to: 3943
+/* 2239 */ MCD::OPC_Decode, 210, 3, 41, // Opcode: MULHU
+/* 2243 */ MCD::OPC_FilterValue, 4, 26, 0, 0, // Skip to: 2274
+/* 2248 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2251 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2260
+/* 2256 */ MCD::OPC_Decode, 253, 3, 41, // Opcode: XOR
+/* 2260 */ MCD::OPC_FilterValue, 1, 142, 6, 0, // Skip to: 3943
+/* 2265 */ MCD::OPC_CheckPredicate, 9, 137, 6, 0, // Skip to: 3943
+/* 2270 */ MCD::OPC_Decode, 245, 2, 41, // Opcode: DIV
+/* 2274 */ MCD::OPC_FilterValue, 5, 35, 0, 0, // Skip to: 2314
+/* 2279 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2282 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2291
+/* 2287 */ MCD::OPC_Decode, 243, 3, 41, // Opcode: SRL
+/* 2291 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2305
+/* 2296 */ MCD::OPC_CheckPredicate, 9, 106, 6, 0, // Skip to: 3943
+/* 2301 */ MCD::OPC_Decode, 246, 2, 41, // Opcode: DIVU
+/* 2305 */ MCD::OPC_FilterValue, 32, 97, 6, 0, // Skip to: 3943
+/* 2310 */ MCD::OPC_Decode, 238, 3, 41, // Opcode: SRA
+/* 2314 */ MCD::OPC_FilterValue, 6, 26, 0, 0, // Skip to: 2345
+/* 2319 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2322 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2331
+/* 2327 */ MCD::OPC_Decode, 212, 3, 41, // Opcode: OR
+/* 2331 */ MCD::OPC_FilterValue, 1, 71, 6, 0, // Skip to: 3943
+/* 2336 */ MCD::OPC_CheckPredicate, 9, 66, 6, 0, // Skip to: 3943
+/* 2341 */ MCD::OPC_Decode, 214, 3, 41, // Opcode: REM
+/* 2345 */ MCD::OPC_FilterValue, 7, 57, 6, 0, // Skip to: 3943
+/* 2350 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2353 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 2362
+/* 2358 */ MCD::OPC_Decode, 175, 2, 41, // Opcode: AND
+/* 2362 */ MCD::OPC_FilterValue, 1, 40, 6, 0, // Skip to: 3943
+/* 2367 */ MCD::OPC_CheckPredicate, 9, 35, 6, 0, // Skip to: 3943
+/* 2372 */ MCD::OPC_Decode, 215, 3, 41, // Opcode: REMU
+/* 2376 */ MCD::OPC_FilterValue, 55, 4, 0, 0, // Skip to: 2385
+/* 2381 */ MCD::OPC_Decode, 203, 3, 36, // Opcode: LUI
+/* 2385 */ MCD::OPC_FilterValue, 59, 187, 0, 0, // Skip to: 2577
+/* 2390 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2393 */ MCD::OPC_FilterValue, 0, 45, 0, 0, // Skip to: 2443
+/* 2398 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2401 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2415
+/* 2406 */ MCD::OPC_CheckPredicate, 4, 252, 5, 0, // Skip to: 3943
+/* 2411 */ MCD::OPC_Decode, 230, 1, 41, // Opcode: ADDW
+/* 2415 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2429
+/* 2420 */ MCD::OPC_CheckPredicate, 10, 238, 5, 0, // Skip to: 3943
+/* 2425 */ MCD::OPC_Decode, 211, 3, 41, // Opcode: MULW
+/* 2429 */ MCD::OPC_FilterValue, 32, 229, 5, 0, // Skip to: 3943
+/* 2434 */ MCD::OPC_CheckPredicate, 4, 224, 5, 0, // Skip to: 3943
+/* 2439 */ MCD::OPC_Decode, 248, 3, 41, // Opcode: SUBW
+/* 2443 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 2464
+/* 2448 */ MCD::OPC_CheckPredicate, 4, 210, 5, 0, // Skip to: 3943
+/* 2453 */ MCD::OPC_CheckField, 25, 7, 0, 203, 5, 0, // Skip to: 3943
+/* 2460 */ MCD::OPC_Decode, 233, 3, 41, // Opcode: SLLW
+/* 2464 */ MCD::OPC_FilterValue, 4, 16, 0, 0, // Skip to: 2485
+/* 2469 */ MCD::OPC_CheckPredicate, 10, 189, 5, 0, // Skip to: 3943
+/* 2474 */ MCD::OPC_CheckField, 25, 7, 1, 182, 5, 0, // Skip to: 3943
+/* 2481 */ MCD::OPC_Decode, 248, 2, 41, // Opcode: DIVW
+/* 2485 */ MCD::OPC_FilterValue, 5, 45, 0, 0, // Skip to: 2535
+/* 2490 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2493 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2507
+/* 2498 */ MCD::OPC_CheckPredicate, 4, 160, 5, 0, // Skip to: 3943
+/* 2503 */ MCD::OPC_Decode, 246, 3, 41, // Opcode: SRLW
+/* 2507 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2521
+/* 2512 */ MCD::OPC_CheckPredicate, 10, 146, 5, 0, // Skip to: 3943
+/* 2517 */ MCD::OPC_Decode, 247, 2, 41, // Opcode: DIVUW
+/* 2521 */ MCD::OPC_FilterValue, 32, 137, 5, 0, // Skip to: 3943
+/* 2526 */ MCD::OPC_CheckPredicate, 4, 132, 5, 0, // Skip to: 3943
+/* 2531 */ MCD::OPC_Decode, 241, 3, 41, // Opcode: SRAW
+/* 2535 */ MCD::OPC_FilterValue, 6, 16, 0, 0, // Skip to: 2556
+/* 2540 */ MCD::OPC_CheckPredicate, 10, 118, 5, 0, // Skip to: 3943
+/* 2545 */ MCD::OPC_CheckField, 25, 7, 1, 111, 5, 0, // Skip to: 3943
+/* 2552 */ MCD::OPC_Decode, 217, 3, 41, // Opcode: REMW
+/* 2556 */ MCD::OPC_FilterValue, 7, 102, 5, 0, // Skip to: 3943
+/* 2561 */ MCD::OPC_CheckPredicate, 10, 97, 5, 0, // Skip to: 3943
+/* 2566 */ MCD::OPC_CheckField, 25, 7, 1, 90, 5, 0, // Skip to: 3943
+/* 2573 */ MCD::OPC_Decode, 216, 3, 41, // Opcode: REMUW
+/* 2577 */ MCD::OPC_FilterValue, 67, 31, 0, 0, // Skip to: 2613
+/* 2582 */ MCD::OPC_ExtractField, 25, 2, // Inst{26-25} ...
+/* 2585 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2599
+/* 2590 */ MCD::OPC_CheckPredicate, 5, 68, 5, 0, // Skip to: 3943
+/* 2595 */ MCD::OPC_Decode, 159, 3, 43, // Opcode: FMADD_S
+/* 2599 */ MCD::OPC_FilterValue, 1, 59, 5, 0, // Skip to: 3943
+/* 2604 */ MCD::OPC_CheckPredicate, 6, 54, 5, 0, // Skip to: 3943
+/* 2609 */ MCD::OPC_Decode, 158, 3, 44, // Opcode: FMADD_D
+/* 2613 */ MCD::OPC_FilterValue, 71, 31, 0, 0, // Skip to: 2649
+/* 2618 */ MCD::OPC_ExtractField, 25, 2, // Inst{26-25} ...
+/* 2621 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2635
+/* 2626 */ MCD::OPC_CheckPredicate, 5, 32, 5, 0, // Skip to: 3943
+/* 2631 */ MCD::OPC_Decode, 165, 3, 43, // Opcode: FMSUB_S
+/* 2635 */ MCD::OPC_FilterValue, 1, 23, 5, 0, // Skip to: 3943
+/* 2640 */ MCD::OPC_CheckPredicate, 6, 18, 5, 0, // Skip to: 3943
+/* 2645 */ MCD::OPC_Decode, 164, 3, 44, // Opcode: FMSUB_D
+/* 2649 */ MCD::OPC_FilterValue, 75, 31, 0, 0, // Skip to: 2685
+/* 2654 */ MCD::OPC_ExtractField, 25, 2, // Inst{26-25} ...
+/* 2657 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2671
+/* 2662 */ MCD::OPC_CheckPredicate, 5, 252, 4, 0, // Skip to: 3943
+/* 2667 */ MCD::OPC_Decode, 175, 3, 43, // Opcode: FNMSUB_S
+/* 2671 */ MCD::OPC_FilterValue, 1, 243, 4, 0, // Skip to: 3943
+/* 2676 */ MCD::OPC_CheckPredicate, 6, 238, 4, 0, // Skip to: 3943
+/* 2681 */ MCD::OPC_Decode, 174, 3, 44, // Opcode: FNMSUB_D
+/* 2685 */ MCD::OPC_FilterValue, 79, 31, 0, 0, // Skip to: 2721
+/* 2690 */ MCD::OPC_ExtractField, 25, 2, // Inst{26-25} ...
+/* 2693 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2707
+/* 2698 */ MCD::OPC_CheckPredicate, 5, 216, 4, 0, // Skip to: 3943
+/* 2703 */ MCD::OPC_Decode, 173, 3, 43, // Opcode: FNMADD_S
+/* 2707 */ MCD::OPC_FilterValue, 1, 207, 4, 0, // Skip to: 3943
+/* 2712 */ MCD::OPC_CheckPredicate, 6, 202, 4, 0, // Skip to: 3943
+/* 2717 */ MCD::OPC_Decode, 172, 3, 44, // Opcode: FNMADD_D
+/* 2721 */ MCD::OPC_FilterValue, 83, 136, 3, 0, // Skip to: 3630
+/* 2726 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 2729 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2743
+/* 2734 */ MCD::OPC_CheckPredicate, 5, 180, 4, 0, // Skip to: 3943
+/* 2739 */ MCD::OPC_Decode, 252, 2, 45, // Opcode: FADD_S
+/* 2743 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2757
+/* 2748 */ MCD::OPC_CheckPredicate, 6, 166, 4, 0, // Skip to: 3943
+/* 2753 */ MCD::OPC_Decode, 251, 2, 46, // Opcode: FADD_D
+/* 2757 */ MCD::OPC_FilterValue, 4, 9, 0, 0, // Skip to: 2771
+/* 2762 */ MCD::OPC_CheckPredicate, 5, 152, 4, 0, // Skip to: 3943
+/* 2767 */ MCD::OPC_Decode, 186, 3, 45, // Opcode: FSUB_S
+/* 2771 */ MCD::OPC_FilterValue, 5, 9, 0, 0, // Skip to: 2785
+/* 2776 */ MCD::OPC_CheckPredicate, 6, 138, 4, 0, // Skip to: 3943
+/* 2781 */ MCD::OPC_Decode, 185, 3, 46, // Opcode: FSUB_D
+/* 2785 */ MCD::OPC_FilterValue, 8, 9, 0, 0, // Skip to: 2799
+/* 2790 */ MCD::OPC_CheckPredicate, 5, 124, 4, 0, // Skip to: 3943
+/* 2795 */ MCD::OPC_Decode, 167, 3, 45, // Opcode: FMUL_S
+/* 2799 */ MCD::OPC_FilterValue, 9, 9, 0, 0, // Skip to: 2813
+/* 2804 */ MCD::OPC_CheckPredicate, 6, 110, 4, 0, // Skip to: 3943
+/* 2809 */ MCD::OPC_Decode, 166, 3, 46, // Opcode: FMUL_D
+/* 2813 */ MCD::OPC_FilterValue, 12, 9, 0, 0, // Skip to: 2827
+/* 2818 */ MCD::OPC_CheckPredicate, 5, 96, 4, 0, // Skip to: 3943
+/* 2823 */ MCD::OPC_Decode, 146, 3, 45, // Opcode: FDIV_S
+/* 2827 */ MCD::OPC_FilterValue, 13, 9, 0, 0, // Skip to: 2841
+/* 2832 */ MCD::OPC_CheckPredicate, 6, 82, 4, 0, // Skip to: 3943
+/* 2837 */ MCD::OPC_Decode, 145, 3, 46, // Opcode: FDIV_D
+/* 2841 */ MCD::OPC_FilterValue, 16, 45, 0, 0, // Skip to: 2891
+/* 2846 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2849 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2863
+/* 2854 */ MCD::OPC_CheckPredicate, 5, 60, 4, 0, // Skip to: 3943
+/* 2859 */ MCD::OPC_Decode, 182, 3, 47, // Opcode: FSGNJ_S
+/* 2863 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2877
+/* 2868 */ MCD::OPC_CheckPredicate, 5, 46, 4, 0, // Skip to: 3943
+/* 2873 */ MCD::OPC_Decode, 178, 3, 47, // Opcode: FSGNJN_S
+/* 2877 */ MCD::OPC_FilterValue, 2, 37, 4, 0, // Skip to: 3943
+/* 2882 */ MCD::OPC_CheckPredicate, 5, 32, 4, 0, // Skip to: 3943
+/* 2887 */ MCD::OPC_Decode, 180, 3, 47, // Opcode: FSGNJX_S
+/* 2891 */ MCD::OPC_FilterValue, 17, 45, 0, 0, // Skip to: 2941
+/* 2896 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2899 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2913
+/* 2904 */ MCD::OPC_CheckPredicate, 6, 10, 4, 0, // Skip to: 3943
+/* 2909 */ MCD::OPC_Decode, 181, 3, 48, // Opcode: FSGNJ_D
+/* 2913 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 2927
+/* 2918 */ MCD::OPC_CheckPredicate, 6, 252, 3, 0, // Skip to: 3943
+/* 2923 */ MCD::OPC_Decode, 177, 3, 48, // Opcode: FSGNJN_D
+/* 2927 */ MCD::OPC_FilterValue, 2, 243, 3, 0, // Skip to: 3943
+/* 2932 */ MCD::OPC_CheckPredicate, 6, 238, 3, 0, // Skip to: 3943
+/* 2937 */ MCD::OPC_Decode, 179, 3, 48, // Opcode: FSGNJX_D
+/* 2941 */ MCD::OPC_FilterValue, 20, 31, 0, 0, // Skip to: 2977
+/* 2946 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2949 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2963
+/* 2954 */ MCD::OPC_CheckPredicate, 5, 216, 3, 0, // Skip to: 3943
+/* 2959 */ MCD::OPC_Decode, 163, 3, 47, // Opcode: FMIN_S
+/* 2963 */ MCD::OPC_FilterValue, 1, 207, 3, 0, // Skip to: 3943
+/* 2968 */ MCD::OPC_CheckPredicate, 5, 202, 3, 0, // Skip to: 3943
+/* 2973 */ MCD::OPC_Decode, 161, 3, 47, // Opcode: FMAX_S
+/* 2977 */ MCD::OPC_FilterValue, 21, 31, 0, 0, // Skip to: 3013
+/* 2982 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 2985 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 2999
+/* 2990 */ MCD::OPC_CheckPredicate, 6, 180, 3, 0, // Skip to: 3943
+/* 2995 */ MCD::OPC_Decode, 162, 3, 48, // Opcode: FMIN_D
+/* 2999 */ MCD::OPC_FilterValue, 1, 171, 3, 0, // Skip to: 3943
+/* 3004 */ MCD::OPC_CheckPredicate, 6, 166, 3, 0, // Skip to: 3943
+/* 3009 */ MCD::OPC_Decode, 160, 3, 48, // Opcode: FMAX_D
+/* 3013 */ MCD::OPC_FilterValue, 32, 16, 0, 0, // Skip to: 3034
+/* 3018 */ MCD::OPC_CheckPredicate, 6, 152, 3, 0, // Skip to: 3943
+/* 3023 */ MCD::OPC_CheckField, 20, 5, 1, 145, 3, 0, // Skip to: 3943
+/* 3030 */ MCD::OPC_Decode, 136, 3, 49, // Opcode: FCVT_S_D
+/* 3034 */ MCD::OPC_FilterValue, 33, 23, 0, 0, // Skip to: 3062
+/* 3039 */ MCD::OPC_CheckPredicate, 6, 131, 3, 0, // Skip to: 3943
+/* 3044 */ MCD::OPC_CheckField, 20, 5, 0, 124, 3, 0, // Skip to: 3943
+/* 3051 */ MCD::OPC_CheckField, 12, 3, 0, 117, 3, 0, // Skip to: 3943
+/* 3058 */ MCD::OPC_Decode, 129, 3, 50, // Opcode: FCVT_D_S
+/* 3062 */ MCD::OPC_FilterValue, 44, 16, 0, 0, // Skip to: 3083
+/* 3067 */ MCD::OPC_CheckPredicate, 5, 103, 3, 0, // Skip to: 3943
+/* 3072 */ MCD::OPC_CheckField, 20, 5, 0, 96, 3, 0, // Skip to: 3943
+/* 3079 */ MCD::OPC_Decode, 184, 3, 51, // Opcode: FSQRT_S
+/* 3083 */ MCD::OPC_FilterValue, 45, 16, 0, 0, // Skip to: 3104
+/* 3088 */ MCD::OPC_CheckPredicate, 6, 82, 3, 0, // Skip to: 3943
+/* 3093 */ MCD::OPC_CheckField, 20, 5, 0, 75, 3, 0, // Skip to: 3943
+/* 3100 */ MCD::OPC_Decode, 183, 3, 52, // Opcode: FSQRT_D
+/* 3104 */ MCD::OPC_FilterValue, 80, 45, 0, 0, // Skip to: 3154
+/* 3109 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3112 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3126
+/* 3117 */ MCD::OPC_CheckPredicate, 5, 53, 3, 0, // Skip to: 3943
+/* 3122 */ MCD::OPC_Decode, 154, 3, 53, // Opcode: FLE_S
+/* 3126 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3140
+/* 3131 */ MCD::OPC_CheckPredicate, 5, 39, 3, 0, // Skip to: 3943
+/* 3136 */ MCD::OPC_Decode, 156, 3, 53, // Opcode: FLT_S
+/* 3140 */ MCD::OPC_FilterValue, 2, 30, 3, 0, // Skip to: 3943
+/* 3145 */ MCD::OPC_CheckPredicate, 5, 25, 3, 0, // Skip to: 3943
+/* 3150 */ MCD::OPC_Decode, 151, 3, 53, // Opcode: FEQ_S
+/* 3154 */ MCD::OPC_FilterValue, 81, 45, 0, 0, // Skip to: 3204
+/* 3159 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3162 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3176
+/* 3167 */ MCD::OPC_CheckPredicate, 6, 3, 3, 0, // Skip to: 3943
+/* 3172 */ MCD::OPC_Decode, 153, 3, 54, // Opcode: FLE_D
+/* 3176 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3190
+/* 3181 */ MCD::OPC_CheckPredicate, 6, 245, 2, 0, // Skip to: 3943
+/* 3186 */ MCD::OPC_Decode, 155, 3, 54, // Opcode: FLT_D
+/* 3190 */ MCD::OPC_FilterValue, 2, 236, 2, 0, // Skip to: 3943
+/* 3195 */ MCD::OPC_CheckPredicate, 6, 231, 2, 0, // Skip to: 3943
+/* 3200 */ MCD::OPC_Decode, 150, 3, 54, // Opcode: FEQ_D
+/* 3204 */ MCD::OPC_FilterValue, 96, 59, 0, 0, // Skip to: 3268
+/* 3209 */ MCD::OPC_ExtractField, 20, 5, // Inst{24-20} ...
+/* 3212 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3226
+/* 3217 */ MCD::OPC_CheckPredicate, 5, 209, 2, 0, // Skip to: 3943
+/* 3222 */ MCD::OPC_Decode, 144, 3, 55, // Opcode: FCVT_W_S
+/* 3226 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3240
+/* 3231 */ MCD::OPC_CheckPredicate, 5, 195, 2, 0, // Skip to: 3943
+/* 3236 */ MCD::OPC_Decode, 142, 3, 55, // Opcode: FCVT_WU_S
+/* 3240 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3254
+/* 3245 */ MCD::OPC_CheckPredicate, 11, 181, 2, 0, // Skip to: 3943
+/* 3250 */ MCD::OPC_Decode, 135, 3, 55, // Opcode: FCVT_L_S
+/* 3254 */ MCD::OPC_FilterValue, 3, 172, 2, 0, // Skip to: 3943
+/* 3259 */ MCD::OPC_CheckPredicate, 11, 167, 2, 0, // Skip to: 3943
+/* 3264 */ MCD::OPC_Decode, 133, 3, 55, // Opcode: FCVT_LU_S
+/* 3268 */ MCD::OPC_FilterValue, 97, 59, 0, 0, // Skip to: 3332
+/* 3273 */ MCD::OPC_ExtractField, 20, 5, // Inst{24-20} ...
+/* 3276 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3290
+/* 3281 */ MCD::OPC_CheckPredicate, 6, 145, 2, 0, // Skip to: 3943
+/* 3286 */ MCD::OPC_Decode, 143, 3, 56, // Opcode: FCVT_W_D
+/* 3290 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3304
+/* 3295 */ MCD::OPC_CheckPredicate, 6, 131, 2, 0, // Skip to: 3943
+/* 3300 */ MCD::OPC_Decode, 141, 3, 56, // Opcode: FCVT_WU_D
+/* 3304 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3318
+/* 3309 */ MCD::OPC_CheckPredicate, 12, 117, 2, 0, // Skip to: 3943
+/* 3314 */ MCD::OPC_Decode, 134, 3, 56, // Opcode: FCVT_L_D
+/* 3318 */ MCD::OPC_FilterValue, 3, 108, 2, 0, // Skip to: 3943
+/* 3323 */ MCD::OPC_CheckPredicate, 12, 103, 2, 0, // Skip to: 3943
+/* 3328 */ MCD::OPC_Decode, 132, 3, 56, // Opcode: FCVT_LU_D
+/* 3332 */ MCD::OPC_FilterValue, 104, 59, 0, 0, // Skip to: 3396
+/* 3337 */ MCD::OPC_ExtractField, 20, 5, // Inst{24-20} ...
+/* 3340 */ MCD::OPC_FilterValue, 0, 9, 0, 0, // Skip to: 3354
+/* 3345 */ MCD::OPC_CheckPredicate, 5, 81, 2, 0, // Skip to: 3943
+/* 3350 */ MCD::OPC_Decode, 139, 3, 57, // Opcode: FCVT_S_W
+/* 3354 */ MCD::OPC_FilterValue, 1, 9, 0, 0, // Skip to: 3368
+/* 3359 */ MCD::OPC_CheckPredicate, 5, 67, 2, 0, // Skip to: 3943
+/* 3364 */ MCD::OPC_Decode, 140, 3, 57, // Opcode: FCVT_S_WU
+/* 3368 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3382
+/* 3373 */ MCD::OPC_CheckPredicate, 11, 53, 2, 0, // Skip to: 3943
+/* 3378 */ MCD::OPC_Decode, 137, 3, 57, // Opcode: FCVT_S_L
+/* 3382 */ MCD::OPC_FilterValue, 3, 44, 2, 0, // Skip to: 3943
+/* 3387 */ MCD::OPC_CheckPredicate, 11, 39, 2, 0, // Skip to: 3943
+/* 3392 */ MCD::OPC_Decode, 138, 3, 57, // Opcode: FCVT_S_LU
+/* 3396 */ MCD::OPC_FilterValue, 105, 73, 0, 0, // Skip to: 3474
+/* 3401 */ MCD::OPC_ExtractField, 20, 5, // Inst{24-20} ...
+/* 3404 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3425
+/* 3409 */ MCD::OPC_CheckPredicate, 6, 17, 2, 0, // Skip to: 3943
+/* 3414 */ MCD::OPC_CheckField, 12, 3, 0, 10, 2, 0, // Skip to: 3943
+/* 3421 */ MCD::OPC_Decode, 130, 3, 58, // Opcode: FCVT_D_W
+/* 3425 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 3446
+/* 3430 */ MCD::OPC_CheckPredicate, 6, 252, 1, 0, // Skip to: 3943
+/* 3435 */ MCD::OPC_CheckField, 12, 3, 0, 245, 1, 0, // Skip to: 3943
+/* 3442 */ MCD::OPC_Decode, 131, 3, 58, // Opcode: FCVT_D_WU
+/* 3446 */ MCD::OPC_FilterValue, 2, 9, 0, 0, // Skip to: 3460
+/* 3451 */ MCD::OPC_CheckPredicate, 12, 231, 1, 0, // Skip to: 3943
+/* 3456 */ MCD::OPC_Decode, 255, 2, 59, // Opcode: FCVT_D_L
+/* 3460 */ MCD::OPC_FilterValue, 3, 222, 1, 0, // Skip to: 3943
+/* 3465 */ MCD::OPC_CheckPredicate, 12, 217, 1, 0, // Skip to: 3943
+/* 3470 */ MCD::OPC_Decode, 128, 3, 59, // Opcode: FCVT_D_LU
+/* 3474 */ MCD::OPC_FilterValue, 112, 45, 0, 0, // Skip to: 3524
+/* 3479 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3482 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3503
+/* 3487 */ MCD::OPC_CheckPredicate, 5, 195, 1, 0, // Skip to: 3943
+/* 3492 */ MCD::OPC_CheckField, 20, 5, 0, 188, 1, 0, // Skip to: 3943
+/* 3499 */ MCD::OPC_Decode, 171, 3, 60, // Opcode: FMV_X_W
+/* 3503 */ MCD::OPC_FilterValue, 1, 179, 1, 0, // Skip to: 3943
+/* 3508 */ MCD::OPC_CheckPredicate, 5, 174, 1, 0, // Skip to: 3943
+/* 3513 */ MCD::OPC_CheckField, 20, 5, 0, 167, 1, 0, // Skip to: 3943
+/* 3520 */ MCD::OPC_Decode, 254, 2, 60, // Opcode: FCLASS_S
+/* 3524 */ MCD::OPC_FilterValue, 113, 45, 0, 0, // Skip to: 3574
+/* 3529 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3532 */ MCD::OPC_FilterValue, 0, 16, 0, 0, // Skip to: 3553
+/* 3537 */ MCD::OPC_CheckPredicate, 12, 145, 1, 0, // Skip to: 3943
+/* 3542 */ MCD::OPC_CheckField, 20, 5, 0, 138, 1, 0, // Skip to: 3943
+/* 3549 */ MCD::OPC_Decode, 170, 3, 61, // Opcode: FMV_X_D
+/* 3553 */ MCD::OPC_FilterValue, 1, 129, 1, 0, // Skip to: 3943
+/* 3558 */ MCD::OPC_CheckPredicate, 6, 124, 1, 0, // Skip to: 3943
+/* 3563 */ MCD::OPC_CheckField, 20, 5, 0, 117, 1, 0, // Skip to: 3943
+/* 3570 */ MCD::OPC_Decode, 253, 2, 61, // Opcode: FCLASS_D
+/* 3574 */ MCD::OPC_FilterValue, 120, 23, 0, 0, // Skip to: 3602
+/* 3579 */ MCD::OPC_CheckPredicate, 5, 103, 1, 0, // Skip to: 3943
+/* 3584 */ MCD::OPC_CheckField, 20, 5, 0, 96, 1, 0, // Skip to: 3943
+/* 3591 */ MCD::OPC_CheckField, 12, 3, 0, 89, 1, 0, // Skip to: 3943
+/* 3598 */ MCD::OPC_Decode, 169, 3, 62, // Opcode: FMV_W_X
+/* 3602 */ MCD::OPC_FilterValue, 121, 80, 1, 0, // Skip to: 3943
+/* 3607 */ MCD::OPC_CheckPredicate, 12, 75, 1, 0, // Skip to: 3943
+/* 3612 */ MCD::OPC_CheckField, 20, 5, 0, 68, 1, 0, // Skip to: 3943
+/* 3619 */ MCD::OPC_CheckField, 12, 3, 0, 61, 1, 0, // Skip to: 3943
+/* 3626 */ MCD::OPC_Decode, 168, 3, 58, // Opcode: FMV_D_X
+/* 3630 */ MCD::OPC_FilterValue, 99, 57, 0, 0, // Skip to: 3692
+/* 3635 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3638 */ MCD::OPC_FilterValue, 0, 4, 0, 0, // Skip to: 3647
+/* 3643 */ MCD::OPC_Decode, 178, 2, 63, // Opcode: BEQ
+/* 3647 */ MCD::OPC_FilterValue, 1, 4, 0, 0, // Skip to: 3656
+/* 3652 */ MCD::OPC_Decode, 183, 2, 63, // Opcode: BNE
+/* 3656 */ MCD::OPC_FilterValue, 4, 4, 0, 0, // Skip to: 3665
+/* 3661 */ MCD::OPC_Decode, 181, 2, 63, // Opcode: BLT
+/* 3665 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3674
+/* 3670 */ MCD::OPC_Decode, 179, 2, 63, // Opcode: BGE
+/* 3674 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3683
+/* 3679 */ MCD::OPC_Decode, 182, 2, 63, // Opcode: BLTU
+/* 3683 */ MCD::OPC_FilterValue, 7, 255, 0, 0, // Skip to: 3943
+/* 3688 */ MCD::OPC_Decode, 180, 2, 63, // Opcode: BGEU
+/* 3692 */ MCD::OPC_FilterValue, 103, 11, 0, 0, // Skip to: 3708
+/* 3697 */ MCD::OPC_CheckField, 12, 3, 0, 239, 0, 0, // Skip to: 3943
+/* 3704 */ MCD::OPC_Decode, 189, 3, 31, // Opcode: JALR
+/* 3708 */ MCD::OPC_FilterValue, 111, 4, 0, 0, // Skip to: 3717
+/* 3713 */ MCD::OPC_Decode, 188, 3, 64, // Opcode: JAL
+/* 3717 */ MCD::OPC_FilterValue, 115, 221, 0, 0, // Skip to: 3943
+/* 3722 */ MCD::OPC_ExtractField, 12, 3, // Inst{14-12} ...
+/* 3725 */ MCD::OPC_FilterValue, 0, 139, 0, 0, // Skip to: 3869
+/* 3730 */ MCD::OPC_ExtractField, 25, 7, // Inst{31-25} ...
+/* 3733 */ MCD::OPC_FilterValue, 0, 51, 0, 0, // Skip to: 3789
+/* 3738 */ MCD::OPC_ExtractField, 15, 10, // Inst{24-15} ...
+/* 3741 */ MCD::OPC_FilterValue, 0, 11, 0, 0, // Skip to: 3757
+/* 3746 */ MCD::OPC_CheckField, 7, 5, 0, 190, 0, 0, // Skip to: 3943
+/* 3753 */ MCD::OPC_Decode, 250, 2, 0, // Opcode: ECALL
+/* 3757 */ MCD::OPC_FilterValue, 32, 11, 0, 0, // Skip to: 3773
+/* 3762 */ MCD::OPC_CheckField, 7, 5, 0, 174, 0, 0, // Skip to: 3943
+/* 3769 */ MCD::OPC_Decode, 249, 2, 0, // Opcode: EBREAK
+/* 3773 */ MCD::OPC_FilterValue, 64, 165, 0, 0, // Skip to: 3943
+/* 3778 */ MCD::OPC_CheckField, 7, 5, 0, 158, 0, 0, // Skip to: 3943
+/* 3785 */ MCD::OPC_Decode, 251, 3, 0, // Opcode: URET
+/* 3789 */ MCD::OPC_FilterValue, 8, 36, 0, 0, // Skip to: 3830
+/* 3794 */ MCD::OPC_ExtractField, 15, 10, // Inst{24-15} ...
+/* 3797 */ MCD::OPC_FilterValue, 64, 11, 0, 0, // Skip to: 3813
+/* 3802 */ MCD::OPC_CheckField, 7, 5, 0, 134, 0, 0, // Skip to: 3943
+/* 3809 */ MCD::OPC_Decode, 242, 3, 0, // Opcode: SRET
+/* 3813 */ MCD::OPC_FilterValue, 160, 1, 124, 0, 0, // Skip to: 3943
+/* 3819 */ MCD::OPC_CheckField, 7, 5, 0, 117, 0, 0, // Skip to: 3943
+/* 3826 */ MCD::OPC_Decode, 252, 3, 0, // Opcode: WFI
+/* 3830 */ MCD::OPC_FilterValue, 9, 11, 0, 0, // Skip to: 3846
+/* 3835 */ MCD::OPC_CheckField, 7, 5, 0, 101, 0, 0, // Skip to: 3943
+/* 3842 */ MCD::OPC_Decode, 228, 3, 65, // Opcode: SFENCE_VMA
+/* 3846 */ MCD::OPC_FilterValue, 24, 92, 0, 0, // Skip to: 3943
+/* 3851 */ MCD::OPC_CheckField, 15, 10, 64, 85, 0, 0, // Skip to: 3943
+/* 3858 */ MCD::OPC_CheckField, 7, 5, 0, 78, 0, 0, // Skip to: 3943
+/* 3865 */ MCD::OPC_Decode, 206, 3, 0, // Opcode: MRET
+/* 3869 */ MCD::OPC_FilterValue, 1, 24, 0, 0, // Skip to: 3898
+/* 3874 */ MCD::OPC_CheckField, 15, 17, 128, 128, 6, 11, 0, 0, // Skip to: 3894
+/* 3883 */ MCD::OPC_CheckField, 7, 5, 0, 4, 0, 0, // Skip to: 3894
+/* 3890 */ MCD::OPC_Decode, 250, 3, 0, // Opcode: UNIMP
+/* 3894 */ MCD::OPC_Decode, 188, 2, 66, // Opcode: CSRRW
+/* 3898 */ MCD::OPC_FilterValue, 2, 4, 0, 0, // Skip to: 3907
+/* 3903 */ MCD::OPC_Decode, 186, 2, 66, // Opcode: CSRRS
+/* 3907 */ MCD::OPC_FilterValue, 3, 4, 0, 0, // Skip to: 3916
+/* 3912 */ MCD::OPC_Decode, 184, 2, 66, // Opcode: CSRRC
+/* 3916 */ MCD::OPC_FilterValue, 5, 4, 0, 0, // Skip to: 3925
+/* 3921 */ MCD::OPC_Decode, 189, 2, 67, // Opcode: CSRRWI
+/* 3925 */ MCD::OPC_FilterValue, 6, 4, 0, 0, // Skip to: 3934
+/* 3930 */ MCD::OPC_Decode, 187, 2, 67, // Opcode: CSRRSI
+/* 3934 */ MCD::OPC_FilterValue, 7, 4, 0, 0, // Skip to: 3943
+/* 3939 */ MCD::OPC_Decode, 185, 2, 67, // Opcode: CSRRCI
+/* 3943 */ MCD::OPC_Fail,
+ 0
+};
+
+static const uint8_t DecoderTableRISCV32Only_16[] = {
+/* 0 */ MCD::OPC_ExtractField, 0, 2, // Inst{1-0} ...
+/* 3 */ MCD::OPC_FilterValue, 0, 31, 0, 0, // Skip to: 39
+/* 8 */ MCD::OPC_ExtractField, 13, 3, // Inst{15-13} ...
+/* 11 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 25
+/* 16 */ MCD::OPC_CheckPredicate, 13, 75, 0, 0, // Skip to: 96
+/* 21 */ MCD::OPC_Decode, 207, 2, 68, // Opcode: C_FLW
+/* 25 */ MCD::OPC_FilterValue, 7, 66, 0, 0, // Skip to: 96
+/* 30 */ MCD::OPC_CheckPredicate, 13, 61, 0, 0, // Skip to: 96
+/* 35 */ MCD::OPC_Decode, 211, 2, 68, // Opcode: C_FSW
+/* 39 */ MCD::OPC_FilterValue, 1, 16, 0, 0, // Skip to: 60
+/* 44 */ MCD::OPC_CheckPredicate, 14, 47, 0, 0, // Skip to: 96
+/* 49 */ MCD::OPC_CheckField, 13, 3, 1, 40, 0, 0, // Skip to: 96
+/* 56 */ MCD::OPC_Decode, 214, 2, 26, // Opcode: C_JAL
+/* 60 */ MCD::OPC_FilterValue, 2, 31, 0, 0, // Skip to: 96
+/* 65 */ MCD::OPC_ExtractField, 13, 3, // Inst{15-13} ...
+/* 68 */ MCD::OPC_FilterValue, 3, 9, 0, 0, // Skip to: 82
+/* 73 */ MCD::OPC_CheckPredicate, 13, 18, 0, 0, // Skip to: 96
+/* 78 */ MCD::OPC_Decode, 208, 2, 69, // Opcode: C_FLWSP
+/* 82 */ MCD::OPC_FilterValue, 7, 9, 0, 0, // Skip to: 96
+/* 87 */ MCD::OPC_CheckPredicate, 13, 4, 0, 0, // Skip to: 96
+/* 92 */ MCD::OPC_Decode, 212, 2, 70, // Opcode: C_FSWSP
+/* 96 */ MCD::OPC_Fail,
+ 0
+};
+
+static bool checkDecoderPredicate(unsigned Idx, const FeatureBitset& Bits) {
+ switch (Idx) {
+ default: llvm_unreachable("Invalid index!");
+ case 0:
+ return (Bits[RISCV::FeatureStdExtC]);
+ case 1:
+ return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureRVCHints]);
+ case 2:
+ return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureStdExtD]);
+ case 3:
+ return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::Feature64Bit]);
+ case 4:
+ return (Bits[RISCV::Feature64Bit]);
+ case 5:
+ return (Bits[RISCV::FeatureStdExtF]);
+ case 6:
+ return (Bits[RISCV::FeatureStdExtD]);
+ case 7:
+ return (Bits[RISCV::FeatureStdExtA]);
+ case 8:
+ return (Bits[RISCV::FeatureStdExtA] && Bits[RISCV::Feature64Bit]);
+ case 9:
+ return (Bits[RISCV::FeatureStdExtM]);
+ case 10:
+ return (Bits[RISCV::FeatureStdExtM] && Bits[RISCV::Feature64Bit]);
+ case 11:
+ return (Bits[RISCV::FeatureStdExtF] && Bits[RISCV::Feature64Bit]);
+ case 12:
+ return (Bits[RISCV::FeatureStdExtD] && Bits[RISCV::Feature64Bit]);
+ case 13:
+ return (Bits[RISCV::FeatureStdExtC] && Bits[RISCV::FeatureStdExtF] && !Bits[RISCV::Feature64Bit]);
+ case 14:
+ return (Bits[RISCV::FeatureStdExtC] && !Bits[RISCV::Feature64Bit]);
+ }
+}
+
+template<typename InsnType>
+static DecodeStatus decodeToMCInst(DecodeStatus S, unsigned Idx, InsnType insn, MCInst &MI,
+ uint64_t Address, const void *Decoder, bool &DecodeComplete) {
+ DecodeComplete = true;
+ InsnType tmp;
+ switch (Idx) {
+ default: llvm_unreachable("Invalid index!");
+ case 0:
+ return S;
+ case 1:
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 5, 1) << 3;
+ tmp |= fieldFromInstruction(insn, 6, 1) << 2;
+ tmp |= fieldFromInstruction(insn, 7, 4) << 6;
+ tmp |= fieldFromInstruction(insn, 11, 2) << 4;
+ if (decodeUImmNonZeroOperand<10>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 2:
+ if (decodeRVCInstrSImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 3:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 4:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 5:
+ if (decodeRVCInstrRdRs1UImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 6:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 7:
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeFPR64CRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 5, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 8:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 3) << 6;
+ tmp |= fieldFromInstruction(insn, 5, 2) << 3;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 9:
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 5, 1) << 6;
+ tmp |= fieldFromInstruction(insn, 6, 1) << 2;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<7>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 10:
+ if (decodeRVCInstrRdSImm(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 11:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 12:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 4, 3) << 2;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 13:
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 5, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 14:
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 1) << 5;
+ tmp |= fieldFromInstruction(insn, 3, 2) << 7;
+ tmp |= fieldFromInstruction(insn, 5, 1) << 6;
+ tmp |= fieldFromInstruction(insn, 6, 1) << 4;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 9;
+ if (decodeSImmNonZeroOperand<10>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 15:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0X2RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeCLUIImmOperand(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 16:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 3) << 6;
+ tmp |= fieldFromInstruction(insn, 5, 2) << 3;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 17:
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 18:
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 19:
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeSImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 20:
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 21:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 22:
+ if (decodeRVCInstrRdRs2(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 23:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 24:
+ if (decodeRVCInstrRdRs1Rs2(MI, insn, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 25:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeGPRNoX0RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 26:
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 1) << 4;
+ tmp |= fieldFromInstruction(insn, 3, 3) << 0;
+ tmp |= fieldFromInstruction(insn, 6, 1) << 6;
+ tmp |= fieldFromInstruction(insn, 7, 1) << 5;
+ tmp |= fieldFromInstruction(insn, 8, 1) << 9;
+ tmp |= fieldFromInstruction(insn, 9, 2) << 7;
+ tmp |= fieldFromInstruction(insn, 11, 1) << 3;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 10;
+ if (decodeSImmOperandAndLsl1<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 27:
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 3) << 6;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 28:
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 1) << 4;
+ tmp |= fieldFromInstruction(insn, 3, 2) << 0;
+ tmp |= fieldFromInstruction(insn, 5, 2) << 5;
+ tmp |= fieldFromInstruction(insn, 10, 2) << 2;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 7;
+ if (decodeSImmOperandAndLsl1<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 29:
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 9, 4) << 2;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 30:
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 3) << 6;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<9>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 31:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 12);
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 32:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 12);
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 33:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 12);
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 34:
+ tmp = fieldFromInstruction(insn, 24, 4);
+ if (decodeUImmOperand<4>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 4);
+ if (decodeUImmOperand<4>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 35:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 6);
+ if (decodeUImmOperand<6>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 36:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 20);
+ if (decodeUImmOperand<20>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 37:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (decodeUImmOperand<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 38:
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 25, 7) << 5;
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 39:
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 25, 7) << 5;
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 40:
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 5) << 0;
+ tmp |= fieldFromInstruction(insn, 25, 7) << 5;
+ if (decodeSImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 41:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 42:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 43:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 27, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 44:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 27, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 45:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 46:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 47:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 48:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 49:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 50:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 51:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 52:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 53:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 54:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 55:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 56:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 57:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 58:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 59:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 12, 3);
+ if (decodeFRMArg(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 60:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 61:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeFPR64RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 62:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 63:
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 1) << 10;
+ tmp |= fieldFromInstruction(insn, 8, 4) << 0;
+ tmp |= fieldFromInstruction(insn, 25, 6) << 4;
+ tmp |= fieldFromInstruction(insn, 31, 1) << 11;
+ if (decodeSImmOperandAndLsl1<13>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 64:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 12, 8) << 11;
+ tmp |= fieldFromInstruction(insn, 20, 1) << 10;
+ tmp |= fieldFromInstruction(insn, 21, 10) << 0;
+ tmp |= fieldFromInstruction(insn, 31, 1) << 19;
+ if (decodeSImmOperandAndLsl1<21>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 65:
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 66:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 12);
+ if (decodeUImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 67:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeGPRRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 20, 12);
+ if (decodeUImmOperand<12>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 15, 5);
+ if (decodeUImmOperand<5>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 68:
+ tmp = fieldFromInstruction(insn, 2, 3);
+ if (DecodeFPR32CRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = fieldFromInstruction(insn, 7, 3);
+ if (DecodeGPRCRegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 5, 1) << 6;
+ tmp |= fieldFromInstruction(insn, 6, 1) << 2;
+ tmp |= fieldFromInstruction(insn, 10, 3) << 3;
+ if (decodeUImmOperand<7>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 69:
+ tmp = fieldFromInstruction(insn, 7, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 2, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 4, 3) << 2;
+ tmp |= fieldFromInstruction(insn, 12, 1) << 5;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ case 70:
+ tmp = fieldFromInstruction(insn, 2, 5);
+ if (DecodeFPR32RegisterClass(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ tmp = 0x0;
+ tmp |= fieldFromInstruction(insn, 7, 2) << 6;
+ tmp |= fieldFromInstruction(insn, 9, 4) << 2;
+ if (decodeUImmOperand<8>(MI, tmp, Address, Decoder) == MCDisassembler::Fail) { return MCDisassembler::Fail; }
+ return S;
+ }
+}
+
+template<typename InsnType>
+static DecodeStatus decodeInstruction(const uint8_t DecodeTable[], MCInst &MI,
+ InsnType insn, uint64_t Address,
+ const void *DisAsm,
+ const MCSubtargetInfo &STI) {
+ const FeatureBitset& Bits = STI.getFeatureBits();
+
+ const uint8_t *Ptr = DecodeTable;
+ InsnType CurFieldValue = 0;
+ DecodeStatus S = MCDisassembler::Success;
+ while (true) {
+ ptrdiff_t Loc = Ptr - DecodeTable;
+ switch (*Ptr) {
+ default:
+ errs() << Loc << ": Unexpected decode table opcode!\n";
+ return MCDisassembler::Fail;
+ case MCD::OPC_ExtractField: {
+ unsigned Start = *++Ptr;
+ unsigned Len = *++Ptr;
+ ++Ptr;
+ CurFieldValue = fieldFromInstruction(insn, Start, Len);
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_ExtractField(" << Start << ", "
+ << Len << "): " << CurFieldValue << "\n");
+ break;
+ }
+ case MCD::OPC_FilterValue: {
+ // Decode the field value.
+ unsigned Len;
+ InsnType Val = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ // NumToSkip is a plain 24-bit integer.
+ unsigned NumToSkip = *Ptr++;
+ NumToSkip |= (*Ptr++) << 8;
+ NumToSkip |= (*Ptr++) << 16;
+
+ // Perform the filter operation.
+ if (Val != CurFieldValue)
+ Ptr += NumToSkip;
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_FilterValue(" << Val << ", " << NumToSkip
+ << "): " << ((Val != CurFieldValue) ? "FAIL:" : "PASS:")
+ << " continuing at " << (Ptr - DecodeTable) << "\n");
+
+ break;
+ }
+ case MCD::OPC_CheckField: {
+ unsigned Start = *++Ptr;
+ unsigned Len = *++Ptr;
+ InsnType FieldValue = fieldFromInstruction(insn, Start, Len);
+ // Decode the field value.
+ InsnType ExpectedValue = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ // NumToSkip is a plain 24-bit integer.
+ unsigned NumToSkip = *Ptr++;
+ NumToSkip |= (*Ptr++) << 8;
+ NumToSkip |= (*Ptr++) << 16;
+
+ // If the actual and expected values don't match, skip.
+ if (ExpectedValue != FieldValue)
+ Ptr += NumToSkip;
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckField(" << Start << ", "
+ << Len << ", " << ExpectedValue << ", " << NumToSkip
+ << "): FieldValue = " << FieldValue << ", ExpectedValue = "
+ << ExpectedValue << ": "
+ << ((ExpectedValue == FieldValue) ? "PASS\n" : "FAIL\n"));
+ break;
+ }
+ case MCD::OPC_CheckPredicate: {
+ unsigned Len;
+ // Decode the Predicate Index value.
+ unsigned PIdx = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ // NumToSkip is a plain 24-bit integer.
+ unsigned NumToSkip = *Ptr++;
+ NumToSkip |= (*Ptr++) << 8;
+ NumToSkip |= (*Ptr++) << 16;
+ // Check the predicate.
+ bool Pred;
+ if (!(Pred = checkDecoderPredicate(PIdx, Bits)))
+ Ptr += NumToSkip;
+ (void)Pred;
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_CheckPredicate(" << PIdx << "): "
+ << (Pred ? "PASS\n" : "FAIL\n"));
+
+ break;
+ }
+ case MCD::OPC_Decode: {
+ unsigned Len;
+ // Decode the Opcode value.
+ unsigned Opc = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
+ Ptr += Len;
+
+ MI.clear();
+ MI.setOpcode(Opc);
+ bool DecodeComplete;
+ S = decodeToMCInst(S, DecodeIdx, insn, MI, Address, DisAsm, DecodeComplete);
+ assert(DecodeComplete);
+
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_Decode: opcode " << Opc
+ << ", using decoder " << DecodeIdx << ": "
+ << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
+ return S;
+ }
+ case MCD::OPC_TryDecode: {
+ unsigned Len;
+ // Decode the Opcode value.
+ unsigned Opc = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ unsigned DecodeIdx = decodeULEB128(Ptr, &Len);
+ Ptr += Len;
+ // NumToSkip is a plain 24-bit integer.
+ unsigned NumToSkip = *Ptr++;
+ NumToSkip |= (*Ptr++) << 8;
+ NumToSkip |= (*Ptr++) << 16;
+
+ // Perform the decode operation.
+ MCInst TmpMI;
+ TmpMI.setOpcode(Opc);
+ bool DecodeComplete;
+ S = decodeToMCInst(S, DecodeIdx, insn, TmpMI, Address, DisAsm, DecodeComplete);
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_TryDecode: opcode " << Opc
+ << ", using decoder " << DecodeIdx << ": ");
+
+ if (DecodeComplete) {
+ // Decoding complete.
+ LLVM_DEBUG(dbgs() << (S != MCDisassembler::Fail ? "PASS" : "FAIL") << "\n");
+ MI = TmpMI;
+ return S;
+ } else {
+ assert(S == MCDisassembler::Fail);
+ // If the decoding was incomplete, skip.
+ Ptr += NumToSkip;
+ LLVM_DEBUG(dbgs() << "FAIL: continuing at " << (Ptr - DecodeTable) << "\n");
+ // Reset decode status. This also drops a SoftFail status that could be
+ // set before the decode attempt.
+ S = MCDisassembler::Success;
+ }
+ break;
+ }
+ case MCD::OPC_SoftFail: {
+ // Decode the mask values.
+ unsigned Len;
+ InsnType PositiveMask = decodeULEB128(++Ptr, &Len);
+ Ptr += Len;
+ InsnType NegativeMask = decodeULEB128(Ptr, &Len);
+ Ptr += Len;
+ bool Fail = (insn & PositiveMask) || (~insn & NegativeMask);
+ if (Fail)
+ S = MCDisassembler::SoftFail;
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_SoftFail: " << (Fail ? "FAIL\n":"PASS\n"));
+ break;
+ }
+ case MCD::OPC_Fail: {
+ LLVM_DEBUG(dbgs() << Loc << ": OPC_Fail\n");
+ return MCDisassembler::Fail;
+ }
+ }
+ }
+ llvm_unreachable("bogosity detected in disassembler state machine!");
+}
+
+
+} // end namespace llvm
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenGlobalISel.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenGlobalISel.inc
new file mode 100644
index 0000000..8b47216
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenGlobalISel.inc
@@ -0,0 +1,12519 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Global Instruction Selector for the RISCV target *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifdef GET_GLOBALISEL_PREDICATE_BITSET
+const unsigned MAX_SUBTARGET_PREDICATES = 6;
+using PredicateBitset = llvm::PredicateBitsetImpl<MAX_SUBTARGET_PREDICATES>;
+#endif // ifdef GET_GLOBALISEL_PREDICATE_BITSET
+
+#ifdef GET_GLOBALISEL_TEMPORARIES_DECL
+ mutable MatcherState State;
+ typedef ComplexRendererFns(RISCVInstructionSelector::*ComplexMatcherMemFn)(MachineOperand &) const;
+ typedef void(RISCVInstructionSelector::*CustomRendererFn)(MachineInstrBuilder &, const MachineInstr&, int) const;
+ const ISelInfoTy<PredicateBitset, ComplexMatcherMemFn, CustomRendererFn> ISelInfo;
+ static RISCVInstructionSelector::ComplexMatcherMemFn ComplexPredicateFns[];
+ static RISCVInstructionSelector::CustomRendererFn CustomRenderers[];
+ bool testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const override;
+ bool testImmPredicate_APInt(unsigned PredicateID, const APInt &Imm) const override;
+ bool testImmPredicate_APFloat(unsigned PredicateID, const APFloat &Imm) const override;
+ const int64_t *getMatchTable() const override;
+ bool testMIPredicate_MI(unsigned PredicateID, const MachineInstr &MI) const override;
+#endif // ifdef GET_GLOBALISEL_TEMPORARIES_DECL
+
+#ifdef GET_GLOBALISEL_TEMPORARIES_INIT
+, State(0),
+ISelInfo(TypeObjects, NumTypeObjects, FeatureBitsets, ComplexPredicateFns, CustomRenderers)
+#endif // ifdef GET_GLOBALISEL_TEMPORARIES_INIT
+
+#ifdef GET_GLOBALISEL_IMPL
+// Bits for subtarget features that participate in instruction matching.
+enum SubtargetFeatureBits : uint8_t {
+ Feature_HasStdExtMBit = 4,
+ Feature_HasStdExtABit = 5,
+ Feature_HasStdExtFBit = 0,
+ Feature_HasStdExtDBit = 1,
+ Feature_IsRV64Bit = 3,
+ Feature_IsRV32Bit = 2,
+};
+
+PredicateBitset RISCVInstructionSelector::
+computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const {
+ PredicateBitset Features;
+ if (Subtarget->hasStdExtM())
+ Features.set(Feature_HasStdExtMBit);
+ if (Subtarget->hasStdExtA())
+ Features.set(Feature_HasStdExtABit);
+ if (Subtarget->hasStdExtF())
+ Features.set(Feature_HasStdExtFBit);
+ if (Subtarget->hasStdExtD())
+ Features.set(Feature_HasStdExtDBit);
+ if (Subtarget->is64Bit())
+ Features.set(Feature_IsRV64Bit);
+ if (!Subtarget->is64Bit())
+ Features.set(Feature_IsRV32Bit);
+ return Features;
+}
+
+void RISCVInstructionSelector::setupGeneratedPerFunctionState(MachineFunction &MF) {
+ AvailableFunctionFeatures = computeAvailableFunctionFeatures((const RISCVSubtarget*)&MF.getSubtarget(), &MF);
+}
+PredicateBitset RISCVInstructionSelector::
+computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget, const MachineFunction *MF) const {
+ PredicateBitset Features;
+ return Features;
+}
+
+// LLT Objects.
+enum {
+ GILLT_s32,
+ GILLT_s64,
+};
+const static size_t NumTypeObjects = 2;
+const static LLT TypeObjects[] = {
+ LLT::scalar(32),
+ LLT::scalar(64),
+};
+
+// Feature bitsets.
+enum {
+ GIFBS_Invalid,
+ GIFBS_HasStdExtA,
+ GIFBS_HasStdExtD,
+ GIFBS_HasStdExtF,
+ GIFBS_HasStdExtM,
+ GIFBS_IsRV32,
+ GIFBS_IsRV64,
+ GIFBS_HasStdExtA_IsRV64,
+ GIFBS_HasStdExtD_IsRV32,
+ GIFBS_HasStdExtD_IsRV64,
+};
+const static PredicateBitset FeatureBitsets[] {
+ {}, // GIFBS_Invalid
+ {Feature_HasStdExtABit, },
+ {Feature_HasStdExtDBit, },
+ {Feature_HasStdExtFBit, },
+ {Feature_HasStdExtMBit, },
+ {Feature_IsRV32Bit, },
+ {Feature_IsRV64Bit, },
+ {Feature_HasStdExtABit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtDBit, Feature_IsRV32Bit, },
+ {Feature_HasStdExtDBit, Feature_IsRV64Bit, },
+};
+
+// ComplexPattern predicates.
+enum {
+ GICP_Invalid,
+};
+// See constructor for table contents
+
+// PatFrag predicates.
+enum {
+ GIPFP_I64_Predicate_c_lui_imm = GIPFP_I64_Invalid + 1,
+ GIPFP_I64_Predicate_immbottomxlenset,
+ GIPFP_I64_Predicate_immzero,
+ GIPFP_I64_Predicate_simm10_lsb0000nonzero,
+ GIPFP_I64_Predicate_simm12,
+ GIPFP_I64_Predicate_simm12_lsb0,
+ GIPFP_I64_Predicate_simm32,
+ GIPFP_I64_Predicate_simm32hi20,
+ GIPFP_I64_Predicate_simm6,
+ GIPFP_I64_Predicate_simm6nonzero,
+ GIPFP_I64_Predicate_simm9_lsb0,
+ GIPFP_I64_Predicate_uimm10_lsb00nonzero,
+ GIPFP_I64_Predicate_uimm5,
+ GIPFP_I64_Predicate_uimm7_lsb00,
+ GIPFP_I64_Predicate_uimm8_lsb00,
+ GIPFP_I64_Predicate_uimm8_lsb000,
+ GIPFP_I64_Predicate_uimm9_lsb000,
+ GIPFP_I64_Predicate_uimmlog2xlen,
+ GIPFP_I64_Predicate_uimmlog2xlennonzero,
+};
+bool RISCVInstructionSelector::testImmPredicate_I64(unsigned PredicateID, int64_t Imm) const {
+ switch (PredicateID) {
+ case GIPFP_I64_Predicate_c_lui_imm: {
+ return (Imm != 0) &&
+ (isUInt<5>(Imm) ||
+ (Imm >= 0xfffe0 && Imm <= 0xfffff));
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_immbottomxlenset: {
+
+ if (Subtarget->is64Bit())
+ return countTrailingOnes<uint64_t>(Imm) >= 6;
+ return countTrailingOnes<uint64_t>(Imm) >= 5;
+
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_immzero: {
+ return (Imm == 0);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm10_lsb0000nonzero: {
+ return (Imm != 0) && isShiftedInt<6, 4>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm12: {
+ return isInt<12>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm12_lsb0: {
+ return isShiftedInt<11, 1>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm32: {
+ return isInt<32>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm32hi20: {
+ return isShiftedInt<20, 12>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm6: {
+ return isInt<6>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm6nonzero: {
+ return (Imm != 0) && isInt<6>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_simm9_lsb0: {
+ return isShiftedInt<8, 1>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm10_lsb00nonzero: {
+ return isShiftedUInt<8, 2>(Imm) && (Imm != 0);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm5: {
+ return isUInt<5>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm7_lsb00: {
+ return isShiftedUInt<5, 2>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm8_lsb00: {
+ return isShiftedUInt<6, 2>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm8_lsb000: {
+ return isShiftedUInt<5, 3>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimm9_lsb000: {
+ return isShiftedUInt<6, 3>(Imm);
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimmlog2xlen: {
+
+ if (Subtarget->is64Bit())
+ return isUInt<6>(Imm);
+ return isUInt<5>(Imm);
+
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ case GIPFP_I64_Predicate_uimmlog2xlennonzero: {
+
+ if (Subtarget->is64Bit())
+ return isUInt<6>(Imm) && (Imm != 0);
+ return isUInt<5>(Imm) && (Imm != 0);
+
+ llvm_unreachable("ImmediateCode should have returned");
+ return false;
+ }
+ }
+ llvm_unreachable("Unknown predicate");
+ return false;
+}
+bool RISCVInstructionSelector::testImmPredicate_APFloat(unsigned PredicateID, const APFloat & Imm) const {
+ llvm_unreachable("Unknown predicate");
+ return false;
+}
+bool RISCVInstructionSelector::testImmPredicate_APInt(unsigned PredicateID, const APInt & Imm) const {
+ llvm_unreachable("Unknown predicate");
+ return false;
+}
+bool RISCVInstructionSelector::testMIPredicate_MI(unsigned PredicateID, const MachineInstr & MI) const {
+ const MachineFunction &MF = *MI.getParent()->getParent();
+ const MachineRegisterInfo &MRI = MF.getRegInfo();
+ (void)MRI;
+ llvm_unreachable("Unknown predicate");
+ return false;
+}
+
+RISCVInstructionSelector::ComplexMatcherMemFn
+RISCVInstructionSelector::ComplexPredicateFns[] = {
+ nullptr, // GICP_Invalid
+};
+
+// Custom renderers.
+enum {
+ GICR_Invalid,
+};
+RISCVInstructionSelector::CustomRendererFn
+RISCVInstructionSelector::CustomRenderers[] = {
+ nullptr, // GICR_Invalid
+};
+
+bool RISCVInstructionSelector::selectImpl(MachineInstr &I, CodeGenCoverage &CoverageInfo) const {
+ MachineFunction &MF = *I.getParent()->getParent();
+ MachineRegisterInfo &MRI = MF.getRegInfo();
+ const PredicateBitset AvailableFeatures = getAvailableFeatures();
+ NewMIVector OutMIs;
+ State.MIs.clear();
+ State.MIs.push_back(&I);
+
+ if (executeMatchTable(*this, OutMIs, State, ISelInfo, getMatchTable(), TII, MRI, TRI, RBI, AvailableFeatures, CoverageInfo)) {
+ return true;
+ }
+
+ return false;
+}
+
+const int64_t *RISCVInstructionSelector::getMatchTable() const {
+ constexpr static int64_t MatchTable0[] = {
+ GIM_SwitchOpcode, /*MI*/0, /*[*/35, 168, /*)*//*default:*//*Label 44*/ 28266,
+ /*TargetOpcode::G_ADD*//*Label 0*/ 138,
+ /*TargetOpcode::G_SUB*//*Label 1*/ 325,
+ /*TargetOpcode::G_MUL*//*Label 2*/ 406,
+ /*TargetOpcode::G_SDIV*//*Label 3*/ 493,
+ /*TargetOpcode::G_UDIV*//*Label 4*/ 580,
+ /*TargetOpcode::G_SREM*//*Label 5*/ 667,
+ /*TargetOpcode::G_UREM*//*Label 6*/ 754,
+ /*TargetOpcode::G_AND*//*Label 7*/ 841,
+ /*TargetOpcode::G_OR*//*Label 8*/ 1166,
+ /*TargetOpcode::G_XOR*//*Label 9*/ 1353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_BITCAST*//*Label 10*/ 1540, 0, 0,
+ /*TargetOpcode::G_READCYCLECOUNTER*//*Label 11*/ 1827,
+ /*TargetOpcode::G_LOAD*//*Label 12*/ 1918,
+ /*TargetOpcode::G_SEXTLOAD*//*Label 13*/ 6036,
+ /*TargetOpcode::G_ZEXTLOAD*//*Label 14*/ 7130, 0, 0, 0,
+ /*TargetOpcode::G_STORE*//*Label 15*/ 8224, 0, 0, 0,
+ /*TargetOpcode::G_ATOMICRMW_XCHG*//*Label 16*/ 9563,
+ /*TargetOpcode::G_ATOMICRMW_ADD*//*Label 17*/ 10608,
+ /*TargetOpcode::G_ATOMICRMW_SUB*//*Label 18*/ 11653,
+ /*TargetOpcode::G_ATOMICRMW_AND*//*Label 19*/ 13808, 0,
+ /*TargetOpcode::G_ATOMICRMW_OR*//*Label 20*/ 14853,
+ /*TargetOpcode::G_ATOMICRMW_XOR*//*Label 21*/ 15898,
+ /*TargetOpcode::G_ATOMICRMW_MAX*//*Label 22*/ 16943,
+ /*TargetOpcode::G_ATOMICRMW_MIN*//*Label 23*/ 17988,
+ /*TargetOpcode::G_ATOMICRMW_UMAX*//*Label 24*/ 19033,
+ /*TargetOpcode::G_ATOMICRMW_UMIN*//*Label 25*/ 20078, 0, 0,
+ /*TargetOpcode::G_FENCE*//*Label 26*/ 21123, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_CONSTANT*//*Label 27*/ 21392, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_SHL*//*Label 28*/ 21483,
+ /*TargetOpcode::G_LSHR*//*Label 29*/ 21835,
+ /*TargetOpcode::G_ASHR*//*Label 30*/ 22187,
+ /*TargetOpcode::G_ICMP*//*Label 31*/ 22539,
+ /*TargetOpcode::G_FCMP*//*Label 32*/ 24755, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_UMULH*//*Label 33*/ 25936,
+ /*TargetOpcode::G_SMULH*//*Label 34*/ 26023, 0, 0, 0,
+ /*TargetOpcode::G_FMA*//*Label 35*/ 26110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_FPEXT*//*Label 36*/ 27245,
+ /*TargetOpcode::G_FPTRUNC*//*Label 37*/ 27273,
+ /*TargetOpcode::G_FPTOSI*//*Label 38*/ 27362,
+ /*TargetOpcode::G_FPTOUI*//*Label 39*/ 27541,
+ /*TargetOpcode::G_SITOFP*//*Label 40*/ 27720,
+ /*TargetOpcode::G_UITOFP*//*Label 41*/ 27897, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_BR*//*Label 42*/ 28074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ /*TargetOpcode::G_FSQRT*//*Label 43*/ 28087,
+ // Label 0: @138
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 47*/ 324,
+ /*GILLT_s32*//*Label 45*/ 146,
+ /*GILLT_s64*//*Label 46*/ 258,
+ // Label 45: @146
+ GIM_Try, /*On fail goto*//*Label 48*/ 257,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 49*/ 197, // Rule ID 35 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ADDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 35,
+ GIR_Done,
+ // Label 49: @197
+ GIM_Try, /*On fail goto*//*Label 50*/ 230, // Rule ID 37 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ADDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 37,
+ GIR_Done,
+ // Label 50: @230
+ GIM_Try, /*On fail goto*//*Label 51*/ 243, // Rule ID 32 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (ADD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::ADD,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 32,
+ GIR_Done,
+ // Label 51: @243
+ GIM_Try, /*On fail goto*//*Label 52*/ 256, // Rule ID 34 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (ADD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::ADD,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 34,
+ GIR_Done,
+ // Label 52: @256
+ GIM_Reject,
+ // Label 48: @257
+ GIM_Reject,
+ // Label 46: @258
+ GIM_Try, /*On fail goto*//*Label 53*/ 323,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 54*/ 309, // Rule ID 36 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) => (ADDI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 36,
+ GIR_Done,
+ // Label 54: @309
+ GIM_Try, /*On fail goto*//*Label 55*/ 322, // Rule ID 33 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (ADD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::ADD,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 33,
+ GIR_Done,
+ // Label 55: @322
+ GIM_Reject,
+ // Label 53: @323
+ GIM_Reject,
+ // Label 47: @324
+ GIM_Reject,
+ // Label 1: @325
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 58*/ 405,
+ /*GILLT_s32*//*Label 56*/ 333,
+ /*GILLT_s64*//*Label 57*/ 375,
+ // Label 56: @333
+ GIM_Try, /*On fail goto*//*Label 59*/ 374,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 60*/ 364, // Rule ID 38 //
+ // (sub:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SUB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SUB,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 38,
+ GIR_Done,
+ // Label 60: @364
+ GIM_Try, /*On fail goto*//*Label 61*/ 373, // Rule ID 40 //
+ // (sub:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SUB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SUB,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 40,
+ GIR_Done,
+ // Label 61: @373
+ GIM_Reject,
+ // Label 59: @374
+ GIM_Reject,
+ // Label 57: @375
+ GIM_Try, /*On fail goto*//*Label 62*/ 404, // Rule ID 39 //
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (sub:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (SUB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SUB,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 39,
+ GIR_Done,
+ // Label 62: @404
+ GIM_Reject,
+ // Label 58: @405
+ GIM_Reject,
+ // Label 2: @406
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 65*/ 492,
+ /*GILLT_s32*//*Label 63*/ 414,
+ /*GILLT_s64*//*Label 64*/ 460,
+ // Label 63: @414
+ GIM_Try, /*On fail goto*//*Label 66*/ 459,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 67*/ 447, // Rule ID 473 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mul:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MUL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MUL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 473,
+ GIR_Done,
+ // Label 67: @447
+ GIM_Try, /*On fail goto*//*Label 68*/ 458, // Rule ID 475 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mul:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MUL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MUL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 475,
+ GIR_Done,
+ // Label 68: @458
+ GIM_Reject,
+ // Label 66: @459
+ GIM_Reject,
+ // Label 64: @460
+ GIM_Try, /*On fail goto*//*Label 69*/ 491, // Rule ID 474 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (mul:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (MUL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MUL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 474,
+ GIR_Done,
+ // Label 69: @491
+ GIM_Reject,
+ // Label 65: @492
+ GIM_Reject,
+ // Label 3: @493
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 72*/ 579,
+ /*GILLT_s32*//*Label 70*/ 501,
+ /*GILLT_s64*//*Label 71*/ 547,
+ // Label 70: @501
+ GIM_Try, /*On fail goto*//*Label 73*/ 546,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 74*/ 534, // Rule ID 482 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (DIV:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIV,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 482,
+ GIR_Done,
+ // Label 74: @534
+ GIM_Try, /*On fail goto*//*Label 75*/ 545, // Rule ID 484 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (sdiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (DIV:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIV,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 484,
+ GIR_Done,
+ // Label 75: @545
+ GIM_Reject,
+ // Label 73: @546
+ GIM_Reject,
+ // Label 71: @547
+ GIM_Try, /*On fail goto*//*Label 76*/ 578, // Rule ID 483 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (sdiv:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (DIV:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIV,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 483,
+ GIR_Done,
+ // Label 76: @578
+ GIM_Reject,
+ // Label 72: @579
+ GIM_Reject,
+ // Label 4: @580
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 79*/ 666,
+ /*GILLT_s32*//*Label 77*/ 588,
+ /*GILLT_s64*//*Label 78*/ 634,
+ // Label 77: @588
+ GIM_Try, /*On fail goto*//*Label 80*/ 633,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 81*/ 621, // Rule ID 485 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (udiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIVU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 485,
+ GIR_Done,
+ // Label 81: @621
+ GIM_Try, /*On fail goto*//*Label 82*/ 632, // Rule ID 487 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (udiv:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (DIVU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIVU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 487,
+ GIR_Done,
+ // Label 82: @632
+ GIM_Reject,
+ // Label 80: @633
+ GIM_Reject,
+ // Label 78: @634
+ GIM_Try, /*On fail goto*//*Label 83*/ 665, // Rule ID 486 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (udiv:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (DIVU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::DIVU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 486,
+ GIR_Done,
+ // Label 83: @665
+ GIM_Reject,
+ // Label 79: @666
+ GIM_Reject,
+ // Label 5: @667
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 86*/ 753,
+ /*GILLT_s32*//*Label 84*/ 675,
+ /*GILLT_s64*//*Label 85*/ 721,
+ // Label 84: @675
+ GIM_Try, /*On fail goto*//*Label 87*/ 720,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 88*/ 708, // Rule ID 488 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (srem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (REM:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REM,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 488,
+ GIR_Done,
+ // Label 88: @708
+ GIM_Try, /*On fail goto*//*Label 89*/ 719, // Rule ID 490 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (srem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (REM:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REM,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 490,
+ GIR_Done,
+ // Label 89: @719
+ GIM_Reject,
+ // Label 87: @720
+ GIM_Reject,
+ // Label 85: @721
+ GIM_Try, /*On fail goto*//*Label 90*/ 752, // Rule ID 489 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (srem:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (REM:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REM,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 489,
+ GIR_Done,
+ // Label 90: @752
+ GIM_Reject,
+ // Label 86: @753
+ GIM_Reject,
+ // Label 6: @754
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 93*/ 840,
+ /*GILLT_s32*//*Label 91*/ 762,
+ /*GILLT_s64*//*Label 92*/ 808,
+ // Label 91: @762
+ GIM_Try, /*On fail goto*//*Label 94*/ 807,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 95*/ 795, // Rule ID 491 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (urem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REMU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 491,
+ GIR_Done,
+ // Label 95: @795
+ GIM_Try, /*On fail goto*//*Label 96*/ 806, // Rule ID 493 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (urem:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (REMU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REMU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 493,
+ GIR_Done,
+ // Label 96: @806
+ GIM_Reject,
+ // Label 94: @807
+ GIM_Reject,
+ // Label 92: @808
+ GIM_Try, /*On fail goto*//*Label 97*/ 839, // Rule ID 492 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (urem:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (REMU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::REMU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 492,
+ GIR_Done,
+ // Label 97: @839
+ GIM_Reject,
+ // Label 93: @840
+ GIM_Reject,
+ // Label 7: @841
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 100*/ 1165,
+ /*GILLT_s32*//*Label 98*/ 849,
+ /*GILLT_s64*//*Label 99*/ 1053,
+ // Label 98: @849
+ GIM_Try, /*On fail goto*//*Label 101*/ 1052,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 102*/ 913, // Rule ID 361 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294967295,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }) => (SRLI:{ *:[i32] } (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 32:{ *:[i32] }), 32:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLLI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/1, /*Imm*/32,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/32,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 361,
+ GIR_Done,
+ // Label 102: @913
+ GIM_Try, /*On fail goto*//*Label 103*/ 959, // Rule ID 363 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294967295,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 4294967295:{ *:[i32] }) => (SRLI:{ *:[i32] } (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 32:{ *:[i32] }), 32:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLLI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/1, /*Imm*/32,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/32,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 363,
+ GIR_Done,
+ // Label 103: @959
+ GIM_Try, /*On fail goto*//*Label 104*/ 992, // Rule ID 50 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ANDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ANDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 50,
+ GIR_Done,
+ // Label 104: @992
+ GIM_Try, /*On fail goto*//*Label 105*/ 1025, // Rule ID 52 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ANDI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ANDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 52,
+ GIR_Done,
+ // Label 105: @1025
+ GIM_Try, /*On fail goto*//*Label 106*/ 1038, // Rule ID 47 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (AND:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 47,
+ GIR_Done,
+ // Label 106: @1038
+ GIM_Try, /*On fail goto*//*Label 107*/ 1051, // Rule ID 49 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (AND:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 49,
+ GIR_Done,
+ // Label 107: @1051
+ GIM_Reject,
+ // Label 101: @1052
+ GIM_Reject,
+ // Label 99: @1053
+ GIM_Try, /*On fail goto*//*Label 108*/ 1164,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 109*/ 1117, // Rule ID 362 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/2, 4294967295,
+ // (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 4294967295:{ *:[i64] }) => (SRLI:{ *:[i64] } (SLLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 32:{ *:[i64] }), 32:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLLI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/1, /*Imm*/32,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/32,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 362,
+ GIR_Done,
+ // Label 109: @1117
+ GIM_Try, /*On fail goto*//*Label 110*/ 1150, // Rule ID 51 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) => (ANDI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ANDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 51,
+ GIR_Done,
+ // Label 110: @1150
+ GIM_Try, /*On fail goto*//*Label 111*/ 1163, // Rule ID 48 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (AND:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 48,
+ GIR_Done,
+ // Label 111: @1163
+ GIM_Reject,
+ // Label 108: @1164
+ GIM_Reject,
+ // Label 100: @1165
+ GIM_Reject,
+ // Label 8: @1166
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 114*/ 1352,
+ /*GILLT_s32*//*Label 112*/ 1174,
+ /*GILLT_s64*//*Label 113*/ 1286,
+ // Label 112: @1174
+ GIM_Try, /*On fail goto*//*Label 115*/ 1285,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 116*/ 1225, // Rule ID 44 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 44,
+ GIR_Done,
+ // Label 116: @1225
+ GIM_Try, /*On fail goto*//*Label 117*/ 1258, // Rule ID 46 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (ORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 46,
+ GIR_Done,
+ // Label 117: @1258
+ GIM_Try, /*On fail goto*//*Label 118*/ 1271, // Rule ID 41 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (OR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::OR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 41,
+ GIR_Done,
+ // Label 118: @1271
+ GIM_Try, /*On fail goto*//*Label 119*/ 1284, // Rule ID 43 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (OR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::OR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 43,
+ GIR_Done,
+ // Label 119: @1284
+ GIM_Reject,
+ // Label 115: @1285
+ GIM_Reject,
+ // Label 113: @1286
+ GIM_Try, /*On fail goto*//*Label 120*/ 1351,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 121*/ 1337, // Rule ID 45 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) => (ORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 45,
+ GIR_Done,
+ // Label 121: @1337
+ GIM_Try, /*On fail goto*//*Label 122*/ 1350, // Rule ID 42 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (OR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::OR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 42,
+ GIR_Done,
+ // Label 122: @1350
+ GIM_Reject,
+ // Label 120: @1351
+ GIM_Reject,
+ // Label 114: @1352
+ GIM_Reject,
+ // Label 9: @1353
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 125*/ 1539,
+ /*GILLT_s32*//*Label 123*/ 1361,
+ /*GILLT_s64*//*Label 124*/ 1473,
+ // Label 123: @1361
+ GIM_Try, /*On fail goto*//*Label 126*/ 1472,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 127*/ 1412, // Rule ID 56 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 56,
+ GIR_Done,
+ // Label 127: @1412
+ GIM_Try, /*On fail goto*//*Label 128*/ 1445, // Rule ID 58 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12) => (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 58,
+ GIR_Done,
+ // Label 128: @1445
+ GIM_Try, /*On fail goto*//*Label 129*/ 1458, // Rule ID 53 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::XOR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 53,
+ GIR_Done,
+ // Label 129: @1458
+ GIM_Try, /*On fail goto*//*Label 130*/ 1471, // Rule ID 55 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::XOR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 55,
+ GIR_Done,
+ // Label 130: @1471
+ GIM_Reject,
+ // Label 126: @1472
+ GIM_Reject,
+ // Label 124: @1473
+ GIM_Try, /*On fail goto*//*Label 131*/ 1538,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 132*/ 1524, // Rule ID 57 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12) => (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 57,
+ GIR_Done,
+ // Label 132: @1524
+ GIM_Try, /*On fail goto*//*Label 133*/ 1537, // Rule ID 54 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::XOR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 54,
+ GIR_Done,
+ // Label 133: @1537
+ GIM_Reject,
+ // Label 131: @1538
+ GIM_Reject,
+ // Label 125: @1539
+ GIM_Reject,
+ // Label 10: @1540
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 136*/ 1826,
+ /*GILLT_s32*//*Label 134*/ 1548,
+ /*GILLT_s64*//*Label 135*/ 1710,
+ // Label 134: @1548
+ GIM_Try, /*On fail goto*//*Label 137*/ 1571, // Rule ID 1067 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$rs1) => (FMV_W_X:{ *:[f32] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_W_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1067,
+ GIR_Done,
+ // Label 137: @1571
+ GIM_Try, /*On fail goto*//*Label 138*/ 1594, // Rule ID 1068 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f32] } GPR:{ *:[i64] }:$rs1) => (FMV_W_X:{ *:[f32] } GPR:{ *:[i64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_W_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1068,
+ GIR_Done,
+ // Label 138: @1594
+ GIM_Try, /*On fail goto*//*Label 139*/ 1617, // Rule ID 1069 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f32] } GPR:{ *:[i32] }:$rs1) => (FMV_W_X:{ *:[f32] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_W_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1069,
+ GIR_Done,
+ // Label 139: @1617
+ GIM_Try, /*On fail goto*//*Label 140*/ 1640, // Rule ID 1070 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ // (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) => (FMV_X_W:{ *:[i32] } FPR32:{ *:[f32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1070,
+ GIR_Done,
+ // Label 140: @1640
+ GIM_Try, /*On fail goto*//*Label 141*/ 1663, // Rule ID 1072 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ // (bitconvert:{ *:[i32] } FPR32:{ *:[f32] }:$rs1) => (FMV_X_W:{ *:[i32] } FPR32:{ *:[f32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1072,
+ GIR_Done,
+ // Label 141: @1663
+ GIM_Try, /*On fail goto*//*Label 142*/ 1686, // Rule ID 1318 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ // (bitconvert:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FMV_X_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1318,
+ GIR_Done,
+ // Label 142: @1686
+ GIM_Try, /*On fail goto*//*Label 143*/ 1709, // Rule ID 1320 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ // (bitconvert:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FMV_X_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1320,
+ GIR_Done,
+ // Label 143: @1709
+ GIM_Reject,
+ // Label 135: @1710
+ GIM_Try, /*On fail goto*//*Label 144*/ 1733, // Rule ID 1071 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ // (bitconvert:{ *:[i64] } FPR32:{ *:[f32] }:$rs1) => (FMV_X_W:{ *:[i64] } FPR32:{ *:[f32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1071,
+ GIR_Done,
+ // Label 144: @1733
+ GIM_Try, /*On fail goto*//*Label 145*/ 1756, // Rule ID 1315 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FMV_D_X:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_D_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1315,
+ GIR_Done,
+ // Label 145: @1756
+ GIM_Try, /*On fail goto*//*Label 146*/ 1779, // Rule ID 1316 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f64] } GPR:{ *:[i64] }:$rs1) => (FMV_D_X:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_D_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1316,
+ GIR_Done,
+ // Label 146: @1779
+ GIM_Try, /*On fail goto*//*Label 147*/ 1802, // Rule ID 1317 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (bitconvert:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FMV_D_X:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_D_X,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1317,
+ GIR_Done,
+ // Label 147: @1802
+ GIM_Try, /*On fail goto*//*Label 148*/ 1825, // Rule ID 1319 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ // (bitconvert:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) => (FMV_X_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FMV_X_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1319,
+ GIR_Done,
+ // Label 148: @1825
+ GIM_Reject,
+ // Label 136: @1826
+ GIM_Reject,
+ // Label 11: @1827
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 151*/ 1917,
+ /*GILLT_s32*//*Label 149*/ 1835,
+ /*GILLT_s64*//*Label 150*/ 1889,
+ // Label 149: @1835
+ GIM_Try, /*On fail goto*//*Label 152*/ 1888,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 153*/ 1864, // Rule ID 468 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ // (readcyclecounter:{ *:[i32] }) => (CSRRS:{ *:[i32] } 3072:{ *:[i32] }, X0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::CSRRS,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3072,
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 468,
+ GIR_Done,
+ // Label 153: @1864
+ GIM_Try, /*On fail goto*//*Label 154*/ 1887, // Rule ID 470 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ // (readcyclecounter:{ *:[i32] }) => (CSRRS:{ *:[i32] } 3072:{ *:[i32] }, X0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::CSRRS,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3072,
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 470,
+ GIR_Done,
+ // Label 154: @1887
+ GIM_Reject,
+ // Label 152: @1888
+ GIM_Reject,
+ // Label 150: @1889
+ GIM_Try, /*On fail goto*//*Label 155*/ 1916, // Rule ID 469 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // (readcyclecounter:{ *:[i64] }) => (CSRRS:{ *:[i64] } 3072:{ *:[i64] }, X0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::CSRRS,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3072,
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 469,
+ GIR_Done,
+ // Label 155: @1916
+ GIM_Reject,
+ // Label 151: @1917
+ GIM_Reject,
+ // Label 12: @1918
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 158*/ 6035,
+ /*GILLT_s32*//*Label 156*/ 1926,
+ /*GILLT_s64*//*Label 157*/ 4542,
+ // Label 156: @1926
+ GIM_Try, /*On fail goto*//*Label 159*/ 2003, // Rule ID 581 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 581,
+ GIR_Done,
+ // Label 159: @2003
+ GIM_Try, /*On fail goto*//*Label 160*/ 2080, // Rule ID 583 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 583,
+ GIR_Done,
+ // Label 160: @2080
+ GIM_Try, /*On fail goto*//*Label 161*/ 2157, // Rule ID 596 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 596,
+ GIR_Done,
+ // Label 161: @2157
+ GIM_Try, /*On fail goto*//*Label 162*/ 2234, // Rule ID 598 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 598,
+ GIR_Done,
+ // Label 162: @2234
+ GIM_Try, /*On fail goto*//*Label 163*/ 2311, // Rule ID 611 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 611,
+ GIR_Done,
+ // Label 163: @2311
+ GIM_Try, /*On fail goto*//*Label 164*/ 2388, // Rule ID 613 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 613,
+ GIR_Done,
+ // Label 164: @2388
+ GIM_Try, /*On fail goto*//*Label 165*/ 2465, // Rule ID 854 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 854,
+ GIR_Done,
+ // Label 165: @2465
+ GIM_Try, /*On fail goto*//*Label 166*/ 2542, // Rule ID 856 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 856,
+ GIR_Done,
+ // Label 166: @2542
+ GIM_Try, /*On fail goto*//*Label 167*/ 2619, // Rule ID 264 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 264,
+ GIR_Done,
+ // Label 167: @2619
+ GIM_Try, /*On fail goto*//*Label 168*/ 2696, // Rule ID 266 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 266,
+ GIR_Done,
+ // Label 168: @2696
+ GIM_Try, /*On fail goto*//*Label 169*/ 2773, // Rule ID 429 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 429,
+ GIR_Done,
+ // Label 169: @2773
+ GIM_Try, /*On fail goto*//*Label 170*/ 2850, // Rule ID 431 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 431,
+ GIR_Done,
+ // Label 170: @2850
+ GIM_Try, /*On fail goto*//*Label 171*/ 2927, // Rule ID 1136 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1136,
+ GIR_Done,
+ // Label 171: @2927
+ GIM_Try, /*On fail goto*//*Label 172*/ 3004, // Rule ID 1137 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f32] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1137,
+ GIR_Done,
+ // Label 172: @3004
+ GIM_Try, /*On fail goto*//*Label 173*/ 3081, // Rule ID 1138 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1138,
+ GIR_Done,
+ // Label 173: @3081
+ GIM_Try, /*On fail goto*//*Label 174*/ 3160, // Rule ID 219 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 219,
+ GIR_Done,
+ // Label 174: @3160
+ GIM_Try, /*On fail goto*//*Label 175*/ 3239, // Rule ID 221 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 221,
+ GIR_Done,
+ // Label 175: @3239
+ GIM_Try, /*On fail goto*//*Label 176*/ 3318, // Rule ID 249 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 249,
+ GIR_Done,
+ // Label 176: @3318
+ GIM_Try, /*On fail goto*//*Label 177*/ 3397, // Rule ID 251 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 251,
+ GIR_Done,
+ // Label 177: @3397
+ GIM_Try, /*On fail goto*//*Label 178*/ 3478, // Rule ID 399 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 399,
+ GIR_Done,
+ // Label 178: @3478
+ GIM_Try, /*On fail goto*//*Label 179*/ 3559, // Rule ID 401 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 401,
+ GIR_Done,
+ // Label 179: @3559
+ GIM_Try, /*On fail goto*//*Label 180*/ 3605, // Rule ID 575 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 575,
+ GIR_Done,
+ // Label 180: @3605
+ GIM_Try, /*On fail goto*//*Label 181*/ 3651, // Rule ID 577 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 577,
+ GIR_Done,
+ // Label 181: @3651
+ GIM_Try, /*On fail goto*//*Label 182*/ 3697, // Rule ID 590 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 590,
+ GIR_Done,
+ // Label 182: @3697
+ GIM_Try, /*On fail goto*//*Label 183*/ 3743, // Rule ID 592 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 592,
+ GIR_Done,
+ // Label 183: @3743
+ GIM_Try, /*On fail goto*//*Label 184*/ 3789, // Rule ID 605 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 605,
+ GIR_Done,
+ // Label 184: @3789
+ GIM_Try, /*On fail goto*//*Label 185*/ 3835, // Rule ID 607 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 607,
+ GIR_Done,
+ // Label 185: @3835
+ GIM_Try, /*On fail goto*//*Label 186*/ 3881, // Rule ID 848 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_64>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 848,
+ GIR_Done,
+ // Label 186: @3881
+ GIM_Try, /*On fail goto*//*Label 187*/ 3927, // Rule ID 850 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_atomic_load_64>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 850,
+ GIR_Done,
+ // Label 187: @3927
+ GIM_Try, /*On fail goto*//*Label 188*/ 3973, // Rule ID 258 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 258,
+ GIR_Done,
+ // Label 188: @3973
+ GIM_Try, /*On fail goto*//*Label 189*/ 4019, // Rule ID 260 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 260,
+ GIR_Done,
+ // Label 189: @4019
+ GIM_Try, /*On fail goto*//*Label 190*/ 4065, // Rule ID 423 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 423,
+ GIR_Done,
+ // Label 190: @4065
+ GIM_Try, /*On fail goto*//*Label 191*/ 4111, // Rule ID 425 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 425,
+ GIR_Done,
+ // Label 191: @4111
+ GIM_Try, /*On fail goto*//*Label 192*/ 4157, // Rule ID 1130 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1130,
+ GIR_Done,
+ // Label 192: @4157
+ GIM_Try, /*On fail goto*//*Label 193*/ 4203, // Rule ID 1131 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f32] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1131,
+ GIR_Done,
+ // Label 193: @4203
+ GIM_Try, /*On fail goto*//*Label 194*/ 4249, // Rule ID 1132 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLW:{ *:[f32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1132,
+ GIR_Done,
+ // Label 194: @4249
+ GIM_Try, /*On fail goto*//*Label 195*/ 4297, // Rule ID 213 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 213,
+ GIR_Done,
+ // Label 195: @4297
+ GIM_Try, /*On fail goto*//*Label 196*/ 4345, // Rule ID 215 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 215,
+ GIR_Done,
+ // Label 196: @4345
+ GIM_Try, /*On fail goto*//*Label 197*/ 4393, // Rule ID 243 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 243,
+ GIR_Done,
+ // Label 197: @4393
+ GIM_Try, /*On fail goto*//*Label 198*/ 4441, // Rule ID 245 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 245,
+ GIR_Done,
+ // Label 198: @4441
+ GIM_Try, /*On fail goto*//*Label 199*/ 4491, // Rule ID 393 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 393,
+ GIR_Done,
+ // Label 199: @4491
+ GIM_Try, /*On fail goto*//*Label 200*/ 4541, // Rule ID 395 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 395,
+ GIR_Done,
+ // Label 200: @4541
+ GIM_Reject,
+ // Label 157: @4542
+ GIM_Try, /*On fail goto*//*Label 201*/ 4619, // Rule ID 582 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 582,
+ GIR_Done,
+ // Label 201: @4619
+ GIM_Try, /*On fail goto*//*Label 202*/ 4696, // Rule ID 597 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 597,
+ GIR_Done,
+ // Label 202: @4696
+ GIM_Try, /*On fail goto*//*Label 203*/ 4773, // Rule ID 612 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 612,
+ GIR_Done,
+ // Label 203: @4773
+ GIM_Try, /*On fail goto*//*Label 204*/ 4850, // Rule ID 855 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (atomic_load:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_atomic_load_64>> => (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 855,
+ GIR_Done,
+ // Label 204: @4850
+ GIM_Try, /*On fail goto*//*Label 205*/ 4927, // Rule ID 265 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 265,
+ GIR_Done,
+ // Label 205: @4927
+ GIM_Try, /*On fail goto*//*Label 206*/ 5004, // Rule ID 430 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 430,
+ GIR_Done,
+ // Label 206: @5004
+ GIM_Try, /*On fail goto*//*Label 207*/ 5081, // Rule ID 1279 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f64] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1279,
+ GIR_Done,
+ // Label 207: @5081
+ GIM_Try, /*On fail goto*//*Label 208*/ 5158, // Rule ID 1280 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1280,
+ GIR_Done,
+ // Label 208: @5158
+ GIM_Try, /*On fail goto*//*Label 209*/ 5235, // Rule ID 1281 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[f64] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1281,
+ GIR_Done,
+ // Label 209: @5235
+ GIM_Try, /*On fail goto*//*Label 210*/ 5314, // Rule ID 220 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 220,
+ GIR_Done,
+ // Label 210: @5314
+ GIM_Try, /*On fail goto*//*Label 211*/ 5393, // Rule ID 250 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 250,
+ GIR_Done,
+ // Label 211: @5393
+ GIM_Try, /*On fail goto*//*Label 212*/ 5474, // Rule ID 400 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 400,
+ GIR_Done,
+ // Label 212: @5474
+ GIM_Try, /*On fail goto*//*Label 213*/ 5520, // Rule ID 576 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 576,
+ GIR_Done,
+ // Label 213: @5520
+ GIM_Try, /*On fail goto*//*Label 214*/ 5566, // Rule ID 591 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 591,
+ GIR_Done,
+ // Label 214: @5566
+ GIM_Try, /*On fail goto*//*Label 215*/ 5612, // Rule ID 606 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 606,
+ GIR_Done,
+ // Label 215: @5612
+ GIM_Try, /*On fail goto*//*Label 216*/ 5658, // Rule ID 849 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrderingOrStrongerThan, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Unordered,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_atomic_load_64>> => (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 849,
+ GIR_Done,
+ // Label 216: @5658
+ GIM_Try, /*On fail goto*//*Label 217*/ 5704, // Rule ID 259 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 259,
+ GIR_Done,
+ // Label 217: @5704
+ GIM_Try, /*On fail goto*//*Label 218*/ 5750, // Rule ID 424 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (LD:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 424,
+ GIR_Done,
+ // Label 218: @5750
+ GIM_Try, /*On fail goto*//*Label 219*/ 5796, // Rule ID 1273 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f64] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1273,
+ GIR_Done,
+ // Label 219: @5796
+ GIM_Try, /*On fail goto*//*Label 220*/ 5842, // Rule ID 1274 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1274,
+ GIR_Done,
+ // Label 220: @5842
+ GIM_Try, /*On fail goto*//*Label 221*/ 5888, // Rule ID 1275 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[f64] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_load>> => (FLD:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FLD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1275,
+ GIR_Done,
+ // Label 221: @5888
+ GIM_Try, /*On fail goto*//*Label 222*/ 5936, // Rule ID 214 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 214,
+ GIR_Done,
+ // Label 222: @5936
+ GIM_Try, /*On fail goto*//*Label 223*/ 5984, // Rule ID 244 //
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 244,
+ GIR_Done,
+ // Label 223: @5984
+ GIM_Try, /*On fail goto*//*Label 224*/ 6034, // Rule ID 394 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeLessThanLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_extload>><<P:Predicate_extloadi32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 394,
+ GIR_Done,
+ // Label 224: @6034
+ GIM_Reject,
+ // Label 158: @6035
+ GIM_Reject,
+ // Label 13: @6036
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 227*/ 7129,
+ /*GILLT_s32*//*Label 225*/ 6044,
+ /*GILLT_s64*//*Label 226*/ 6767,
+ // Label 225: @6044
+ GIM_Try, /*On fail goto*//*Label 228*/ 6119, // Rule ID 204 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 204,
+ GIR_Done,
+ // Label 228: @6119
+ GIM_Try, /*On fail goto*//*Label 229*/ 6194, // Rule ID 206 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 206,
+ GIR_Done,
+ // Label 229: @6194
+ GIM_Try, /*On fail goto*//*Label 230*/ 6269, // Rule ID 234 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 234,
+ GIR_Done,
+ // Label 230: @6269
+ GIM_Try, /*On fail goto*//*Label 231*/ 6344, // Rule ID 236 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 236,
+ GIR_Done,
+ // Label 231: @6344
+ GIM_Try, /*On fail goto*//*Label 232*/ 6421, // Rule ID 384 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 384,
+ GIR_Done,
+ // Label 232: @6421
+ GIM_Try, /*On fail goto*//*Label 233*/ 6498, // Rule ID 386 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 386,
+ GIR_Done,
+ // Label 233: @6498
+ GIM_Try, /*On fail goto*//*Label 234*/ 6542, // Rule ID 198 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 198,
+ GIR_Done,
+ // Label 234: @6542
+ GIM_Try, /*On fail goto*//*Label 235*/ 6586, // Rule ID 200 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 200,
+ GIR_Done,
+ // Label 235: @6586
+ GIM_Try, /*On fail goto*//*Label 236*/ 6630, // Rule ID 228 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 228,
+ GIR_Done,
+ // Label 236: @6630
+ GIM_Try, /*On fail goto*//*Label 237*/ 6674, // Rule ID 230 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 230,
+ GIR_Done,
+ // Label 237: @6674
+ GIM_Try, /*On fail goto*//*Label 238*/ 6720, // Rule ID 378 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 378,
+ GIR_Done,
+ // Label 238: @6720
+ GIM_Try, /*On fail goto*//*Label 239*/ 6766, // Rule ID 380 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 380,
+ GIR_Done,
+ // Label 239: @6766
+ GIM_Reject,
+ // Label 226: @6767
+ GIM_Try, /*On fail goto*//*Label 240*/ 6842, // Rule ID 205 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 205,
+ GIR_Done,
+ // Label 240: @6842
+ GIM_Try, /*On fail goto*//*Label 241*/ 6917, // Rule ID 235 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 235,
+ GIR_Done,
+ // Label 241: @6917
+ GIM_Try, /*On fail goto*//*Label 242*/ 6994, // Rule ID 385 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 385,
+ GIR_Done,
+ // Label 242: @6994
+ GIM_Try, /*On fail goto*//*Label 243*/ 7038, // Rule ID 199 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi8>> => (LB:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LB,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 199,
+ GIR_Done,
+ // Label 243: @7038
+ GIM_Try, /*On fail goto*//*Label 244*/ 7082, // Rule ID 229 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi16>> => (LH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LH,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 229,
+ GIR_Done,
+ // Label 244: @7082
+ GIM_Try, /*On fail goto*//*Label 245*/ 7128, // Rule ID 379 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_sextload>><<P:Predicate_sextloadi32>> => (LW:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 379,
+ GIR_Done,
+ // Label 245: @7128
+ GIM_Reject,
+ // Label 227: @7129
+ GIM_Reject,
+ // Label 14: @7130
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 248*/ 8223,
+ /*GILLT_s32*//*Label 246*/ 7138,
+ /*GILLT_s64*//*Label 247*/ 7861,
+ // Label 246: @7138
+ GIM_Try, /*On fail goto*//*Label 249*/ 7213, // Rule ID 279 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 279,
+ GIR_Done,
+ // Label 249: @7213
+ GIM_Try, /*On fail goto*//*Label 250*/ 7288, // Rule ID 281 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 281,
+ GIR_Done,
+ // Label 250: @7288
+ GIM_Try, /*On fail goto*//*Label 251*/ 7363, // Rule ID 294 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 294,
+ GIR_Done,
+ // Label 251: @7363
+ GIM_Try, /*On fail goto*//*Label 252*/ 7438, // Rule ID 296 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 296,
+ GIR_Done,
+ // Label 252: @7438
+ GIM_Try, /*On fail goto*//*Label 253*/ 7515, // Rule ID 414 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 414,
+ GIR_Done,
+ // Label 253: @7515
+ GIM_Try, /*On fail goto*//*Label 254*/ 7592, // Rule ID 416 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i32] } (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 416,
+ GIR_Done,
+ // Label 254: @7592
+ GIM_Try, /*On fail goto*//*Label 255*/ 7636, // Rule ID 273 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 273,
+ GIR_Done,
+ // Label 255: @7636
+ GIM_Try, /*On fail goto*//*Label 256*/ 7680, // Rule ID 275 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 275,
+ GIR_Done,
+ // Label 256: @7680
+ GIM_Try, /*On fail goto*//*Label 257*/ 7724, // Rule ID 288 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 288,
+ GIR_Done,
+ // Label 257: @7724
+ GIM_Try, /*On fail goto*//*Label 258*/ 7768, // Rule ID 290 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 290,
+ GIR_Done,
+ // Label 258: @7768
+ GIM_Try, /*On fail goto*//*Label 259*/ 7814, // Rule ID 408 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 408,
+ GIR_Done,
+ // Label 259: @7814
+ GIM_Try, /*On fail goto*//*Label 260*/ 7860, // Rule ID 410 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i32] } GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 410,
+ GIR_Done,
+ // Label 260: @7860
+ GIM_Reject,
+ // Label 247: @7861
+ GIM_Try, /*On fail goto*//*Label 261*/ 7936, // Rule ID 280 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 280,
+ GIR_Done,
+ // Label 261: @7936
+ GIM_Try, /*On fail goto*//*Label 262*/ 8011, // Rule ID 295 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 295,
+ GIR_Done,
+ // Label 262: @8011
+ GIM_Try, /*On fail goto*//*Label 263*/ 8088, // Rule ID 415 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (ld:{ *:[i64] } (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 415,
+ GIR_Done,
+ // Label 263: @8088
+ GIM_Try, /*On fail goto*//*Label 264*/ 8132, // Rule ID 274 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/1,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi8>> => (LBU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LBU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 274,
+ GIR_Done,
+ // Label 264: @8132
+ GIM_Try, /*On fail goto*//*Label 265*/ 8176, // Rule ID 289 //
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/2,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi16>> => (LHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LHU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 289,
+ GIR_Done,
+ // Label 265: @8176
+ GIM_Try, /*On fail goto*//*Label 266*/ 8222, // Rule ID 409 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (ld:{ *:[i64] } GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedload>><<P:Predicate_zextload>><<P:Predicate_zextloadi32>> => (LWU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::LWU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 409,
+ GIR_Done,
+ // Label 266: @8222
+ GIM_Reject,
+ // Label 248: @8223
+ GIM_Reject,
+ // Label 15: @8224
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 269*/ 9562,
+ /*GILLT_s32*//*Label 267*/ 8232,
+ /*GILLT_s64*//*Label 268*/ 9006,
+ // Label 267: @8232
+ GIM_Try, /*On fail goto*//*Label 270*/ 9005,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_Try, /*On fail goto*//*Label 271*/ 8311, // Rule ID 339 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 339,
+ GIR_Done,
+ // Label 271: @8311
+ GIM_Try, /*On fail goto*//*Label 272*/ 8381, // Rule ID 341 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 341,
+ GIR_Done,
+ // Label 272: @8381
+ GIM_Try, /*On fail goto*//*Label 273*/ 8451, // Rule ID 459 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 459,
+ GIR_Done,
+ // Label 273: @8451
+ GIM_Try, /*On fail goto*//*Label 274*/ 8521, // Rule ID 461 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 461,
+ GIR_Done,
+ // Label 274: @8521
+ GIM_Try, /*On fail goto*//*Label 275*/ 8591, // Rule ID 1151 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1151,
+ GIR_Done,
+ // Label 275: @8591
+ GIM_Try, /*On fail goto*//*Label 276*/ 8661, // Rule ID 1152 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1152,
+ GIR_Done,
+ // Label 276: @8661
+ GIM_Try, /*On fail goto*//*Label 277*/ 8731, // Rule ID 1153 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR32:{ *:[f32] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1153,
+ GIR_Done,
+ // Label 277: @8731
+ GIM_Try, /*On fail goto*//*Label 278*/ 8770, // Rule ID 333 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 333,
+ GIR_Done,
+ // Label 278: @8770
+ GIM_Try, /*On fail goto*//*Label 279*/ 8809, // Rule ID 335 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 335,
+ GIR_Done,
+ // Label 279: @8809
+ GIM_Try, /*On fail goto*//*Label 280*/ 8848, // Rule ID 453 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 453,
+ GIR_Done,
+ // Label 280: @8848
+ GIM_Try, /*On fail goto*//*Label 281*/ 8887, // Rule ID 455 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 455,
+ GIR_Done,
+ // Label 281: @8887
+ GIM_Try, /*On fail goto*//*Label 282*/ 8926, // Rule ID 1145 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1145,
+ GIR_Done,
+ // Label 282: @8926
+ GIM_Try, /*On fail goto*//*Label 283*/ 8965, // Rule ID 1146 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1146,
+ GIR_Done,
+ // Label 283: @8965
+ GIM_Try, /*On fail goto*//*Label 284*/ 9004, // Rule ID 1147 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSW FPR32:{ *:[f32] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1147,
+ GIR_Done,
+ // Label 284: @9004
+ GIM_Reject,
+ // Label 270: @9005
+ GIM_Reject,
+ // Label 268: @9006
+ GIM_Try, /*On fail goto*//*Label 285*/ 9561,
+ GIM_CheckMemorySizeEqualToLLT, /*MI*/0, /*MMO*/0, /*OpIdx*/0,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::NotAtomic,
+ GIM_Try, /*On fail goto*//*Label 286*/ 9085, // Rule ID 340 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 340,
+ GIR_Done,
+ // Label 286: @9085
+ GIM_Try, /*On fail goto*//*Label 287*/ 9155, // Rule ID 460 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st GPR:{ *:[i64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 460,
+ GIR_Done,
+ // Label 287: @9155
+ GIM_Try, /*On fail goto*//*Label 288*/ 9225, // Rule ID 1294 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1294,
+ GIR_Done,
+ // Label 288: @9225
+ GIM_Try, /*On fail goto*//*Label 289*/ 9295, // Rule ID 1295 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1295,
+ GIR_Done,
+ // Label 289: @9295
+ GIM_Try, /*On fail goto*//*Label 290*/ 9365, // Rule ID 1296 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_ADD,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (st FPR64:{ *:[f64] }:$rs2, (add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/2, // imm12
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, 1, 2, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1296,
+ GIR_Done,
+ // Label 290: @9365
+ GIM_Try, /*On fail goto*//*Label 291*/ 9404, // Rule ID 334 //
+ GIM_CheckFeatures, GIFBS_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SW GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SW,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 334,
+ GIR_Done,
+ // Label 291: @9404
+ GIM_Try, /*On fail goto*//*Label 292*/ 9443, // Rule ID 454 //
+ GIM_CheckFeatures, GIFBS_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (SD GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 454,
+ GIR_Done,
+ // Label 292: @9443
+ GIM_Try, /*On fail goto*//*Label 293*/ 9482, // Rule ID 1288 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1288,
+ GIR_Done,
+ // Label 293: @9482
+ GIM_Try, /*On fail goto*//*Label 294*/ 9521, // Rule ID 1289 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1289,
+ GIR_Done,
+ // Label 294: @9521
+ GIM_Try, /*On fail goto*//*Label 295*/ 9560, // Rule ID 1290 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (st FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1)<<P:Predicate_unindexedstore>><<P:Predicate_store>> => (FSD FPR64:{ *:[f64] }:$rs2, GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSD,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1290,
+ GIR_Done,
+ // Label 295: @9560
+ GIM_Reject,
+ // Label 285: @9561
+ GIM_Reject,
+ // Label 269: @9562
+ GIM_Reject,
+ // Label 16: @9563
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 298*/ 10607,
+ /*GILLT_s32*//*Label 296*/ 9571,
+ /*GILLT_s64*//*Label 297*/ 10259,
+ // Label 296: @9571
+ GIM_Try, /*On fail goto*//*Label 299*/ 10258,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 300*/ 9611, // Rule ID 650 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> => (AMOSWAP_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 650,
+ GIR_Done,
+ // Label 300: @9611
+ GIM_Try, /*On fail goto*//*Label 301*/ 9645, // Rule ID 652 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> => (AMOSWAP_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 652,
+ GIR_Done,
+ // Label 301: @9645
+ GIM_Try, /*On fail goto*//*Label 302*/ 9679, // Rule ID 653 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> => (AMOSWAP_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 653,
+ GIR_Done,
+ // Label 302: @9679
+ GIM_Try, /*On fail goto*//*Label 303*/ 9713, // Rule ID 655 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> => (AMOSWAP_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 655,
+ GIR_Done,
+ // Label 303: @9713
+ GIM_Try, /*On fail goto*//*Label 304*/ 9747, // Rule ID 656 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> => (AMOSWAP_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 656,
+ GIR_Done,
+ // Label 304: @9747
+ GIM_Try, /*On fail goto*//*Label 305*/ 9781, // Rule ID 658 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> => (AMOSWAP_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 658,
+ GIR_Done,
+ // Label 305: @9781
+ GIM_Try, /*On fail goto*//*Label 306*/ 9815, // Rule ID 659 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> => (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 659,
+ GIR_Done,
+ // Label 306: @9815
+ GIM_Try, /*On fail goto*//*Label 307*/ 9849, // Rule ID 661 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> => (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 661,
+ GIR_Done,
+ // Label 307: @9849
+ GIM_Try, /*On fail goto*//*Label 308*/ 9883, // Rule ID 662 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> => (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 662,
+ GIR_Done,
+ // Label 308: @9883
+ GIM_Try, /*On fail goto*//*Label 309*/ 9917, // Rule ID 664 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> => (AMOSWAP_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 664,
+ GIR_Done,
+ // Label 309: @9917
+ GIM_Try, /*On fail goto*//*Label 310*/ 9951, // Rule ID 878 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> => (AMOSWAP_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 878,
+ GIR_Done,
+ // Label 310: @9951
+ GIM_Try, /*On fail goto*//*Label 311*/ 9985, // Rule ID 880 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> => (AMOSWAP_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 880,
+ GIR_Done,
+ // Label 311: @9985
+ GIM_Try, /*On fail goto*//*Label 312*/ 10019, // Rule ID 881 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> => (AMOSWAP_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 881,
+ GIR_Done,
+ // Label 312: @10019
+ GIM_Try, /*On fail goto*//*Label 313*/ 10053, // Rule ID 883 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> => (AMOSWAP_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 883,
+ GIR_Done,
+ // Label 313: @10053
+ GIM_Try, /*On fail goto*//*Label 314*/ 10087, // Rule ID 884 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> => (AMOSWAP_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 884,
+ GIR_Done,
+ // Label 314: @10087
+ GIM_Try, /*On fail goto*//*Label 315*/ 10121, // Rule ID 886 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> => (AMOSWAP_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 886,
+ GIR_Done,
+ // Label 315: @10121
+ GIM_Try, /*On fail goto*//*Label 316*/ 10155, // Rule ID 887 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> => (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 887,
+ GIR_Done,
+ // Label 316: @10155
+ GIM_Try, /*On fail goto*//*Label 317*/ 10189, // Rule ID 889 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> => (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 889,
+ GIR_Done,
+ // Label 317: @10189
+ GIM_Try, /*On fail goto*//*Label 318*/ 10223, // Rule ID 890 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> => (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 890,
+ GIR_Done,
+ // Label 318: @10223
+ GIM_Try, /*On fail goto*//*Label 319*/ 10257, // Rule ID 892 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> => (AMOSWAP_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 892,
+ GIR_Done,
+ // Label 319: @10257
+ GIM_Reject,
+ // Label 299: @10258
+ GIM_Reject,
+ // Label 297: @10259
+ GIM_Try, /*On fail goto*//*Label 320*/ 10606,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 321*/ 10299, // Rule ID 651 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_monotonic>> => (AMOSWAP_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 651,
+ GIR_Done,
+ // Label 321: @10299
+ GIM_Try, /*On fail goto*//*Label 322*/ 10333, // Rule ID 654 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acquire>> => (AMOSWAP_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 654,
+ GIR_Done,
+ // Label 322: @10333
+ GIM_Try, /*On fail goto*//*Label 323*/ 10367, // Rule ID 657 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_release>> => (AMOSWAP_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 657,
+ GIR_Done,
+ // Label 323: @10367
+ GIM_Try, /*On fail goto*//*Label 324*/ 10401, // Rule ID 660 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_acq_rel>> => (AMOSWAP_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 660,
+ GIR_Done,
+ // Label 324: @10401
+ GIM_Try, /*On fail goto*//*Label 325*/ 10435, // Rule ID 663 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_32>><<P:Predicate_atomic_swap_32_seq_cst>> => (AMOSWAP_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 663,
+ GIR_Done,
+ // Label 325: @10435
+ GIM_Try, /*On fail goto*//*Label 326*/ 10469, // Rule ID 879 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_monotonic>> => (AMOSWAP_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 879,
+ GIR_Done,
+ // Label 326: @10469
+ GIM_Try, /*On fail goto*//*Label 327*/ 10503, // Rule ID 882 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acquire>> => (AMOSWAP_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 882,
+ GIR_Done,
+ // Label 327: @10503
+ GIM_Try, /*On fail goto*//*Label 328*/ 10537, // Rule ID 885 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_release>> => (AMOSWAP_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 885,
+ GIR_Done,
+ // Label 328: @10537
+ GIM_Try, /*On fail goto*//*Label 329*/ 10571, // Rule ID 888 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_acq_rel>> => (AMOSWAP_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 888,
+ GIR_Done,
+ // Label 329: @10571
+ GIM_Try, /*On fail goto*//*Label 330*/ 10605, // Rule ID 891 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_swap:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_swap_64>><<P:Predicate_atomic_swap_64_seq_cst>> => (AMOSWAP_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOSWAP_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 891,
+ GIR_Done,
+ // Label 330: @10605
+ GIM_Reject,
+ // Label 320: @10606
+ GIM_Reject,
+ // Label 298: @10607
+ GIM_Reject,
+ // Label 17: @10608
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 333*/ 11652,
+ /*GILLT_s32*//*Label 331*/ 10616,
+ /*GILLT_s64*//*Label 332*/ 11304,
+ // Label 331: @10616
+ GIM_Try, /*On fail goto*//*Label 334*/ 11303,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 335*/ 10656, // Rule ID 665 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> => (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 665,
+ GIR_Done,
+ // Label 335: @10656
+ GIM_Try, /*On fail goto*//*Label 336*/ 10690, // Rule ID 667 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> => (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 667,
+ GIR_Done,
+ // Label 336: @10690
+ GIM_Try, /*On fail goto*//*Label 337*/ 10724, // Rule ID 668 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> => (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 668,
+ GIR_Done,
+ // Label 337: @10724
+ GIM_Try, /*On fail goto*//*Label 338*/ 10758, // Rule ID 670 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> => (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 670,
+ GIR_Done,
+ // Label 338: @10758
+ GIM_Try, /*On fail goto*//*Label 339*/ 10792, // Rule ID 671 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> => (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 671,
+ GIR_Done,
+ // Label 339: @10792
+ GIM_Try, /*On fail goto*//*Label 340*/ 10826, // Rule ID 673 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> => (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 673,
+ GIR_Done,
+ // Label 340: @10826
+ GIM_Try, /*On fail goto*//*Label 341*/ 10860, // Rule ID 674 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 674,
+ GIR_Done,
+ // Label 341: @10860
+ GIM_Try, /*On fail goto*//*Label 342*/ 10894, // Rule ID 676 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 676,
+ GIR_Done,
+ // Label 342: @10894
+ GIM_Try, /*On fail goto*//*Label 343*/ 10928, // Rule ID 677 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 677,
+ GIR_Done,
+ // Label 343: @10928
+ GIM_Try, /*On fail goto*//*Label 344*/ 10962, // Rule ID 679 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 679,
+ GIR_Done,
+ // Label 344: @10962
+ GIM_Try, /*On fail goto*//*Label 345*/ 10996, // Rule ID 893 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> => (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 893,
+ GIR_Done,
+ // Label 345: @10996
+ GIM_Try, /*On fail goto*//*Label 346*/ 11030, // Rule ID 895 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> => (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 895,
+ GIR_Done,
+ // Label 346: @11030
+ GIM_Try, /*On fail goto*//*Label 347*/ 11064, // Rule ID 896 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> => (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 896,
+ GIR_Done,
+ // Label 347: @11064
+ GIM_Try, /*On fail goto*//*Label 348*/ 11098, // Rule ID 898 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> => (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 898,
+ GIR_Done,
+ // Label 348: @11098
+ GIM_Try, /*On fail goto*//*Label 349*/ 11132, // Rule ID 899 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> => (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 899,
+ GIR_Done,
+ // Label 349: @11132
+ GIM_Try, /*On fail goto*//*Label 350*/ 11166, // Rule ID 901 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> => (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 901,
+ GIR_Done,
+ // Label 350: @11166
+ GIM_Try, /*On fail goto*//*Label 351*/ 11200, // Rule ID 902 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 902,
+ GIR_Done,
+ // Label 351: @11200
+ GIM_Try, /*On fail goto*//*Label 352*/ 11234, // Rule ID 904 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 904,
+ GIR_Done,
+ // Label 352: @11234
+ GIM_Try, /*On fail goto*//*Label 353*/ 11268, // Rule ID 905 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 905,
+ GIR_Done,
+ // Label 353: @11268
+ GIM_Try, /*On fail goto*//*Label 354*/ 11302, // Rule ID 907 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 907,
+ GIR_Done,
+ // Label 354: @11302
+ GIM_Reject,
+ // Label 334: @11303
+ GIM_Reject,
+ // Label 332: @11304
+ GIM_Try, /*On fail goto*//*Label 355*/ 11651,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 356*/ 11344, // Rule ID 666 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_monotonic>> => (AMOADD_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 666,
+ GIR_Done,
+ // Label 356: @11344
+ GIM_Try, /*On fail goto*//*Label 357*/ 11378, // Rule ID 669 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acquire>> => (AMOADD_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 669,
+ GIR_Done,
+ // Label 357: @11378
+ GIM_Try, /*On fail goto*//*Label 358*/ 11412, // Rule ID 672 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_release>> => (AMOADD_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 672,
+ GIR_Done,
+ // Label 358: @11412
+ GIM_Try, /*On fail goto*//*Label 359*/ 11446, // Rule ID 675 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 675,
+ GIR_Done,
+ // Label 359: @11446
+ GIM_Try, /*On fail goto*//*Label 360*/ 11480, // Rule ID 678 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_32>><<P:Predicate_atomic_load_add_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 678,
+ GIR_Done,
+ // Label 360: @11480
+ GIM_Try, /*On fail goto*//*Label 361*/ 11514, // Rule ID 894 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_monotonic>> => (AMOADD_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 894,
+ GIR_Done,
+ // Label 361: @11514
+ GIM_Try, /*On fail goto*//*Label 362*/ 11548, // Rule ID 897 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acquire>> => (AMOADD_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 897,
+ GIR_Done,
+ // Label 362: @11548
+ GIM_Try, /*On fail goto*//*Label 363*/ 11582, // Rule ID 900 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_release>> => (AMOADD_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 900,
+ GIR_Done,
+ // Label 363: @11582
+ GIM_Try, /*On fail goto*//*Label 364*/ 11616, // Rule ID 903 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 903,
+ GIR_Done,
+ // Label 364: @11616
+ GIM_Try, /*On fail goto*//*Label 365*/ 11650, // Rule ID 906 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_add:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_add_64>><<P:Predicate_atomic_load_add_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 906,
+ GIR_Done,
+ // Label 365: @11650
+ GIM_Reject,
+ // Label 355: @11651
+ GIM_Reject,
+ // Label 333: @11652
+ GIM_Reject,
+ // Label 18: @11653
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 368*/ 13807,
+ /*GILLT_s32*//*Label 366*/ 11661,
+ /*GILLT_s64*//*Label 367*/ 13089,
+ // Label 366: @11661
+ GIM_Try, /*On fail goto*//*Label 369*/ 13088,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 370*/ 11738, // Rule ID 785 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> => (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 785,
+ GIR_Done,
+ // Label 370: @11738
+ GIM_Try, /*On fail goto*//*Label 371*/ 11809, // Rule ID 787 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> => (AMOADD_W:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 787,
+ GIR_Done,
+ // Label 371: @11809
+ GIM_Try, /*On fail goto*//*Label 372*/ 11880, // Rule ID 788 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> => (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 788,
+ GIR_Done,
+ // Label 372: @11880
+ GIM_Try, /*On fail goto*//*Label 373*/ 11951, // Rule ID 790 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> => (AMOADD_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 790,
+ GIR_Done,
+ // Label 373: @11951
+ GIM_Try, /*On fail goto*//*Label 374*/ 12022, // Rule ID 791 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> => (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 791,
+ GIR_Done,
+ // Label 374: @12022
+ GIM_Try, /*On fail goto*//*Label 375*/ 12093, // Rule ID 793 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> => (AMOADD_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 793,
+ GIR_Done,
+ // Label 375: @12093
+ GIM_Try, /*On fail goto*//*Label 376*/ 12164, // Rule ID 794 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 794,
+ GIR_Done,
+ // Label 376: @12164
+ GIM_Try, /*On fail goto*//*Label 377*/ 12235, // Rule ID 796 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 796,
+ GIR_Done,
+ // Label 377: @12235
+ GIM_Try, /*On fail goto*//*Label 378*/ 12306, // Rule ID 797 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 797,
+ GIR_Done,
+ // Label 378: @12306
+ GIM_Try, /*On fail goto*//*Label 379*/ 12377, // Rule ID 799 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 799,
+ GIR_Done,
+ // Label 379: @12377
+ GIM_Try, /*On fail goto*//*Label 380*/ 12448, // Rule ID 1013 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> => (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1013,
+ GIR_Done,
+ // Label 380: @12448
+ GIM_Try, /*On fail goto*//*Label 381*/ 12519, // Rule ID 1015 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> => (AMOADD_D:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1015,
+ GIR_Done,
+ // Label 381: @12519
+ GIM_Try, /*On fail goto*//*Label 382*/ 12590, // Rule ID 1016 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> => (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1016,
+ GIR_Done,
+ // Label 382: @12590
+ GIM_Try, /*On fail goto*//*Label 383*/ 12661, // Rule ID 1018 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> => (AMOADD_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1018,
+ GIR_Done,
+ // Label 383: @12661
+ GIM_Try, /*On fail goto*//*Label 384*/ 12732, // Rule ID 1019 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> => (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1019,
+ GIR_Done,
+ // Label 384: @12732
+ GIM_Try, /*On fail goto*//*Label 385*/ 12803, // Rule ID 1021 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> => (AMOADD_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1021,
+ GIR_Done,
+ // Label 385: @12803
+ GIM_Try, /*On fail goto*//*Label 386*/ 12874, // Rule ID 1022 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1022,
+ GIR_Done,
+ // Label 386: @12874
+ GIM_Try, /*On fail goto*//*Label 387*/ 12945, // Rule ID 1024 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1024,
+ GIR_Done,
+ // Label 387: @12945
+ GIM_Try, /*On fail goto*//*Label 388*/ 13016, // Rule ID 1025 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1025,
+ GIR_Done,
+ // Label 388: @13016
+ GIM_Try, /*On fail goto*//*Label 389*/ 13087, // Rule ID 1027 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i32] } GPR:{ *:[i32] }:$addr, GPR:{ *:[i32] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$addr, (SUB:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1027,
+ GIR_Done,
+ // Label 389: @13087
+ GIM_Reject,
+ // Label 369: @13088
+ GIM_Reject,
+ // Label 367: @13089
+ GIM_Try, /*On fail goto*//*Label 390*/ 13806,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 391*/ 13166, // Rule ID 786 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_monotonic>> => (AMOADD_W:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 786,
+ GIR_Done,
+ // Label 391: @13166
+ GIM_Try, /*On fail goto*//*Label 392*/ 13237, // Rule ID 789 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acquire>> => (AMOADD_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 789,
+ GIR_Done,
+ // Label 392: @13237
+ GIM_Try, /*On fail goto*//*Label 393*/ 13308, // Rule ID 792 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_release>> => (AMOADD_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 792,
+ GIR_Done,
+ // Label 393: @13308
+ GIM_Try, /*On fail goto*//*Label 394*/ 13379, // Rule ID 795 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_acq_rel>> => (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 795,
+ GIR_Done,
+ // Label 394: @13379
+ GIM_Try, /*On fail goto*//*Label 395*/ 13450, // Rule ID 798 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_32>><<P:Predicate_atomic_load_sub_32_seq_cst>> => (AMOADD_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_W_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 798,
+ GIR_Done,
+ // Label 395: @13450
+ GIM_Try, /*On fail goto*//*Label 396*/ 13521, // Rule ID 1014 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_monotonic>> => (AMOADD_D:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1014,
+ GIR_Done,
+ // Label 396: @13521
+ GIM_Try, /*On fail goto*//*Label 397*/ 13592, // Rule ID 1017 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acquire>> => (AMOADD_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1017,
+ GIR_Done,
+ // Label 397: @13592
+ GIM_Try, /*On fail goto*//*Label 398*/ 13663, // Rule ID 1020 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_release>> => (AMOADD_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1020,
+ GIR_Done,
+ // Label 398: @13663
+ GIM_Try, /*On fail goto*//*Label 399*/ 13734, // Rule ID 1023 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_acq_rel>> => (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1023,
+ GIR_Done,
+ // Label 399: @13734
+ GIM_Try, /*On fail goto*//*Label 400*/ 13805, // Rule ID 1026 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] addr
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_sub:{ *:[i64] } GPR:{ *:[i64] }:$addr, GPR:{ *:[i64] }:$incr)<<P:Predicate_atomic_load_sub_64>><<P:Predicate_atomic_load_sub_64_seq_cst>> => (AMOADD_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$addr, (SUB:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$incr))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SUB,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddRegister, /*InsnID*/1, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // incr
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AMOADD_D_AQ_RL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // addr
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_MergeMemOperands, /*InsnID*/0, /*MergeInsnID's*/0, GIU_MergeMemOperands_EndOfList,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1026,
+ GIR_Done,
+ // Label 400: @13805
+ GIM_Reject,
+ // Label 390: @13806
+ GIM_Reject,
+ // Label 368: @13807
+ GIM_Reject,
+ // Label 19: @13808
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 403*/ 14852,
+ /*GILLT_s32*//*Label 401*/ 13816,
+ /*GILLT_s64*//*Label 402*/ 14504,
+ // Label 401: @13816
+ GIM_Try, /*On fail goto*//*Label 404*/ 14503,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 405*/ 13856, // Rule ID 680 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> => (AMOAND_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 680,
+ GIR_Done,
+ // Label 405: @13856
+ GIM_Try, /*On fail goto*//*Label 406*/ 13890, // Rule ID 682 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> => (AMOAND_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 682,
+ GIR_Done,
+ // Label 406: @13890
+ GIM_Try, /*On fail goto*//*Label 407*/ 13924, // Rule ID 683 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> => (AMOAND_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 683,
+ GIR_Done,
+ // Label 407: @13924
+ GIM_Try, /*On fail goto*//*Label 408*/ 13958, // Rule ID 685 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> => (AMOAND_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 685,
+ GIR_Done,
+ // Label 408: @13958
+ GIM_Try, /*On fail goto*//*Label 409*/ 13992, // Rule ID 686 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> => (AMOAND_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 686,
+ GIR_Done,
+ // Label 409: @13992
+ GIM_Try, /*On fail goto*//*Label 410*/ 14026, // Rule ID 688 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> => (AMOAND_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 688,
+ GIR_Done,
+ // Label 410: @14026
+ GIM_Try, /*On fail goto*//*Label 411*/ 14060, // Rule ID 689 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> => (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 689,
+ GIR_Done,
+ // Label 411: @14060
+ GIM_Try, /*On fail goto*//*Label 412*/ 14094, // Rule ID 691 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> => (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 691,
+ GIR_Done,
+ // Label 412: @14094
+ GIM_Try, /*On fail goto*//*Label 413*/ 14128, // Rule ID 692 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> => (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 692,
+ GIR_Done,
+ // Label 413: @14128
+ GIM_Try, /*On fail goto*//*Label 414*/ 14162, // Rule ID 694 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> => (AMOAND_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 694,
+ GIR_Done,
+ // Label 414: @14162
+ GIM_Try, /*On fail goto*//*Label 415*/ 14196, // Rule ID 908 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> => (AMOAND_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 908,
+ GIR_Done,
+ // Label 415: @14196
+ GIM_Try, /*On fail goto*//*Label 416*/ 14230, // Rule ID 910 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> => (AMOAND_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 910,
+ GIR_Done,
+ // Label 416: @14230
+ GIM_Try, /*On fail goto*//*Label 417*/ 14264, // Rule ID 911 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> => (AMOAND_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 911,
+ GIR_Done,
+ // Label 417: @14264
+ GIM_Try, /*On fail goto*//*Label 418*/ 14298, // Rule ID 913 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> => (AMOAND_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 913,
+ GIR_Done,
+ // Label 418: @14298
+ GIM_Try, /*On fail goto*//*Label 419*/ 14332, // Rule ID 914 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> => (AMOAND_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 914,
+ GIR_Done,
+ // Label 419: @14332
+ GIM_Try, /*On fail goto*//*Label 420*/ 14366, // Rule ID 916 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> => (AMOAND_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 916,
+ GIR_Done,
+ // Label 420: @14366
+ GIM_Try, /*On fail goto*//*Label 421*/ 14400, // Rule ID 917 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> => (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 917,
+ GIR_Done,
+ // Label 421: @14400
+ GIM_Try, /*On fail goto*//*Label 422*/ 14434, // Rule ID 919 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> => (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 919,
+ GIR_Done,
+ // Label 422: @14434
+ GIM_Try, /*On fail goto*//*Label 423*/ 14468, // Rule ID 920 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> => (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 920,
+ GIR_Done,
+ // Label 423: @14468
+ GIM_Try, /*On fail goto*//*Label 424*/ 14502, // Rule ID 922 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> => (AMOAND_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 922,
+ GIR_Done,
+ // Label 424: @14502
+ GIM_Reject,
+ // Label 404: @14503
+ GIM_Reject,
+ // Label 402: @14504
+ GIM_Try, /*On fail goto*//*Label 425*/ 14851,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 426*/ 14544, // Rule ID 681 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_monotonic>> => (AMOAND_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 681,
+ GIR_Done,
+ // Label 426: @14544
+ GIM_Try, /*On fail goto*//*Label 427*/ 14578, // Rule ID 684 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acquire>> => (AMOAND_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 684,
+ GIR_Done,
+ // Label 427: @14578
+ GIM_Try, /*On fail goto*//*Label 428*/ 14612, // Rule ID 687 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_release>> => (AMOAND_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 687,
+ GIR_Done,
+ // Label 428: @14612
+ GIM_Try, /*On fail goto*//*Label 429*/ 14646, // Rule ID 690 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_acq_rel>> => (AMOAND_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 690,
+ GIR_Done,
+ // Label 429: @14646
+ GIM_Try, /*On fail goto*//*Label 430*/ 14680, // Rule ID 693 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_32>><<P:Predicate_atomic_load_and_32_seq_cst>> => (AMOAND_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 693,
+ GIR_Done,
+ // Label 430: @14680
+ GIM_Try, /*On fail goto*//*Label 431*/ 14714, // Rule ID 909 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_monotonic>> => (AMOAND_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 909,
+ GIR_Done,
+ // Label 431: @14714
+ GIM_Try, /*On fail goto*//*Label 432*/ 14748, // Rule ID 912 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acquire>> => (AMOAND_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 912,
+ GIR_Done,
+ // Label 432: @14748
+ GIM_Try, /*On fail goto*//*Label 433*/ 14782, // Rule ID 915 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_release>> => (AMOAND_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 915,
+ GIR_Done,
+ // Label 433: @14782
+ GIM_Try, /*On fail goto*//*Label 434*/ 14816, // Rule ID 918 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_acq_rel>> => (AMOAND_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 918,
+ GIR_Done,
+ // Label 434: @14816
+ GIM_Try, /*On fail goto*//*Label 435*/ 14850, // Rule ID 921 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_and:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_and_64>><<P:Predicate_atomic_load_and_64_seq_cst>> => (AMOAND_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOAND_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 921,
+ GIR_Done,
+ // Label 435: @14850
+ GIM_Reject,
+ // Label 425: @14851
+ GIM_Reject,
+ // Label 403: @14852
+ GIM_Reject,
+ // Label 20: @14853
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 438*/ 15897,
+ /*GILLT_s32*//*Label 436*/ 14861,
+ /*GILLT_s64*//*Label 437*/ 15549,
+ // Label 436: @14861
+ GIM_Try, /*On fail goto*//*Label 439*/ 15548,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 440*/ 14901, // Rule ID 695 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> => (AMOOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 695,
+ GIR_Done,
+ // Label 440: @14901
+ GIM_Try, /*On fail goto*//*Label 441*/ 14935, // Rule ID 697 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> => (AMOOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 697,
+ GIR_Done,
+ // Label 441: @14935
+ GIM_Try, /*On fail goto*//*Label 442*/ 14969, // Rule ID 698 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> => (AMOOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 698,
+ GIR_Done,
+ // Label 442: @14969
+ GIM_Try, /*On fail goto*//*Label 443*/ 15003, // Rule ID 700 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> => (AMOOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 700,
+ GIR_Done,
+ // Label 443: @15003
+ GIM_Try, /*On fail goto*//*Label 444*/ 15037, // Rule ID 701 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> => (AMOOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 701,
+ GIR_Done,
+ // Label 444: @15037
+ GIM_Try, /*On fail goto*//*Label 445*/ 15071, // Rule ID 703 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> => (AMOOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 703,
+ GIR_Done,
+ // Label 445: @15071
+ GIM_Try, /*On fail goto*//*Label 446*/ 15105, // Rule ID 704 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> => (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 704,
+ GIR_Done,
+ // Label 446: @15105
+ GIM_Try, /*On fail goto*//*Label 447*/ 15139, // Rule ID 706 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> => (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 706,
+ GIR_Done,
+ // Label 447: @15139
+ GIM_Try, /*On fail goto*//*Label 448*/ 15173, // Rule ID 707 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> => (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 707,
+ GIR_Done,
+ // Label 448: @15173
+ GIM_Try, /*On fail goto*//*Label 449*/ 15207, // Rule ID 709 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> => (AMOOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 709,
+ GIR_Done,
+ // Label 449: @15207
+ GIM_Try, /*On fail goto*//*Label 450*/ 15241, // Rule ID 923 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> => (AMOOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 923,
+ GIR_Done,
+ // Label 450: @15241
+ GIM_Try, /*On fail goto*//*Label 451*/ 15275, // Rule ID 925 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> => (AMOOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 925,
+ GIR_Done,
+ // Label 451: @15275
+ GIM_Try, /*On fail goto*//*Label 452*/ 15309, // Rule ID 926 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> => (AMOOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 926,
+ GIR_Done,
+ // Label 452: @15309
+ GIM_Try, /*On fail goto*//*Label 453*/ 15343, // Rule ID 928 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> => (AMOOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 928,
+ GIR_Done,
+ // Label 453: @15343
+ GIM_Try, /*On fail goto*//*Label 454*/ 15377, // Rule ID 929 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> => (AMOOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 929,
+ GIR_Done,
+ // Label 454: @15377
+ GIM_Try, /*On fail goto*//*Label 455*/ 15411, // Rule ID 931 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> => (AMOOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 931,
+ GIR_Done,
+ // Label 455: @15411
+ GIM_Try, /*On fail goto*//*Label 456*/ 15445, // Rule ID 932 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> => (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 932,
+ GIR_Done,
+ // Label 456: @15445
+ GIM_Try, /*On fail goto*//*Label 457*/ 15479, // Rule ID 934 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> => (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 934,
+ GIR_Done,
+ // Label 457: @15479
+ GIM_Try, /*On fail goto*//*Label 458*/ 15513, // Rule ID 935 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> => (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 935,
+ GIR_Done,
+ // Label 458: @15513
+ GIM_Try, /*On fail goto*//*Label 459*/ 15547, // Rule ID 937 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> => (AMOOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 937,
+ GIR_Done,
+ // Label 459: @15547
+ GIM_Reject,
+ // Label 439: @15548
+ GIM_Reject,
+ // Label 437: @15549
+ GIM_Try, /*On fail goto*//*Label 460*/ 15896,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 461*/ 15589, // Rule ID 696 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_monotonic>> => (AMOOR_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 696,
+ GIR_Done,
+ // Label 461: @15589
+ GIM_Try, /*On fail goto*//*Label 462*/ 15623, // Rule ID 699 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acquire>> => (AMOOR_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 699,
+ GIR_Done,
+ // Label 462: @15623
+ GIM_Try, /*On fail goto*//*Label 463*/ 15657, // Rule ID 702 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_release>> => (AMOOR_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 702,
+ GIR_Done,
+ // Label 463: @15657
+ GIM_Try, /*On fail goto*//*Label 464*/ 15691, // Rule ID 705 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_acq_rel>> => (AMOOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 705,
+ GIR_Done,
+ // Label 464: @15691
+ GIM_Try, /*On fail goto*//*Label 465*/ 15725, // Rule ID 708 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_32>><<P:Predicate_atomic_load_or_32_seq_cst>> => (AMOOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 708,
+ GIR_Done,
+ // Label 465: @15725
+ GIM_Try, /*On fail goto*//*Label 466*/ 15759, // Rule ID 924 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_monotonic>> => (AMOOR_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 924,
+ GIR_Done,
+ // Label 466: @15759
+ GIM_Try, /*On fail goto*//*Label 467*/ 15793, // Rule ID 927 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acquire>> => (AMOOR_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 927,
+ GIR_Done,
+ // Label 467: @15793
+ GIM_Try, /*On fail goto*//*Label 468*/ 15827, // Rule ID 930 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_release>> => (AMOOR_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 930,
+ GIR_Done,
+ // Label 468: @15827
+ GIM_Try, /*On fail goto*//*Label 469*/ 15861, // Rule ID 933 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_acq_rel>> => (AMOOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 933,
+ GIR_Done,
+ // Label 469: @15861
+ GIM_Try, /*On fail goto*//*Label 470*/ 15895, // Rule ID 936 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_or:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_or_64>><<P:Predicate_atomic_load_or_64_seq_cst>> => (AMOOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 936,
+ GIR_Done,
+ // Label 470: @15895
+ GIM_Reject,
+ // Label 460: @15896
+ GIM_Reject,
+ // Label 438: @15897
+ GIM_Reject,
+ // Label 21: @15898
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 473*/ 16942,
+ /*GILLT_s32*//*Label 471*/ 15906,
+ /*GILLT_s64*//*Label 472*/ 16594,
+ // Label 471: @15906
+ GIM_Try, /*On fail goto*//*Label 474*/ 16593,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 475*/ 15946, // Rule ID 710 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> => (AMOXOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 710,
+ GIR_Done,
+ // Label 475: @15946
+ GIM_Try, /*On fail goto*//*Label 476*/ 15980, // Rule ID 712 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> => (AMOXOR_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 712,
+ GIR_Done,
+ // Label 476: @15980
+ GIM_Try, /*On fail goto*//*Label 477*/ 16014, // Rule ID 713 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> => (AMOXOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 713,
+ GIR_Done,
+ // Label 477: @16014
+ GIM_Try, /*On fail goto*//*Label 478*/ 16048, // Rule ID 715 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> => (AMOXOR_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 715,
+ GIR_Done,
+ // Label 478: @16048
+ GIM_Try, /*On fail goto*//*Label 479*/ 16082, // Rule ID 716 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> => (AMOXOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 716,
+ GIR_Done,
+ // Label 479: @16082
+ GIM_Try, /*On fail goto*//*Label 480*/ 16116, // Rule ID 718 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> => (AMOXOR_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 718,
+ GIR_Done,
+ // Label 480: @16116
+ GIM_Try, /*On fail goto*//*Label 481*/ 16150, // Rule ID 719 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> => (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 719,
+ GIR_Done,
+ // Label 481: @16150
+ GIM_Try, /*On fail goto*//*Label 482*/ 16184, // Rule ID 721 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> => (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 721,
+ GIR_Done,
+ // Label 482: @16184
+ GIM_Try, /*On fail goto*//*Label 483*/ 16218, // Rule ID 722 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> => (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 722,
+ GIR_Done,
+ // Label 483: @16218
+ GIM_Try, /*On fail goto*//*Label 484*/ 16252, // Rule ID 724 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> => (AMOXOR_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 724,
+ GIR_Done,
+ // Label 484: @16252
+ GIM_Try, /*On fail goto*//*Label 485*/ 16286, // Rule ID 938 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> => (AMOXOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 938,
+ GIR_Done,
+ // Label 485: @16286
+ GIM_Try, /*On fail goto*//*Label 486*/ 16320, // Rule ID 940 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> => (AMOXOR_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 940,
+ GIR_Done,
+ // Label 486: @16320
+ GIM_Try, /*On fail goto*//*Label 487*/ 16354, // Rule ID 941 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> => (AMOXOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 941,
+ GIR_Done,
+ // Label 487: @16354
+ GIM_Try, /*On fail goto*//*Label 488*/ 16388, // Rule ID 943 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> => (AMOXOR_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 943,
+ GIR_Done,
+ // Label 488: @16388
+ GIM_Try, /*On fail goto*//*Label 489*/ 16422, // Rule ID 944 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> => (AMOXOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 944,
+ GIR_Done,
+ // Label 489: @16422
+ GIM_Try, /*On fail goto*//*Label 490*/ 16456, // Rule ID 946 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> => (AMOXOR_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 946,
+ GIR_Done,
+ // Label 490: @16456
+ GIM_Try, /*On fail goto*//*Label 491*/ 16490, // Rule ID 947 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> => (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 947,
+ GIR_Done,
+ // Label 491: @16490
+ GIM_Try, /*On fail goto*//*Label 492*/ 16524, // Rule ID 949 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> => (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 949,
+ GIR_Done,
+ // Label 492: @16524
+ GIM_Try, /*On fail goto*//*Label 493*/ 16558, // Rule ID 950 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> => (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 950,
+ GIR_Done,
+ // Label 493: @16558
+ GIM_Try, /*On fail goto*//*Label 494*/ 16592, // Rule ID 952 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> => (AMOXOR_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 952,
+ GIR_Done,
+ // Label 494: @16592
+ GIM_Reject,
+ // Label 474: @16593
+ GIM_Reject,
+ // Label 472: @16594
+ GIM_Try, /*On fail goto*//*Label 495*/ 16941,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 496*/ 16634, // Rule ID 711 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_monotonic>> => (AMOXOR_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 711,
+ GIR_Done,
+ // Label 496: @16634
+ GIM_Try, /*On fail goto*//*Label 497*/ 16668, // Rule ID 714 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acquire>> => (AMOXOR_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 714,
+ GIR_Done,
+ // Label 497: @16668
+ GIM_Try, /*On fail goto*//*Label 498*/ 16702, // Rule ID 717 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_release>> => (AMOXOR_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 717,
+ GIR_Done,
+ // Label 498: @16702
+ GIM_Try, /*On fail goto*//*Label 499*/ 16736, // Rule ID 720 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_acq_rel>> => (AMOXOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 720,
+ GIR_Done,
+ // Label 499: @16736
+ GIM_Try, /*On fail goto*//*Label 500*/ 16770, // Rule ID 723 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_32>><<P:Predicate_atomic_load_xor_32_seq_cst>> => (AMOXOR_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 723,
+ GIR_Done,
+ // Label 500: @16770
+ GIM_Try, /*On fail goto*//*Label 501*/ 16804, // Rule ID 939 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_monotonic>> => (AMOXOR_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 939,
+ GIR_Done,
+ // Label 501: @16804
+ GIM_Try, /*On fail goto*//*Label 502*/ 16838, // Rule ID 942 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acquire>> => (AMOXOR_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 942,
+ GIR_Done,
+ // Label 502: @16838
+ GIM_Try, /*On fail goto*//*Label 503*/ 16872, // Rule ID 945 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_release>> => (AMOXOR_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 945,
+ GIR_Done,
+ // Label 503: @16872
+ GIM_Try, /*On fail goto*//*Label 504*/ 16906, // Rule ID 948 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_acq_rel>> => (AMOXOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 948,
+ GIR_Done,
+ // Label 504: @16906
+ GIM_Try, /*On fail goto*//*Label 505*/ 16940, // Rule ID 951 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_xor:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_xor_64>><<P:Predicate_atomic_load_xor_64_seq_cst>> => (AMOXOR_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOXOR_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 951,
+ GIR_Done,
+ // Label 505: @16940
+ GIM_Reject,
+ // Label 495: @16941
+ GIM_Reject,
+ // Label 473: @16942
+ GIM_Reject,
+ // Label 22: @16943
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 508*/ 17987,
+ /*GILLT_s32*//*Label 506*/ 16951,
+ /*GILLT_s64*//*Label 507*/ 17639,
+ // Label 506: @16951
+ GIM_Try, /*On fail goto*//*Label 509*/ 17638,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 510*/ 16991, // Rule ID 725 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> => (AMOMAX_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 725,
+ GIR_Done,
+ // Label 510: @16991
+ GIM_Try, /*On fail goto*//*Label 511*/ 17025, // Rule ID 727 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> => (AMOMAX_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 727,
+ GIR_Done,
+ // Label 511: @17025
+ GIM_Try, /*On fail goto*//*Label 512*/ 17059, // Rule ID 728 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> => (AMOMAX_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 728,
+ GIR_Done,
+ // Label 512: @17059
+ GIM_Try, /*On fail goto*//*Label 513*/ 17093, // Rule ID 730 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> => (AMOMAX_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 730,
+ GIR_Done,
+ // Label 513: @17093
+ GIM_Try, /*On fail goto*//*Label 514*/ 17127, // Rule ID 731 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> => (AMOMAX_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 731,
+ GIR_Done,
+ // Label 514: @17127
+ GIM_Try, /*On fail goto*//*Label 515*/ 17161, // Rule ID 733 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> => (AMOMAX_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 733,
+ GIR_Done,
+ // Label 515: @17161
+ GIM_Try, /*On fail goto*//*Label 516*/ 17195, // Rule ID 734 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> => (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 734,
+ GIR_Done,
+ // Label 516: @17195
+ GIM_Try, /*On fail goto*//*Label 517*/ 17229, // Rule ID 736 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> => (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 736,
+ GIR_Done,
+ // Label 517: @17229
+ GIM_Try, /*On fail goto*//*Label 518*/ 17263, // Rule ID 737 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> => (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 737,
+ GIR_Done,
+ // Label 518: @17263
+ GIM_Try, /*On fail goto*//*Label 519*/ 17297, // Rule ID 739 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> => (AMOMAX_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 739,
+ GIR_Done,
+ // Label 519: @17297
+ GIM_Try, /*On fail goto*//*Label 520*/ 17331, // Rule ID 953 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> => (AMOMAX_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 953,
+ GIR_Done,
+ // Label 520: @17331
+ GIM_Try, /*On fail goto*//*Label 521*/ 17365, // Rule ID 955 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> => (AMOMAX_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 955,
+ GIR_Done,
+ // Label 521: @17365
+ GIM_Try, /*On fail goto*//*Label 522*/ 17399, // Rule ID 956 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> => (AMOMAX_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 956,
+ GIR_Done,
+ // Label 522: @17399
+ GIM_Try, /*On fail goto*//*Label 523*/ 17433, // Rule ID 958 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> => (AMOMAX_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 958,
+ GIR_Done,
+ // Label 523: @17433
+ GIM_Try, /*On fail goto*//*Label 524*/ 17467, // Rule ID 959 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> => (AMOMAX_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 959,
+ GIR_Done,
+ // Label 524: @17467
+ GIM_Try, /*On fail goto*//*Label 525*/ 17501, // Rule ID 961 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> => (AMOMAX_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 961,
+ GIR_Done,
+ // Label 525: @17501
+ GIM_Try, /*On fail goto*//*Label 526*/ 17535, // Rule ID 962 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> => (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 962,
+ GIR_Done,
+ // Label 526: @17535
+ GIM_Try, /*On fail goto*//*Label 527*/ 17569, // Rule ID 964 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> => (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 964,
+ GIR_Done,
+ // Label 527: @17569
+ GIM_Try, /*On fail goto*//*Label 528*/ 17603, // Rule ID 965 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> => (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 965,
+ GIR_Done,
+ // Label 528: @17603
+ GIM_Try, /*On fail goto*//*Label 529*/ 17637, // Rule ID 967 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> => (AMOMAX_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 967,
+ GIR_Done,
+ // Label 529: @17637
+ GIM_Reject,
+ // Label 509: @17638
+ GIM_Reject,
+ // Label 507: @17639
+ GIM_Try, /*On fail goto*//*Label 530*/ 17986,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 531*/ 17679, // Rule ID 726 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_monotonic>> => (AMOMAX_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 726,
+ GIR_Done,
+ // Label 531: @17679
+ GIM_Try, /*On fail goto*//*Label 532*/ 17713, // Rule ID 729 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acquire>> => (AMOMAX_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 729,
+ GIR_Done,
+ // Label 532: @17713
+ GIM_Try, /*On fail goto*//*Label 533*/ 17747, // Rule ID 732 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_release>> => (AMOMAX_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 732,
+ GIR_Done,
+ // Label 533: @17747
+ GIM_Try, /*On fail goto*//*Label 534*/ 17781, // Rule ID 735 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_acq_rel>> => (AMOMAX_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 735,
+ GIR_Done,
+ // Label 534: @17781
+ GIM_Try, /*On fail goto*//*Label 535*/ 17815, // Rule ID 738 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_32>><<P:Predicate_atomic_load_max_32_seq_cst>> => (AMOMAX_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 738,
+ GIR_Done,
+ // Label 535: @17815
+ GIM_Try, /*On fail goto*//*Label 536*/ 17849, // Rule ID 954 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_monotonic>> => (AMOMAX_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 954,
+ GIR_Done,
+ // Label 536: @17849
+ GIM_Try, /*On fail goto*//*Label 537*/ 17883, // Rule ID 957 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acquire>> => (AMOMAX_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 957,
+ GIR_Done,
+ // Label 537: @17883
+ GIM_Try, /*On fail goto*//*Label 538*/ 17917, // Rule ID 960 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_release>> => (AMOMAX_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 960,
+ GIR_Done,
+ // Label 538: @17917
+ GIM_Try, /*On fail goto*//*Label 539*/ 17951, // Rule ID 963 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_acq_rel>> => (AMOMAX_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 963,
+ GIR_Done,
+ // Label 539: @17951
+ GIM_Try, /*On fail goto*//*Label 540*/ 17985, // Rule ID 966 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_max:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_max_64>><<P:Predicate_atomic_load_max_64_seq_cst>> => (AMOMAX_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAX_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 966,
+ GIR_Done,
+ // Label 540: @17985
+ GIM_Reject,
+ // Label 530: @17986
+ GIM_Reject,
+ // Label 508: @17987
+ GIM_Reject,
+ // Label 23: @17988
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 543*/ 19032,
+ /*GILLT_s32*//*Label 541*/ 17996,
+ /*GILLT_s64*//*Label 542*/ 18684,
+ // Label 541: @17996
+ GIM_Try, /*On fail goto*//*Label 544*/ 18683,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 545*/ 18036, // Rule ID 740 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> => (AMOMIN_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 740,
+ GIR_Done,
+ // Label 545: @18036
+ GIM_Try, /*On fail goto*//*Label 546*/ 18070, // Rule ID 742 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> => (AMOMIN_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 742,
+ GIR_Done,
+ // Label 546: @18070
+ GIM_Try, /*On fail goto*//*Label 547*/ 18104, // Rule ID 743 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> => (AMOMIN_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 743,
+ GIR_Done,
+ // Label 547: @18104
+ GIM_Try, /*On fail goto*//*Label 548*/ 18138, // Rule ID 745 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> => (AMOMIN_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 745,
+ GIR_Done,
+ // Label 548: @18138
+ GIM_Try, /*On fail goto*//*Label 549*/ 18172, // Rule ID 746 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> => (AMOMIN_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 746,
+ GIR_Done,
+ // Label 549: @18172
+ GIM_Try, /*On fail goto*//*Label 550*/ 18206, // Rule ID 748 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> => (AMOMIN_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 748,
+ GIR_Done,
+ // Label 550: @18206
+ GIM_Try, /*On fail goto*//*Label 551*/ 18240, // Rule ID 749 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> => (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 749,
+ GIR_Done,
+ // Label 551: @18240
+ GIM_Try, /*On fail goto*//*Label 552*/ 18274, // Rule ID 751 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> => (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 751,
+ GIR_Done,
+ // Label 552: @18274
+ GIM_Try, /*On fail goto*//*Label 553*/ 18308, // Rule ID 752 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> => (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 752,
+ GIR_Done,
+ // Label 553: @18308
+ GIM_Try, /*On fail goto*//*Label 554*/ 18342, // Rule ID 754 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> => (AMOMIN_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 754,
+ GIR_Done,
+ // Label 554: @18342
+ GIM_Try, /*On fail goto*//*Label 555*/ 18376, // Rule ID 968 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> => (AMOMIN_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 968,
+ GIR_Done,
+ // Label 555: @18376
+ GIM_Try, /*On fail goto*//*Label 556*/ 18410, // Rule ID 970 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> => (AMOMIN_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 970,
+ GIR_Done,
+ // Label 556: @18410
+ GIM_Try, /*On fail goto*//*Label 557*/ 18444, // Rule ID 971 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> => (AMOMIN_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 971,
+ GIR_Done,
+ // Label 557: @18444
+ GIM_Try, /*On fail goto*//*Label 558*/ 18478, // Rule ID 973 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> => (AMOMIN_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 973,
+ GIR_Done,
+ // Label 558: @18478
+ GIM_Try, /*On fail goto*//*Label 559*/ 18512, // Rule ID 974 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> => (AMOMIN_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 974,
+ GIR_Done,
+ // Label 559: @18512
+ GIM_Try, /*On fail goto*//*Label 560*/ 18546, // Rule ID 976 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> => (AMOMIN_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 976,
+ GIR_Done,
+ // Label 560: @18546
+ GIM_Try, /*On fail goto*//*Label 561*/ 18580, // Rule ID 977 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> => (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 977,
+ GIR_Done,
+ // Label 561: @18580
+ GIM_Try, /*On fail goto*//*Label 562*/ 18614, // Rule ID 979 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> => (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 979,
+ GIR_Done,
+ // Label 562: @18614
+ GIM_Try, /*On fail goto*//*Label 563*/ 18648, // Rule ID 980 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> => (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 980,
+ GIR_Done,
+ // Label 563: @18648
+ GIM_Try, /*On fail goto*//*Label 564*/ 18682, // Rule ID 982 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> => (AMOMIN_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 982,
+ GIR_Done,
+ // Label 564: @18682
+ GIM_Reject,
+ // Label 544: @18683
+ GIM_Reject,
+ // Label 542: @18684
+ GIM_Try, /*On fail goto*//*Label 565*/ 19031,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 566*/ 18724, // Rule ID 741 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_monotonic>> => (AMOMIN_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 741,
+ GIR_Done,
+ // Label 566: @18724
+ GIM_Try, /*On fail goto*//*Label 567*/ 18758, // Rule ID 744 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acquire>> => (AMOMIN_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 744,
+ GIR_Done,
+ // Label 567: @18758
+ GIM_Try, /*On fail goto*//*Label 568*/ 18792, // Rule ID 747 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_release>> => (AMOMIN_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 747,
+ GIR_Done,
+ // Label 568: @18792
+ GIM_Try, /*On fail goto*//*Label 569*/ 18826, // Rule ID 750 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_acq_rel>> => (AMOMIN_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 750,
+ GIR_Done,
+ // Label 569: @18826
+ GIM_Try, /*On fail goto*//*Label 570*/ 18860, // Rule ID 753 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_32>><<P:Predicate_atomic_load_min_32_seq_cst>> => (AMOMIN_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 753,
+ GIR_Done,
+ // Label 570: @18860
+ GIM_Try, /*On fail goto*//*Label 571*/ 18894, // Rule ID 969 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_monotonic>> => (AMOMIN_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 969,
+ GIR_Done,
+ // Label 571: @18894
+ GIM_Try, /*On fail goto*//*Label 572*/ 18928, // Rule ID 972 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acquire>> => (AMOMIN_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 972,
+ GIR_Done,
+ // Label 572: @18928
+ GIM_Try, /*On fail goto*//*Label 573*/ 18962, // Rule ID 975 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_release>> => (AMOMIN_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 975,
+ GIR_Done,
+ // Label 573: @18962
+ GIM_Try, /*On fail goto*//*Label 574*/ 18996, // Rule ID 978 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_acq_rel>> => (AMOMIN_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 978,
+ GIR_Done,
+ // Label 574: @18996
+ GIM_Try, /*On fail goto*//*Label 575*/ 19030, // Rule ID 981 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_min:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_min_64>><<P:Predicate_atomic_load_min_64_seq_cst>> => (AMOMIN_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMIN_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 981,
+ GIR_Done,
+ // Label 575: @19030
+ GIM_Reject,
+ // Label 565: @19031
+ GIM_Reject,
+ // Label 543: @19032
+ GIM_Reject,
+ // Label 24: @19033
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 578*/ 20077,
+ /*GILLT_s32*//*Label 576*/ 19041,
+ /*GILLT_s64*//*Label 577*/ 19729,
+ // Label 576: @19041
+ GIM_Try, /*On fail goto*//*Label 579*/ 19728,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 580*/ 19081, // Rule ID 755 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> => (AMOMAXU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 755,
+ GIR_Done,
+ // Label 580: @19081
+ GIM_Try, /*On fail goto*//*Label 581*/ 19115, // Rule ID 757 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> => (AMOMAXU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 757,
+ GIR_Done,
+ // Label 581: @19115
+ GIM_Try, /*On fail goto*//*Label 582*/ 19149, // Rule ID 758 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> => (AMOMAXU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 758,
+ GIR_Done,
+ // Label 582: @19149
+ GIM_Try, /*On fail goto*//*Label 583*/ 19183, // Rule ID 760 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> => (AMOMAXU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 760,
+ GIR_Done,
+ // Label 583: @19183
+ GIM_Try, /*On fail goto*//*Label 584*/ 19217, // Rule ID 761 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> => (AMOMAXU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 761,
+ GIR_Done,
+ // Label 584: @19217
+ GIM_Try, /*On fail goto*//*Label 585*/ 19251, // Rule ID 763 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> => (AMOMAXU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 763,
+ GIR_Done,
+ // Label 585: @19251
+ GIM_Try, /*On fail goto*//*Label 586*/ 19285, // Rule ID 764 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> => (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 764,
+ GIR_Done,
+ // Label 586: @19285
+ GIM_Try, /*On fail goto*//*Label 587*/ 19319, // Rule ID 766 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> => (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 766,
+ GIR_Done,
+ // Label 587: @19319
+ GIM_Try, /*On fail goto*//*Label 588*/ 19353, // Rule ID 767 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> => (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 767,
+ GIR_Done,
+ // Label 588: @19353
+ GIM_Try, /*On fail goto*//*Label 589*/ 19387, // Rule ID 769 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> => (AMOMAXU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 769,
+ GIR_Done,
+ // Label 589: @19387
+ GIM_Try, /*On fail goto*//*Label 590*/ 19421, // Rule ID 983 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> => (AMOMAXU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 983,
+ GIR_Done,
+ // Label 590: @19421
+ GIM_Try, /*On fail goto*//*Label 591*/ 19455, // Rule ID 985 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> => (AMOMAXU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 985,
+ GIR_Done,
+ // Label 591: @19455
+ GIM_Try, /*On fail goto*//*Label 592*/ 19489, // Rule ID 986 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> => (AMOMAXU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 986,
+ GIR_Done,
+ // Label 592: @19489
+ GIM_Try, /*On fail goto*//*Label 593*/ 19523, // Rule ID 988 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> => (AMOMAXU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 988,
+ GIR_Done,
+ // Label 593: @19523
+ GIM_Try, /*On fail goto*//*Label 594*/ 19557, // Rule ID 989 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> => (AMOMAXU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 989,
+ GIR_Done,
+ // Label 594: @19557
+ GIM_Try, /*On fail goto*//*Label 595*/ 19591, // Rule ID 991 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> => (AMOMAXU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 991,
+ GIR_Done,
+ // Label 595: @19591
+ GIM_Try, /*On fail goto*//*Label 596*/ 19625, // Rule ID 992 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> => (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 992,
+ GIR_Done,
+ // Label 596: @19625
+ GIM_Try, /*On fail goto*//*Label 597*/ 19659, // Rule ID 994 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> => (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 994,
+ GIR_Done,
+ // Label 597: @19659
+ GIM_Try, /*On fail goto*//*Label 598*/ 19693, // Rule ID 995 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> => (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 995,
+ GIR_Done,
+ // Label 598: @19693
+ GIM_Try, /*On fail goto*//*Label 599*/ 19727, // Rule ID 997 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> => (AMOMAXU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 997,
+ GIR_Done,
+ // Label 599: @19727
+ GIM_Reject,
+ // Label 579: @19728
+ GIM_Reject,
+ // Label 577: @19729
+ GIM_Try, /*On fail goto*//*Label 600*/ 20076,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 601*/ 19769, // Rule ID 756 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_monotonic>> => (AMOMAXU_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 756,
+ GIR_Done,
+ // Label 601: @19769
+ GIM_Try, /*On fail goto*//*Label 602*/ 19803, // Rule ID 759 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acquire>> => (AMOMAXU_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 759,
+ GIR_Done,
+ // Label 602: @19803
+ GIM_Try, /*On fail goto*//*Label 603*/ 19837, // Rule ID 762 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_release>> => (AMOMAXU_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 762,
+ GIR_Done,
+ // Label 603: @19837
+ GIM_Try, /*On fail goto*//*Label 604*/ 19871, // Rule ID 765 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_acq_rel>> => (AMOMAXU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 765,
+ GIR_Done,
+ // Label 604: @19871
+ GIM_Try, /*On fail goto*//*Label 605*/ 19905, // Rule ID 768 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_32>><<P:Predicate_atomic_load_umax_32_seq_cst>> => (AMOMAXU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 768,
+ GIR_Done,
+ // Label 605: @19905
+ GIM_Try, /*On fail goto*//*Label 606*/ 19939, // Rule ID 984 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_monotonic>> => (AMOMAXU_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 984,
+ GIR_Done,
+ // Label 606: @19939
+ GIM_Try, /*On fail goto*//*Label 607*/ 19973, // Rule ID 987 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acquire>> => (AMOMAXU_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 987,
+ GIR_Done,
+ // Label 607: @19973
+ GIM_Try, /*On fail goto*//*Label 608*/ 20007, // Rule ID 990 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_release>> => (AMOMAXU_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 990,
+ GIR_Done,
+ // Label 608: @20007
+ GIM_Try, /*On fail goto*//*Label 609*/ 20041, // Rule ID 993 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_acq_rel>> => (AMOMAXU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 993,
+ GIR_Done,
+ // Label 609: @20041
+ GIM_Try, /*On fail goto*//*Label 610*/ 20075, // Rule ID 996 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umax:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umax_64>><<P:Predicate_atomic_load_umax_64_seq_cst>> => (AMOMAXU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMAXU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 996,
+ GIR_Done,
+ // Label 610: @20075
+ GIM_Reject,
+ // Label 600: @20076
+ GIM_Reject,
+ // Label 578: @20077
+ GIM_Reject,
+ // Label 25: @20078
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 613*/ 21122,
+ /*GILLT_s32*//*Label 611*/ 20086,
+ /*GILLT_s64*//*Label 612*/ 20774,
+ // Label 611: @20086
+ GIM_Try, /*On fail goto*//*Label 614*/ 20773,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_Try, /*On fail goto*//*Label 615*/ 20126, // Rule ID 770 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> => (AMOMINU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 770,
+ GIR_Done,
+ // Label 615: @20126
+ GIM_Try, /*On fail goto*//*Label 616*/ 20160, // Rule ID 772 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> => (AMOMINU_W:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 772,
+ GIR_Done,
+ // Label 616: @20160
+ GIM_Try, /*On fail goto*//*Label 617*/ 20194, // Rule ID 773 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> => (AMOMINU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 773,
+ GIR_Done,
+ // Label 617: @20194
+ GIM_Try, /*On fail goto*//*Label 618*/ 20228, // Rule ID 775 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> => (AMOMINU_W_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 775,
+ GIR_Done,
+ // Label 618: @20228
+ GIM_Try, /*On fail goto*//*Label 619*/ 20262, // Rule ID 776 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> => (AMOMINU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 776,
+ GIR_Done,
+ // Label 619: @20262
+ GIM_Try, /*On fail goto*//*Label 620*/ 20296, // Rule ID 778 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> => (AMOMINU_W_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 778,
+ GIR_Done,
+ // Label 620: @20296
+ GIM_Try, /*On fail goto*//*Label 621*/ 20330, // Rule ID 779 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> => (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 779,
+ GIR_Done,
+ // Label 621: @20330
+ GIM_Try, /*On fail goto*//*Label 622*/ 20364, // Rule ID 781 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> => (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 781,
+ GIR_Done,
+ // Label 622: @20364
+ GIM_Try, /*On fail goto*//*Label 623*/ 20398, // Rule ID 782 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> => (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 782,
+ GIR_Done,
+ // Label 623: @20398
+ GIM_Try, /*On fail goto*//*Label 624*/ 20432, // Rule ID 784 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> => (AMOMINU_W_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 784,
+ GIR_Done,
+ // Label 624: @20432
+ GIM_Try, /*On fail goto*//*Label 625*/ 20466, // Rule ID 998 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> => (AMOMINU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 998,
+ GIR_Done,
+ // Label 625: @20466
+ GIM_Try, /*On fail goto*//*Label 626*/ 20500, // Rule ID 1000 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> => (AMOMINU_D:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1000,
+ GIR_Done,
+ // Label 626: @20500
+ GIM_Try, /*On fail goto*//*Label 627*/ 20534, // Rule ID 1001 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> => (AMOMINU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1001,
+ GIR_Done,
+ // Label 627: @20534
+ GIM_Try, /*On fail goto*//*Label 628*/ 20568, // Rule ID 1003 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> => (AMOMINU_D_AQ:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1003,
+ GIR_Done,
+ // Label 628: @20568
+ GIM_Try, /*On fail goto*//*Label 629*/ 20602, // Rule ID 1004 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> => (AMOMINU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1004,
+ GIR_Done,
+ // Label 629: @20602
+ GIM_Try, /*On fail goto*//*Label 630*/ 20636, // Rule ID 1006 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> => (AMOMINU_D_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1006,
+ GIR_Done,
+ // Label 630: @20636
+ GIM_Try, /*On fail goto*//*Label 631*/ 20670, // Rule ID 1007 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> => (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1007,
+ GIR_Done,
+ // Label 631: @20670
+ GIM_Try, /*On fail goto*//*Label 632*/ 20704, // Rule ID 1009 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> => (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1009,
+ GIR_Done,
+ // Label 632: @20704
+ GIM_Try, /*On fail goto*//*Label 633*/ 20738, // Rule ID 1010 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> => (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1010,
+ GIR_Done,
+ // Label 633: @20738
+ GIM_Try, /*On fail goto*//*Label 634*/ 20772, // Rule ID 1012 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> => (AMOMINU_D_AQ_RL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1012,
+ GIR_Done,
+ // Label 634: @20772
+ GIM_Reject,
+ // Label 614: @20773
+ GIM_Reject,
+ // Label 612: @20774
+ GIM_Try, /*On fail goto*//*Label 635*/ 21121,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_Try, /*On fail goto*//*Label 636*/ 20814, // Rule ID 771 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_monotonic>> => (AMOMINU_W:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 771,
+ GIR_Done,
+ // Label 636: @20814
+ GIM_Try, /*On fail goto*//*Label 637*/ 20848, // Rule ID 774 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acquire>> => (AMOMINU_W_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 774,
+ GIR_Done,
+ // Label 637: @20848
+ GIM_Try, /*On fail goto*//*Label 638*/ 20882, // Rule ID 777 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_release>> => (AMOMINU_W_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 777,
+ GIR_Done,
+ // Label 638: @20882
+ GIM_Try, /*On fail goto*//*Label 639*/ 20916, // Rule ID 780 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_acq_rel>> => (AMOMINU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 780,
+ GIR_Done,
+ // Label 639: @20916
+ GIM_Try, /*On fail goto*//*Label 640*/ 20950, // Rule ID 783 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/4,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_32>><<P:Predicate_atomic_load_umin_32_seq_cst>> => (AMOMINU_W_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_W_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 783,
+ GIR_Done,
+ // Label 640: @20950
+ GIM_Try, /*On fail goto*//*Label 641*/ 20984, // Rule ID 999 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Monotonic,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_monotonic>> => (AMOMINU_D:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 999,
+ GIR_Done,
+ // Label 641: @20984
+ GIM_Try, /*On fail goto*//*Label 642*/ 21018, // Rule ID 1002 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Acquire,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acquire>> => (AMOMINU_D_AQ:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1002,
+ GIR_Done,
+ // Label 642: @21018
+ GIM_Try, /*On fail goto*//*Label 643*/ 21052, // Rule ID 1005 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::Release,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_release>> => (AMOMINU_D_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1005,
+ GIR_Done,
+ // Label 643: @21052
+ GIM_Try, /*On fail goto*//*Label 644*/ 21086, // Rule ID 1008 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::AcquireRelease,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_acq_rel>> => (AMOMINU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1008,
+ GIR_Done,
+ // Label 644: @21086
+ GIM_Try, /*On fail goto*//*Label 645*/ 21120, // Rule ID 1011 //
+ GIM_CheckFeatures, GIFBS_HasStdExtA_IsRV64,
+ GIM_CheckMemorySizeEqualTo, /*MI*/0, /*MMO*/0, /*Size*/8,
+ GIM_CheckAtomicOrdering, /*MI*/0, /*Order*/(int64_t)AtomicOrdering::SequentiallyConsistent,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] rs1
+ GIM_CheckPointerToAny, /*MI*/0, /*Op*/1, /*SizeInBits*/64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (atomic_load_umin:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)<<P:Predicate_atomic_load_umin_64>><<P:Predicate_atomic_load_umin_64_seq_cst>> => (AMOMINU_D_AQ_RL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::AMOMINU_D_AQ_RL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1011,
+ GIR_Done,
+ // Label 645: @21120
+ GIM_Reject,
+ // Label 635: @21121
+ GIM_Reject,
+ // Label 613: @21122
+ GIM_Reject,
+ // Label 26: @21123
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 648*/ 21391,
+ /*GILLT_s32*//*Label 646*/ 21131,
+ /*GILLT_s64*//*Label 647*/ 21304,
+ // Label 646: @21131
+ GIM_Try, /*On fail goto*//*Label 649*/ 21154, // Rule ID 348 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 4,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 4:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 2:{ *:[i32] }, 3:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/2,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 348,
+ GIR_Done,
+ // Label 649: @21154
+ GIM_Try, /*On fail goto*//*Label 650*/ 21177, // Rule ID 350 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 4,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 4:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 2:{ *:[i32] }, 3:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/2,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 350,
+ GIR_Done,
+ // Label 650: @21177
+ GIM_Try, /*On fail goto*//*Label 651*/ 21200, // Rule ID 351 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 5,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 5:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 3:{ *:[i32] }, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 351,
+ GIR_Done,
+ // Label 651: @21200
+ GIM_Try, /*On fail goto*//*Label 652*/ 21223, // Rule ID 353 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 5,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 5:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 3:{ *:[i32] }, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 353,
+ GIR_Done,
+ // Label 652: @21223
+ GIM_Try, /*On fail goto*//*Label 653*/ 21240, // Rule ID 354 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 6,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 6:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE_TSO)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE_TSO,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 354,
+ GIR_Done,
+ // Label 653: @21240
+ GIM_Try, /*On fail goto*//*Label 654*/ 21257, // Rule ID 356 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 6,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 6:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE_TSO)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE_TSO,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 356,
+ GIR_Done,
+ // Label 654: @21257
+ GIM_Try, /*On fail goto*//*Label 655*/ 21280, // Rule ID 357 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 7,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 7:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 3:{ *:[i32] }, 3:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 357,
+ GIR_Done,
+ // Label 655: @21280
+ GIM_Try, /*On fail goto*//*Label 656*/ 21303, // Rule ID 359 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 7,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 7:{ *:[i32] }, (timm:{ *:[i32] })) => (FENCE 3:{ *:[i32] }, 3:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 359,
+ GIR_Done,
+ // Label 656: @21303
+ GIM_Reject,
+ // Label 647: @21304
+ GIM_Try, /*On fail goto*//*Label 657*/ 21327, // Rule ID 349 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 4,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 4:{ *:[i64] }, (timm:{ *:[i64] })) => (FENCE 2:{ *:[i64] }, 3:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/2,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 349,
+ GIR_Done,
+ // Label 657: @21327
+ GIM_Try, /*On fail goto*//*Label 658*/ 21350, // Rule ID 352 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 5,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 5:{ *:[i64] }, (timm:{ *:[i64] })) => (FENCE 3:{ *:[i64] }, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 352,
+ GIR_Done,
+ // Label 658: @21350
+ GIM_Try, /*On fail goto*//*Label 659*/ 21367, // Rule ID 355 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 6,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 6:{ *:[i64] }, (timm:{ *:[i64] })) => (FENCE_TSO)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE_TSO,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 355,
+ GIR_Done,
+ // Label 659: @21367
+ GIM_Try, /*On fail goto*//*Label 660*/ 21390, // Rule ID 358 //
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/0, 7,
+ // MIs[0] Operand 1
+ GIM_CheckIsImm, /*MI*/0, /*Op*/1,
+ // (atomic_fence 7:{ *:[i64] }, (timm:{ *:[i64] })) => (FENCE 3:{ *:[i64] }, 3:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FENCE,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/3,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 358,
+ GIR_Done,
+ // Label 660: @21390
+ GIM_Reject,
+ // Label 648: @21391
+ GIM_Reject,
+ // Label 27: @21392
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 663*/ 21482,
+ /*GILLT_s32*//*Label 661*/ 21400,
+ /*GILLT_s64*//*Label 662*/ 21453,
+ // Label 661: @21400
+ GIM_Try, /*On fail goto*//*Label 664*/ 21452,
+ GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 665*/ 21430, // Rule ID 23 //
+ // MIs[0] Operand 1
+ // No operand predicates
+ // (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm => (ADDI:{ *:[i32] } X0:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 23,
+ GIR_Done,
+ // Label 665: @21430
+ GIM_Try, /*On fail goto*//*Label 666*/ 21451, // Rule ID 25 //
+ // MIs[0] Operand 1
+ // No operand predicates
+ // (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm => (ADDI:{ *:[i32] } X0:{ *:[i32] }, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 25,
+ GIR_Done,
+ // Label 666: @21451
+ GIM_Reject,
+ // Label 664: @21452
+ GIM_Reject,
+ // Label 662: @21453
+ GIM_Try, /*On fail goto*//*Label 667*/ 21481, // Rule ID 24 //
+ GIM_CheckI64ImmPredicate, /*MI*/0, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ // No operand predicates
+ // (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm => (ADDI:{ *:[i64] } X0:{ *:[i64] }, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::ADDI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/0, // imm
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 24,
+ GIR_Done,
+ // Label 667: @21481
+ GIM_Reject,
+ // Label 663: @21482
+ GIM_Reject,
+ // Label 28: @21483
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 670*/ 21834,
+ /*GILLT_s32*//*Label 668*/ 21491,
+ /*GILLT_s64*//*Label 669*/ 21713,
+ // Label 668: @21491
+ GIM_Try, /*On fail goto*//*Label 671*/ 21712,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 672*/ 21564, // Rule ID 71 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 71,
+ GIR_Done,
+ // Label 672: @21564
+ GIM_Try, /*On fail goto*//*Label 673*/ 21619, // Rule ID 73 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 73,
+ GIR_Done,
+ // Label 673: @21619
+ GIM_Try, /*On fail goto*//*Label 674*/ 21652, // Rule ID 59 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 59,
+ GIR_Done,
+ // Label 674: @21652
+ GIM_Try, /*On fail goto*//*Label 675*/ 21685, // Rule ID 61 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SLLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 61,
+ GIR_Done,
+ // Label 675: @21685
+ GIM_Try, /*On fail goto*//*Label 676*/ 21698, // Rule ID 68 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 68,
+ GIR_Done,
+ // Label 676: @21698
+ GIM_Try, /*On fail goto*//*Label 677*/ 21711, // Rule ID 70 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (shl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SLL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 70,
+ GIR_Done,
+ // Label 677: @21711
+ GIM_Reject,
+ // Label 671: @21712
+ GIM_Reject,
+ // Label 669: @21713
+ GIM_Try, /*On fail goto*//*Label 678*/ 21833,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 679*/ 21786, // Rule ID 72 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) => (SLL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 72,
+ GIR_Done,
+ // Label 679: @21786
+ GIM_Try, /*On fail goto*//*Label 680*/ 21819, // Rule ID 60 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SLLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 60,
+ GIR_Done,
+ // Label 680: @21819
+ GIM_Try, /*On fail goto*//*Label 681*/ 21832, // Rule ID 69 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (shl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (SLL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SLL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 69,
+ GIR_Done,
+ // Label 681: @21832
+ GIM_Reject,
+ // Label 678: @21833
+ GIM_Reject,
+ // Label 670: @21834
+ GIM_Reject,
+ // Label 29: @21835
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 684*/ 22186,
+ /*GILLT_s32*//*Label 682*/ 21843,
+ /*GILLT_s64*//*Label 683*/ 22065,
+ // Label 682: @21843
+ GIM_Try, /*On fail goto*//*Label 685*/ 22064,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 686*/ 21916, // Rule ID 77 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 77,
+ GIR_Done,
+ // Label 686: @21916
+ GIM_Try, /*On fail goto*//*Label 687*/ 21971, // Rule ID 79 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 79,
+ GIR_Done,
+ // Label 687: @21971
+ GIM_Try, /*On fail goto*//*Label 688*/ 22004, // Rule ID 62 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 62,
+ GIR_Done,
+ // Label 688: @22004
+ GIM_Try, /*On fail goto*//*Label 689*/ 22037, // Rule ID 64 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRLI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 64,
+ GIR_Done,
+ // Label 689: @22037
+ GIM_Try, /*On fail goto*//*Label 690*/ 22050, // Rule ID 74 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 74,
+ GIR_Done,
+ // Label 690: @22050
+ GIM_Try, /*On fail goto*//*Label 691*/ 22063, // Rule ID 76 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (srl:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SRL:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 76,
+ GIR_Done,
+ // Label 691: @22063
+ GIM_Reject,
+ // Label 685: @22064
+ GIM_Reject,
+ // Label 683: @22065
+ GIM_Try, /*On fail goto*//*Label 692*/ 22185,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 693*/ 22138, // Rule ID 78 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) => (SRL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 78,
+ GIR_Done,
+ // Label 693: @22138
+ GIM_Try, /*On fail goto*//*Label 694*/ 22171, // Rule ID 63 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRLI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRLI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 63,
+ GIR_Done,
+ // Label 694: @22171
+ GIM_Try, /*On fail goto*//*Label 695*/ 22184, // Rule ID 75 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (srl:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (SRL:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRL,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 75,
+ GIR_Done,
+ // Label 695: @22184
+ GIM_Reject,
+ // Label 692: @22185
+ GIM_Reject,
+ // Label 684: @22186
+ GIM_Reject,
+ // Label 30: @22187
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 698*/ 22538,
+ /*GILLT_s32*//*Label 696*/ 22195,
+ /*GILLT_s64*//*Label 697*/ 22417,
+ // Label 696: @22195
+ GIM_Try, /*On fail goto*//*Label 699*/ 22416,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 700*/ 22268, // Rule ID 83 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 83,
+ GIR_Done,
+ // Label 700: @22268
+ GIM_Try, /*On fail goto*//*Label 701*/ 22323, // Rule ID 85 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (and:{ *:[i32] } GPR:{ *:[i32] }:$rs2, (imm:{ *:[i32] })<<P:Predicate_immbottomxlenset>>)) => (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 85,
+ GIR_Done,
+ // Label 701: @22323
+ GIM_Try, /*On fail goto*//*Label 702*/ 22356, // Rule ID 65 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRAI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRAI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 65,
+ GIR_Done,
+ // Label 702: @22356
+ GIM_Try, /*On fail goto*//*Label 703*/ 22389, // Rule ID 67 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRAI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRAI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 67,
+ GIR_Done,
+ // Label 703: @22389
+ GIM_Try, /*On fail goto*//*Label 704*/ 22402, // Rule ID 80 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 80,
+ GIR_Done,
+ // Label 704: @22402
+ GIM_Try, /*On fail goto*//*Label 705*/ 22415, // Rule ID 82 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (sra:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (SRA:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 82,
+ GIR_Done,
+ // Label 705: @22415
+ GIM_Reject,
+ // Label 699: @22416
+ GIM_Reject,
+ // Label 697: @22417
+ GIM_Try, /*On fail goto*//*Label 706*/ 22537,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 707*/ 22490, // Rule ID 84 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_AND,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/1, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/1, /*OpIdx*/2, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/2, /*Predicate*/GIPFP_I64_Predicate_immbottomxlenset,
+ // MIs[2] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (and:{ *:[i64] } GPR:{ *:[i64] }:$rs2, (imm:{ *:[i64] })<<P:Predicate_immbottomxlenset>>)) => (SRA:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 84,
+ GIR_Done,
+ // Label 707: @22490
+ GIM_Try, /*On fail goto*//*Label 708*/ 22523, // Rule ID 66 //
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/2, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_uimmlog2xlen,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt) => (SRAI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_uimmlog2xlen>>:$shamt)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SRAI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // shamt
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 66,
+ GIR_Done,
+ // Label 708: @22523
+ GIM_Try, /*On fail goto*//*Label 709*/ 22536, // Rule ID 81 //
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (sra:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (SRA:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::SRA,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 81,
+ GIR_Done,
+ // Label 709: @22536
+ GIM_Reject,
+ // Label 706: @22537
+ GIM_Reject,
+ // Label 698: @22538
+ GIM_Reject,
+ // Label 31: @22539
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 712*/ 24754,
+ /*GILLT_s32*//*Label 710*/ 22547,
+ /*GILLT_s64*//*Label 711*/ 24013,
+ // Label 710: @22547
+ GIM_Try, /*On fail goto*//*Label 713*/ 24012,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 714*/ 22594, // Rule ID 102 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 102,
+ GIR_Done,
+ // Label 714: @22594
+ GIM_Try, /*On fail goto*//*Label 715*/ 22627, // Rule ID 104 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 104,
+ GIR_Done,
+ // Label 715: @22627
+ GIM_Try, /*On fail goto*//*Label 716*/ 22661, // Rule ID 111 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 111,
+ GIR_Done,
+ // Label 716: @22661
+ GIM_Try, /*On fail goto*//*Label 717*/ 22695, // Rule ID 113 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, 0:{ *:[i32] }, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 113,
+ GIR_Done,
+ // Label 717: @22695
+ GIM_Try, /*On fail goto*//*Label 718*/ 22736, // Rule ID 93 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) => (SLTI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 93,
+ GIR_Done,
+ // Label 718: @22736
+ GIM_Try, /*On fail goto*//*Label 719*/ 22777, // Rule ID 95 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) => (SLTI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 95,
+ GIR_Done,
+ // Label 719: @22777
+ GIM_Try, /*On fail goto*//*Label 720*/ 22818, // Rule ID 99 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) => (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 99,
+ GIR_Done,
+ // Label 720: @22818
+ GIM_Try, /*On fail goto*//*Label 721*/ 22859, // Rule ID 101 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) => (SLTIU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 101,
+ GIR_Done,
+ // Label 721: @22859
+ GIM_Try, /*On fail goto*//*Label 722*/ 22919, // Rule ID 108 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 108,
+ GIR_Done,
+ // Label 722: @22919
+ GIM_Try, /*On fail goto*//*Label 723*/ 22979, // Rule ID 110 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 110,
+ GIR_Done,
+ // Label 723: @22979
+ GIM_Try, /*On fail goto*//*Label 724*/ 23040, // Rule ID 117 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 117,
+ GIR_Done,
+ // Label 724: @23040
+ GIM_Try, /*On fail goto*//*Label 725*/ 23101, // Rule ID 119 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XORI:{ *:[i32] } GPR:{ *:[i32] }:$rs1, (imm:{ *:[i32] })<<P:Predicate_simm12>>:$imm12))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 119,
+ GIR_Done,
+ // Label 725: @23101
+ GIM_Try, /*On fail goto*//*Label 726*/ 23135, // Rule ID 90 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }) => (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 90,
+ GIR_Done,
+ // Label 726: @23135
+ GIM_Try, /*On fail goto*//*Label 727*/ 23169, // Rule ID 92 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLT:{ *:[Other] }) => (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 92,
+ GIR_Done,
+ // Label 727: @23169
+ GIM_Try, /*On fail goto*//*Label 728*/ 23203, // Rule ID 96 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }) => (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 96,
+ GIR_Done,
+ // Label 728: @23203
+ GIM_Try, /*On fail goto*//*Label 729*/ 23237, // Rule ID 98 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULT:{ *:[Other] }) => (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 98,
+ GIR_Done,
+ // Label 729: @23237
+ GIM_Try, /*On fail goto*//*Label 730*/ 23290, // Rule ID 105 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 105,
+ GIR_Done,
+ // Label 730: @23290
+ GIM_Try, /*On fail goto*//*Label 731*/ 23343, // Rule ID 107 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i32] } (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 107,
+ GIR_Done,
+ // Label 731: @23343
+ GIM_Try, /*On fail goto*//*Label 732*/ 23397, // Rule ID 114 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 114,
+ GIR_Done,
+ // Label 732: @23397
+ GIM_Try, /*On fail goto*//*Label 733*/ 23451, // Rule ID 116 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETNE:{ *:[Other] }) => (SLTU:{ *:[i32] } X0:{ *:[i32] }, (XOR:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 116,
+ GIR_Done,
+ // Label 733: @23451
+ GIM_Try, /*On fail goto*//*Label 734*/ 23485, // Rule ID 120 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }) => (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 120,
+ GIR_Done,
+ // Label 734: @23485
+ GIM_Try, /*On fail goto*//*Label 735*/ 23519, // Rule ID 122 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGT:{ *:[Other] }) => (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 122,
+ GIR_Done,
+ // Label 735: @23519
+ GIM_Try, /*On fail goto*//*Label 736*/ 23572, // Rule ID 123 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 123,
+ GIR_Done,
+ // Label 736: @23572
+ GIM_Try, /*On fail goto*//*Label 737*/ 23625, // Rule ID 125 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETUGE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 125,
+ GIR_Done,
+ // Label 737: @23625
+ GIM_Try, /*On fail goto*//*Label 738*/ 23678, // Rule ID 126 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 126,
+ GIR_Done,
+ // Label 738: @23678
+ GIM_Try, /*On fail goto*//*Label 739*/ 23731, // Rule ID 128 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETULE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLTU:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 128,
+ GIR_Done,
+ // Label 739: @23731
+ GIM_Try, /*On fail goto*//*Label 740*/ 23765, // Rule ID 129 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }) => (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 129,
+ GIR_Done,
+ // Label 740: @23765
+ GIM_Try, /*On fail goto*//*Label 741*/ 23799, // Rule ID 131 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGT:{ *:[Other] }) => (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 131,
+ GIR_Done,
+ // Label 741: @23799
+ GIM_Try, /*On fail goto*//*Label 742*/ 23852, // Rule ID 132 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 132,
+ GIR_Done,
+ // Label 742: @23852
+ GIM_Try, /*On fail goto*//*Label 743*/ 23905, // Rule ID 134 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETGE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 134,
+ GIR_Done,
+ // Label 743: @23905
+ GIM_Try, /*On fail goto*//*Label 744*/ 23958, // Rule ID 135 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 135,
+ GIR_Done,
+ // Label 744: @23958
+ GIM_Try, /*On fail goto*//*Label 745*/ 24011, // Rule ID 137 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2, SETLE:{ *:[Other] }) => (XORI:{ *:[i32] } (SLT:{ *:[i32] } GPR:{ *:[i32] }:$rs2, GPR:{ *:[i32] }:$rs1), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 137,
+ GIR_Done,
+ // Label 745: @24011
+ GIM_Reject,
+ // Label 713: @24012
+ GIM_Reject,
+ // Label 711: @24013
+ GIM_Try, /*On fail goto*//*Label 746*/ 24753,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 747*/ 24060, // Rule ID 103 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] }, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 103,
+ GIR_Done,
+ // Label 747: @24060
+ GIM_Try, /*On fail goto*//*Label 748*/ 24094, // Rule ID 112 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckConstantInt, /*MI*/0, /*Op*/3, 0,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, 0:{ *:[i64] }, SETNE:{ *:[Other] }) => (SLTU:{ *:[i64] } X0:{ *:[i64] }, GPR:{ *:[i64] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 112,
+ GIR_Done,
+ // Label 748: @24094
+ GIM_Try, /*On fail goto*//*Label 749*/ 24135, // Rule ID 94 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETLT:{ *:[Other] }) => (SLTI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 94,
+ GIR_Done,
+ // Label 749: @24135
+ GIM_Try, /*On fail goto*//*Label 750*/ 24176, // Rule ID 100 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETULT:{ *:[Other] }) => (SLTIU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/0, /*OldInsnID*/1, // imm12
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 100,
+ GIR_Done,
+ // Label 750: @24176
+ GIM_Try, /*On fail goto*//*Label 751*/ 24236, // Rule ID 109 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i64] } (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 109,
+ GIR_Done,
+ // Label 751: @24236
+ GIM_Try, /*On fail goto*//*Label 752*/ 24297, // Rule ID 118 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_CONSTANT,
+ GIM_CheckI64ImmPredicate, /*MI*/1, /*Predicate*/GIPFP_I64_Predicate_simm12,
+ // MIs[1] Operand 1
+ // No operand predicates
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12, SETNE:{ *:[Other] }) => (SLTU:{ *:[i64] } X0:{ *:[i64] }, (XORI:{ *:[i64] } GPR:{ *:[i64] }:$rs1, (imm:{ *:[i64] })<<P:Predicate_simm12>>:$imm12))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XORI,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_CopyConstantAsSImm, /*NewInsnID*/1, /*OldInsnID*/1, // imm12
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 118,
+ GIR_Done,
+ // Label 752: @24297
+ GIM_Try, /*On fail goto*//*Label 753*/ 24331, // Rule ID 91 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLT:{ *:[Other] }) => (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 91,
+ GIR_Done,
+ // Label 753: @24331
+ GIM_Try, /*On fail goto*//*Label 754*/ 24365, // Rule ID 97 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULT:{ *:[Other] }) => (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 97,
+ GIR_Done,
+ // Label 754: @24365
+ GIM_Try, /*On fail goto*//*Label 755*/ 24418, // Rule ID 106 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_EQ,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETEQ:{ *:[Other] }) => (SLTIU:{ *:[i64] } (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 106,
+ GIR_Done,
+ // Label 755: @24418
+ GIM_Try, /*On fail goto*//*Label 756*/ 24472, // Rule ID 115 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_NE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETNE:{ *:[Other] }) => (SLTU:{ *:[i64] } X0:{ *:[i64] }, (XOR:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::XOR,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddRegister, /*InsnID*/0, RISCV::X0, /*AddRegisterRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 115,
+ GIR_Done,
+ // Label 756: @24472
+ GIM_Try, /*On fail goto*//*Label 757*/ 24506, // Rule ID 121 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGT:{ *:[Other] }) => (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 121,
+ GIR_Done,
+ // Label 757: @24506
+ GIM_Try, /*On fail goto*//*Label 758*/ 24559, // Rule ID 124 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_UGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETUGE:{ *:[Other] }) => (XORI:{ *:[i64] } (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 124,
+ GIR_Done,
+ // Label 758: @24559
+ GIM_Try, /*On fail goto*//*Label 759*/ 24612, // Rule ID 127 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_ULE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETULE:{ *:[Other] }) => (XORI:{ *:[i64] } (SLTU:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLTU,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 127,
+ GIR_Done,
+ // Label 759: @24612
+ GIM_Try, /*On fail goto*//*Label 760*/ 24646, // Rule ID 130 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGT,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGT:{ *:[Other] }) => (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1)
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLT,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 130,
+ GIR_Done,
+ // Label 760: @24646
+ GIM_Try, /*On fail goto*//*Label 761*/ 24699, // Rule ID 133 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SGE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETGE:{ *:[Other] }) => (XORI:{ *:[i64] } (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 133,
+ GIR_Done,
+ // Label 761: @24699
+ GIM_Try, /*On fail goto*//*Label 762*/ 24752, // Rule ID 136 //
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::ICMP_SLE,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::GPRRegClassID,
+ // (setcc:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2, SETLE:{ *:[Other] }) => (XORI:{ *:[i64] } (SLT:{ *:[i64] } GPR:{ *:[i64] }:$rs2, GPR:{ *:[i64] }:$rs1), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::SLT,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::XORI,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 136,
+ GIR_Done,
+ // Label 762: @24752
+ GIM_Reject,
+ // Label 746: @24753
+ GIM_Reject,
+ // Label 712: @24754
+ GIM_Reject,
+ // Label 32: @24755
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 765*/ 25935,
+ /*GILLT_s32*//*Label 763*/ 24763,
+ /*GILLT_s64*//*Label 764*/ 25544,
+ // Label 763: @24763
+ GIM_Try, /*On fail goto*//*Label 766*/ 24851, // Rule ID 1124 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1124,
+ GIR_Done,
+ // Label 766: @24851
+ GIM_Try, /*On fail goto*//*Label 767*/ 24939, // Rule ID 1126 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1126,
+ GIR_Done,
+ // Label 767: @24939
+ GIM_Try, /*On fail goto*//*Label 768*/ 25046, // Rule ID 1127 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1127,
+ GIR_Done,
+ // Label 768: @25046
+ GIM_Try, /*On fail goto*//*Label 769*/ 25153, // Rule ID 1129 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i32] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1129,
+ GIR_Done,
+ // Label 769: @25153
+ GIM_Try, /*On fail goto*//*Label 770*/ 25241, // Rule ID 1267 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1267,
+ GIR_Done,
+ // Label 770: @25241
+ GIM_Try, /*On fail goto*//*Label 771*/ 25329, // Rule ID 1269 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1269,
+ GIR_Done,
+ // Label 771: @25329
+ GIM_Try, /*On fail goto*//*Label 772*/ 25436, // Rule ID 1270 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1270,
+ GIR_Done,
+ // Label 772: @25436
+ GIM_Try, /*On fail goto*//*Label 773*/ 25543, // Rule ID 1272 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i32] } (AND:{ *:[i32] } (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i32] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s32,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s32,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1272,
+ GIR_Done,
+ // Label 773: @25543
+ GIM_Reject,
+ // Label 764: @25544
+ GIM_Try, /*On fail goto*//*Label 774*/ 25632, // Rule ID 1125 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i64] } (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1125,
+ GIR_Done,
+ // Label 774: @25632
+ GIM_Try, /*On fail goto*//*Label 775*/ 25739, // Rule ID 1128 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ // (setcc:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i64] } (AND:{ *:[i64] } (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs1), (FEQ_S:{ *:[i64] } FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs2)), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_S,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1128,
+ GIR_Done,
+ // Label 775: @25739
+ GIM_Try, /*On fail goto*//*Label 776*/ 25827, // Rule ID 1268 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_ORD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETO:{ *:[Other] }) => (AND:{ *:[i64] } (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2))
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/1, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::AND,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1268,
+ GIR_Done,
+ // Label 776: @25827
+ GIM_Try, /*On fail goto*//*Label 777*/ 25934, // Rule ID 1271 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ // MIs[0] Operand 1
+ GIM_CheckCmpPredicate, /*MI*/0, /*Op*/1, /*Predicate*/CmpInst::FCMP_UNO,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ // (setcc:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, SETUO:{ *:[Other] }) => (SLTIU:{ *:[i64] } (AND:{ *:[i64] } (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs1), (FEQ_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs2)), 1:{ *:[i64] })
+ GIR_MakeTempReg, /*TempRegID*/0, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/1, /*TypeID*/GILLT_s64,
+ GIR_MakeTempReg, /*TempRegID*/2, /*TypeID*/GILLT_s64,
+ GIR_BuildMI, /*InsnID*/3, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/3, /*TempRegID*/2, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_Copy, /*NewInsnID*/3, /*OldInsnID*/0, /*OpIdx*/3, // rs2
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/3,
+ GIR_BuildMI, /*InsnID*/2, /*Opcode*/RISCV::FEQ_D,
+ GIR_AddTempRegister, /*InsnID*/2, /*TempRegID*/1, /*TempRegFlags*/RegState::Define,
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_Copy, /*NewInsnID*/2, /*OldInsnID*/0, /*OpIdx*/2, // rs1
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/2,
+ GIR_BuildMI, /*InsnID*/1, /*Opcode*/RISCV::AND,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/0, /*TempRegFlags*/RegState::Define,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/1, /*TempRegFlags*/0,
+ GIR_AddTempRegister, /*InsnID*/1, /*TempRegID*/2, /*TempRegFlags*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/1,
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::SLTIU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_AddTempRegister, /*InsnID*/0, /*TempRegID*/0, /*TempRegFlags*/0,
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1271,
+ GIR_Done,
+ // Label 777: @25934
+ GIM_Reject,
+ // Label 765: @25935
+ GIM_Reject,
+ // Label 33: @25936
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 780*/ 26022,
+ /*GILLT_s32*//*Label 778*/ 25944,
+ /*GILLT_s64*//*Label 779*/ 25990,
+ // Label 778: @25944
+ GIM_Try, /*On fail goto*//*Label 781*/ 25989,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 782*/ 25977, // Rule ID 479 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mulhu:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MULHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULHU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 479,
+ GIR_Done,
+ // Label 782: @25977
+ GIM_Try, /*On fail goto*//*Label 783*/ 25988, // Rule ID 481 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mulhu:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MULHU:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULHU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 481,
+ GIR_Done,
+ // Label 783: @25988
+ GIM_Reject,
+ // Label 781: @25989
+ GIM_Reject,
+ // Label 779: @25990
+ GIM_Try, /*On fail goto*//*Label 784*/ 26021, // Rule ID 480 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (mulhu:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (MULHU:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULHU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 480,
+ GIR_Done,
+ // Label 784: @26021
+ GIM_Reject,
+ // Label 780: @26022
+ GIM_Reject,
+ // Label 34: @26023
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 787*/ 26109,
+ /*GILLT_s32*//*Label 785*/ 26031,
+ /*GILLT_s64*//*Label 786*/ 26077,
+ // Label 785: @26031
+ GIM_Try, /*On fail goto*//*Label 788*/ 26076,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 789*/ 26064, // Rule ID 476 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MULH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULH,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 476,
+ GIR_Done,
+ // Label 789: @26064
+ GIM_Try, /*On fail goto*//*Label 790*/ 26075, // Rule ID 478 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ // (mulhs:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2) => (MULH:{ *:[i32] } GPR:{ *:[i32] }:$rs1, GPR:{ *:[i32] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULH,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 478,
+ GIR_Done,
+ // Label 790: @26075
+ GIM_Reject,
+ // Label 788: @26076
+ GIM_Reject,
+ // Label 786: @26077
+ GIM_Try, /*On fail goto*//*Label 791*/ 26108, // Rule ID 477 //
+ GIM_CheckFeatures, GIFBS_HasStdExtM,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::GPRRegClassID,
+ // (mulhs:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2) => (MULH:{ *:[i64] } GPR:{ *:[i64] }:$rs1, GPR:{ *:[i64] }:$rs2)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::MULH,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 477,
+ GIR_Done,
+ // Label 791: @26108
+ GIM_Reject,
+ // Label 787: @26109
+ GIM_Reject,
+ // Label 35: @26110
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 794*/ 27244,
+ /*GILLT_s32*//*Label 792*/ 26118,
+ /*GILLT_s64*//*Label 793*/ 26681,
+ // Label 792: @26118
+ GIM_Try, /*On fail goto*//*Label 795*/ 26680,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_Try, /*On fail goto*//*Label 796*/ 26205, // Rule ID 1101 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1101,
+ GIR_Done,
+ // Label 796: @26205
+ GIM_Try, /*On fail goto*//*Label 797*/ 26274, // Rule ID 1102 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1102,
+ GIR_Done,
+ // Label 797: @26274
+ GIM_Try, /*On fail goto*//*Label 798*/ 26343, // Rule ID 1103 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FNMADD_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1103,
+ GIR_Done,
+ // Label 798: @26343
+ GIM_Try, /*On fail goto*//*Label 799*/ 26399, // Rule ID 1098 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) => (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1098,
+ GIR_Done,
+ // Label 799: @26399
+ GIM_Try, /*On fail goto*//*Label 800*/ 26455, // Rule ID 1099 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) => (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1099,
+ GIR_Done,
+ // Label 800: @26455
+ GIM_Try, /*On fail goto*//*Label 801*/ 26511, // Rule ID 1100 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs1), FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3) => (FNMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1100,
+ GIR_Done,
+ // Label 801: @26511
+ GIM_Try, /*On fail goto*//*Label 802*/ 26567, // Rule ID 1095 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1095,
+ GIR_Done,
+ // Label 802: @26567
+ GIM_Try, /*On fail goto*//*Label 803*/ 26623, // Rule ID 1096 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1096,
+ GIR_Done,
+ // Label 803: @26623
+ GIM_Try, /*On fail goto*//*Label 804*/ 26679, // Rule ID 1097 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR32RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, (fneg:{ *:[f32] } FPR32:{ *:[f32] }:$rs3)) => (FMSUB_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, FPR32:{ *:[f32] }:$rs2, FPR32:{ *:[f32] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1097,
+ GIR_Done,
+ // Label 804: @26679
+ GIM_Reject,
+ // Label 795: @26680
+ GIM_Reject,
+ // Label 793: @26681
+ GIM_Try, /*On fail goto*//*Label 805*/ 27243,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/2, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/3, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 806*/ 26768, // Rule ID 1244 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1244,
+ GIR_Done,
+ // Label 806: @26768
+ GIM_Try, /*On fail goto*//*Label 807*/ 26837, // Rule ID 1245 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1245,
+ GIR_Done,
+ // Label 807: @26837
+ GIM_Try, /*On fail goto*//*Label 808*/ 26906, // Rule ID 1246 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/2, /*MI*/0, /*OpIdx*/3, // MIs[2]
+ GIM_CheckOpcode, /*MI*/2, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/2, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/2, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ GIM_CheckIsSafeToFold, /*InsnID*/2,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FNMADD_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMADD_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/2, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1246,
+ GIR_Done,
+ // Label 808: @26906
+ GIM_Try, /*On fail goto*//*Label 809*/ 26962, // Rule ID 1241 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) => (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1241,
+ GIR_Done,
+ // Label 809: @26962
+ GIM_Try, /*On fail goto*//*Label 810*/ 27018, // Rule ID 1242 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) => (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1242,
+ GIR_Done,
+ // Label 810: @27018
+ GIM_Try, /*On fail goto*//*Label 811*/ 27074, // Rule ID 1243 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/1, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/3, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs1), FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3) => (FNMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FNMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/3, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1243,
+ GIR_Done,
+ // Label 811: @27074
+ GIM_Try, /*On fail goto*//*Label 812*/ 27130, // Rule ID 1238 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1238,
+ GIR_Done,
+ // Label 812: @27130
+ GIM_Try, /*On fail goto*//*Label 813*/ 27186, // Rule ID 1239 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1239,
+ GIR_Done,
+ // Label 813: @27186
+ GIM_Try, /*On fail goto*//*Label 814*/ 27242, // Rule ID 1240 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/2, /*RC*/RISCV::FPR64RegClassID,
+ GIM_RecordInsn, /*DefineMI*/1, /*MI*/0, /*OpIdx*/3, // MIs[1]
+ GIM_CheckOpcode, /*MI*/1, TargetOpcode::G_FNEG,
+ GIM_CheckType, /*MI*/1, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/1, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckIsSafeToFold, /*InsnID*/1,
+ // (fma:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, (fneg:{ *:[f64] } FPR64:{ *:[f64] }:$rs3)) => (FMSUB_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, FPR64:{ *:[f64] }:$rs2, FPR64:{ *:[f64] }:$rs3, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FMSUB_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/2, // rs2
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/1, /*OpIdx*/1, // rs3
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1240,
+ GIR_Done,
+ // Label 814: @27242
+ GIM_Reject,
+ // Label 805: @27243
+ GIM_Reject,
+ // Label 794: @27244
+ GIM_Reject,
+ // Label 36: @27245
+ GIM_Try, /*On fail goto*//*Label 815*/ 27272, // Rule ID 1211 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ // (fpextend:{ *:[f64] } FPR32:{ *:[f32] }:$rs1) => (FCVT_D_S:{ *:[f64] } FPR32:{ *:[f32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_S,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1211,
+ GIR_Done,
+ // Label 815: @27272
+ GIM_Reject,
+ // Label 37: @27273
+ GIM_Try, /*On fail goto*//*Label 816*/ 27361,
+ GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s32,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 817*/ 27314, // Rule ID 1208 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_S_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1208,
+ GIR_Done,
+ // Label 817: @27314
+ GIM_Try, /*On fail goto*//*Label 818*/ 27337, // Rule ID 1209 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_S_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1209,
+ GIR_Done,
+ // Label 818: @27337
+ GIM_Try, /*On fail goto*//*Label 819*/ 27360, // Rule ID 1210 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fpround:{ *:[f32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_S_D:{ *:[f32] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_S_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1210,
+ GIR_Done,
+ // Label 819: @27360
+ GIM_Reject,
+ // Label 816: @27361
+ GIM_Reject,
+ // Label 38: @27362
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 822*/ 27540,
+ /*GILLT_s32*//*Label 820*/ 27370,
+ /*GILLT_s64*//*Label 821*/ 27478,
+ // Label 820: @27370
+ GIM_Try, /*On fail goto*//*Label 823*/ 27477,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 824*/ 27407, // Rule ID 1303 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_W_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_W_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1303,
+ GIR_Done,
+ // Label 824: @27407
+ GIM_Try, /*On fail goto*//*Label 825*/ 27430, // Rule ID 1305 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_W_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_W_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1305,
+ GIR_Done,
+ // Label 825: @27430
+ GIM_Try, /*On fail goto*//*Label 826*/ 27453, // Rule ID 1330 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_L_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_L_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1330,
+ GIR_Done,
+ // Label 826: @27453
+ GIM_Try, /*On fail goto*//*Label 827*/ 27476, // Rule ID 1332 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_sint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_L_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_L_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1332,
+ GIR_Done,
+ // Label 827: @27476
+ GIM_Reject,
+ // Label 823: @27477
+ GIM_Reject,
+ // Label 821: @27478
+ GIM_Try, /*On fail goto*//*Label 828*/ 27539,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 829*/ 27515, // Rule ID 1304 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_sint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) => (FCVT_W_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_W_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1304,
+ GIR_Done,
+ // Label 829: @27515
+ GIM_Try, /*On fail goto*//*Label 830*/ 27538, // Rule ID 1331 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_sint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) => (FCVT_L_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_L_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1331,
+ GIR_Done,
+ // Label 830: @27538
+ GIM_Reject,
+ // Label 828: @27539
+ GIM_Reject,
+ // Label 822: @27540
+ GIM_Reject,
+ // Label 39: @27541
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 833*/ 27719,
+ /*GILLT_s32*//*Label 831*/ 27549,
+ /*GILLT_s64*//*Label 832*/ 27657,
+ // Label 831: @27549
+ GIM_Try, /*On fail goto*//*Label 834*/ 27656,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 835*/ 27586, // Rule ID 1306 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_WU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_WU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1306,
+ GIR_Done,
+ // Label 835: @27586
+ GIM_Try, /*On fail goto*//*Label 836*/ 27609, // Rule ID 1308 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_WU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_WU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1308,
+ GIR_Done,
+ // Label 836: @27609
+ GIM_Try, /*On fail goto*//*Label 837*/ 27632, // Rule ID 1333 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_LU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_LU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1333,
+ GIR_Done,
+ // Label 837: @27632
+ GIM_Try, /*On fail goto*//*Label 838*/ 27655, // Rule ID 1335 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_uint:{ *:[i32] } FPR64:{ *:[f64] }:$rs1) => (FCVT_LU_D:{ *:[i32] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_LU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1335,
+ GIR_Done,
+ // Label 838: @27655
+ GIM_Reject,
+ // Label 834: @27656
+ GIM_Reject,
+ // Label 832: @27657
+ GIM_Try, /*On fail goto*//*Label 839*/ 27718,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::GPRRegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 840*/ 27694, // Rule ID 1307 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) => (FCVT_WU_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_WU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1307,
+ GIR_Done,
+ // Label 840: @27694
+ GIM_Try, /*On fail goto*//*Label 841*/ 27717, // Rule ID 1334 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (fp_to_uint:{ *:[i64] } FPR64:{ *:[f64] }:$rs1) => (FCVT_LU_D:{ *:[i64] } FPR64:{ *:[f64] }:$rs1, 1:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_LU_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/1,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1334,
+ GIR_Done,
+ // Label 841: @27717
+ GIM_Reject,
+ // Label 839: @27718
+ GIM_Reject,
+ // Label 833: @27719
+ GIM_Reject,
+ // Label 40: @27720
+ GIM_Try, /*On fail goto*//*Label 842*/ 27896,
+ GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
+ GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/0, 2, /*)*//*default:*//*Label 845*/ 27774,
+ /*GILLT_s32*//*Label 843*/ 27734,
+ /*GILLT_s64*//*Label 844*/ 27754,
+ // Label 843: @27734
+ GIM_Try, /*On fail goto*//*Label 846*/ 27753, // Rule ID 1309 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_W:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1309,
+ GIR_Done,
+ // Label 846: @27753
+ GIM_Reject,
+ // Label 844: @27754
+ GIM_Try, /*On fail goto*//*Label 847*/ 27773, // Rule ID 1310 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) => (FCVT_D_W:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1310,
+ GIR_Done,
+ // Label 847: @27773
+ GIM_Reject,
+ // Label 845: @27774
+ GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/0, 2, /*)*//*default:*//*Label 850*/ 27860,
+ /*GILLT_s32*//*Label 848*/ 27782,
+ /*GILLT_s64*//*Label 849*/ 27828,
+ // Label 848: @27782
+ GIM_Try, /*On fail goto*//*Label 851*/ 27827,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 852*/ 27803, // Rule ID 1311 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_W:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_W,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1311,
+ GIR_Done,
+ // Label 852: @27803
+ GIM_Try, /*On fail goto*//*Label 853*/ 27826, // Rule ID 1336 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_L:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_L,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1336,
+ GIR_Done,
+ // Label 853: @27826
+ GIM_Reject,
+ // Label 851: @27827
+ GIM_Reject,
+ // Label 849: @27828
+ GIM_Try, /*On fail goto*//*Label 854*/ 27859, // Rule ID 1337 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) => (FCVT_D_L:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_L,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1337,
+ GIR_Done,
+ // Label 854: @27859
+ GIM_Reject,
+ // Label 850: @27860
+ GIM_Try, /*On fail goto*//*Label 855*/ 27895, // Rule ID 1338 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (sint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_L:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_L,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1338,
+ GIR_Done,
+ // Label 855: @27895
+ GIM_Reject,
+ // Label 842: @27896
+ GIM_Reject,
+ // Label 41: @27897
+ GIM_Try, /*On fail goto*//*Label 856*/ 28073,
+ GIM_CheckType, /*MI*/0, /*Op*/0, /*Type*/GILLT_s64,
+ GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/0, 2, /*)*//*default:*//*Label 859*/ 27951,
+ /*GILLT_s32*//*Label 857*/ 27911,
+ /*GILLT_s64*//*Label 858*/ 27931,
+ // Label 857: @27911
+ GIM_Try, /*On fail goto*//*Label 860*/ 27930, // Rule ID 1312 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_WU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1312,
+ GIR_Done,
+ // Label 860: @27930
+ GIM_Reject,
+ // Label 858: @27931
+ GIM_Try, /*On fail goto*//*Label 861*/ 27950, // Rule ID 1313 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) => (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i64] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_WU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1313,
+ GIR_Done,
+ // Label 861: @27950
+ GIM_Reject,
+ // Label 859: @27951
+ GIM_SwitchType, /*MI*/0, /*Op*/1, /*[*/0, 2, /*)*//*default:*//*Label 864*/ 28037,
+ /*GILLT_s32*//*Label 862*/ 27959,
+ /*GILLT_s64*//*Label 863*/ 28005,
+ // Label 862: @27959
+ GIM_Try, /*On fail goto*//*Label 865*/ 28004,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ GIM_Try, /*On fail goto*//*Label 866*/ 27980, // Rule ID 1314 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV32,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_WU:{ *:[f64] } GPR:{ *:[i32] }:$rs1)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::FCVT_D_WU,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1314,
+ GIR_Done,
+ // Label 866: @27980
+ GIM_Try, /*On fail goto*//*Label 867*/ 28003, // Rule ID 1339 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_LU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1339,
+ GIR_Done,
+ // Label 867: @28003
+ GIM_Reject,
+ // Label 865: @28004
+ GIM_Reject,
+ // Label 863: @28005
+ GIM_Try, /*On fail goto*//*Label 868*/ 28036, // Rule ID 1340 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i64] }:$rs1) => (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i64] }:$rs1, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_LU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1340,
+ GIR_Done,
+ // Label 868: @28036
+ GIM_Reject,
+ // Label 864: @28037
+ GIM_Try, /*On fail goto*//*Label 869*/ 28072, // Rule ID 1341 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD_IsRV64,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::GPRRegClassID,
+ // (uint_to_fp:{ *:[f64] } GPR:{ *:[i32] }:$rs1) => (FCVT_D_LU:{ *:[f64] } GPR:{ *:[i32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FCVT_D_LU,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1341,
+ GIR_Done,
+ // Label 869: @28072
+ GIM_Reject,
+ // Label 856: @28073
+ GIM_Reject,
+ // Label 42: @28074
+ GIM_Try, /*On fail goto*//*Label 870*/ 28086, // Rule ID 3 //
+ // MIs[0] imm20
+ GIM_CheckIsMBB, /*MI*/0, /*Op*/0,
+ // (br (bb:{ *:[Other] }):$imm20) => (PseudoBR (bb:{ *:[Other] }):$imm20)
+ GIR_MutateOpcode, /*InsnID*/0, /*RecycleInsnID*/0, /*Opcode*/RISCV::PseudoBR,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 3,
+ GIR_Done,
+ // Label 870: @28086
+ GIM_Reject,
+ // Label 43: @28087
+ GIM_SwitchType, /*MI*/0, /*Op*/0, /*[*/0, 2, /*)*//*default:*//*Label 873*/ 28265,
+ /*GILLT_s32*//*Label 871*/ 28095,
+ /*GILLT_s64*//*Label 872*/ 28180,
+ // Label 871: @28095
+ GIM_Try, /*On fail goto*//*Label 874*/ 28179,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s32,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR32RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR32RegClassID,
+ GIM_Try, /*On fail goto*//*Label 875*/ 28132, // Rule ID 1085 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ // (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) => (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1085,
+ GIR_Done,
+ // Label 875: @28132
+ GIM_Try, /*On fail goto*//*Label 876*/ 28155, // Rule ID 1086 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ // (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) => (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1086,
+ GIR_Done,
+ // Label 876: @28155
+ GIM_Try, /*On fail goto*//*Label 877*/ 28178, // Rule ID 1087 //
+ GIM_CheckFeatures, GIFBS_HasStdExtF,
+ // (fsqrt:{ *:[f32] } FPR32:{ *:[f32] }:$rs1) => (FSQRT_S:{ *:[f32] } FPR32:{ *:[f32] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_S,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1087,
+ GIR_Done,
+ // Label 877: @28178
+ GIM_Reject,
+ // Label 874: @28179
+ GIM_Reject,
+ // Label 872: @28180
+ GIM_Try, /*On fail goto*//*Label 878*/ 28264,
+ GIM_CheckType, /*MI*/0, /*Op*/1, /*Type*/GILLT_s64,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/0, /*RC*/RISCV::FPR64RegClassID,
+ GIM_CheckRegBankForClass, /*MI*/0, /*Op*/1, /*RC*/RISCV::FPR64RegClassID,
+ GIM_Try, /*On fail goto*//*Label 879*/ 28217, // Rule ID 1224 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) => (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1224,
+ GIR_Done,
+ // Label 879: @28217
+ GIM_Try, /*On fail goto*//*Label 880*/ 28240, // Rule ID 1225 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) => (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i64] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1225,
+ GIR_Done,
+ // Label 880: @28240
+ GIM_Try, /*On fail goto*//*Label 881*/ 28263, // Rule ID 1226 //
+ GIM_CheckFeatures, GIFBS_HasStdExtD,
+ // (fsqrt:{ *:[f64] } FPR64:{ *:[f64] }:$rs1) => (FSQRT_D:{ *:[f64] } FPR64:{ *:[f64] }:$rs1, 7:{ *:[i32] })
+ GIR_BuildMI, /*InsnID*/0, /*Opcode*/RISCV::FSQRT_D,
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/0, // rd
+ GIR_Copy, /*NewInsnID*/0, /*OldInsnID*/0, /*OpIdx*/1, // rs1
+ GIR_AddImm, /*InsnID*/0, /*Imm*/7,
+ GIR_EraseFromParent, /*InsnID*/0,
+ GIR_ConstrainSelectedInstOperands, /*InsnID*/0,
+ // GIR_Coverage, 1226,
+ GIR_Done,
+ // Label 881: @28263
+ GIM_Reject,
+ // Label 878: @28264
+ GIM_Reject,
+ // Label 873: @28265
+ GIM_Reject,
+ // Label 44: @28266
+ GIM_Reject,
+ };
+ return MatchTable0;
+}
+#endif // ifdef GET_GLOBALISEL_IMPL
+#ifdef GET_GLOBALISEL_PREDICATES_DECL
+PredicateBitset AvailableModuleFeatures;
+mutable PredicateBitset AvailableFunctionFeatures;
+PredicateBitset getAvailableFeatures() const {
+ return AvailableModuleFeatures | AvailableFunctionFeatures;
+}
+PredicateBitset
+computeAvailableModuleFeatures(const RISCVSubtarget *Subtarget) const;
+PredicateBitset
+computeAvailableFunctionFeatures(const RISCVSubtarget *Subtarget,
+ const MachineFunction *MF) const;
+void setupGeneratedPerFunctionState(MachineFunction &MF) override;
+#endif // ifdef GET_GLOBALISEL_PREDICATES_DECL
+#ifdef GET_GLOBALISEL_PREDICATES_INIT
+AvailableModuleFeatures(computeAvailableModuleFeatures(&STI)),
+AvailableFunctionFeatures()
+#endif // ifdef GET_GLOBALISEL_PREDICATES_INIT
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenInstrInfo.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenInstrInfo.inc
new file mode 100644
index 0000000..c2fe2c4
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenInstrInfo.inc
@@ -0,0 +1,2962 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Target Instruction Enum Values and Descriptors *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifdef GET_INSTRINFO_ENUM
+#undef GET_INSTRINFO_ENUM
+namespace llvm {
+
+namespace RISCV {
+ enum {
+ PHI = 0,
+ INLINEASM = 1,
+ INLINEASM_BR = 2,
+ CFI_INSTRUCTION = 3,
+ EH_LABEL = 4,
+ GC_LABEL = 5,
+ ANNOTATION_LABEL = 6,
+ KILL = 7,
+ EXTRACT_SUBREG = 8,
+ INSERT_SUBREG = 9,
+ IMPLICIT_DEF = 10,
+ SUBREG_TO_REG = 11,
+ COPY_TO_REGCLASS = 12,
+ DBG_VALUE = 13,
+ DBG_LABEL = 14,
+ REG_SEQUENCE = 15,
+ COPY = 16,
+ BUNDLE = 17,
+ LIFETIME_START = 18,
+ LIFETIME_END = 19,
+ STACKMAP = 20,
+ FENTRY_CALL = 21,
+ PATCHPOINT = 22,
+ LOAD_STACK_GUARD = 23,
+ STATEPOINT = 24,
+ LOCAL_ESCAPE = 25,
+ FAULTING_OP = 26,
+ PATCHABLE_OP = 27,
+ PATCHABLE_FUNCTION_ENTER = 28,
+ PATCHABLE_RET = 29,
+ PATCHABLE_FUNCTION_EXIT = 30,
+ PATCHABLE_TAIL_CALL = 31,
+ PATCHABLE_EVENT_CALL = 32,
+ PATCHABLE_TYPED_EVENT_CALL = 33,
+ ICALL_BRANCH_FUNNEL = 34,
+ G_ADD = 35,
+ G_SUB = 36,
+ G_MUL = 37,
+ G_SDIV = 38,
+ G_UDIV = 39,
+ G_SREM = 40,
+ G_UREM = 41,
+ G_AND = 42,
+ G_OR = 43,
+ G_XOR = 44,
+ G_IMPLICIT_DEF = 45,
+ G_PHI = 46,
+ G_FRAME_INDEX = 47,
+ G_GLOBAL_VALUE = 48,
+ G_EXTRACT = 49,
+ G_UNMERGE_VALUES = 50,
+ G_INSERT = 51,
+ G_MERGE_VALUES = 52,
+ G_BUILD_VECTOR = 53,
+ G_BUILD_VECTOR_TRUNC = 54,
+ G_CONCAT_VECTORS = 55,
+ G_PTRTOINT = 56,
+ G_INTTOPTR = 57,
+ G_BITCAST = 58,
+ G_INTRINSIC_TRUNC = 59,
+ G_INTRINSIC_ROUND = 60,
+ G_READCYCLECOUNTER = 61,
+ G_LOAD = 62,
+ G_SEXTLOAD = 63,
+ G_ZEXTLOAD = 64,
+ G_INDEXED_LOAD = 65,
+ G_INDEXED_SEXTLOAD = 66,
+ G_INDEXED_ZEXTLOAD = 67,
+ G_STORE = 68,
+ G_INDEXED_STORE = 69,
+ G_ATOMIC_CMPXCHG_WITH_SUCCESS = 70,
+ G_ATOMIC_CMPXCHG = 71,
+ G_ATOMICRMW_XCHG = 72,
+ G_ATOMICRMW_ADD = 73,
+ G_ATOMICRMW_SUB = 74,
+ G_ATOMICRMW_AND = 75,
+ G_ATOMICRMW_NAND = 76,
+ G_ATOMICRMW_OR = 77,
+ G_ATOMICRMW_XOR = 78,
+ G_ATOMICRMW_MAX = 79,
+ G_ATOMICRMW_MIN = 80,
+ G_ATOMICRMW_UMAX = 81,
+ G_ATOMICRMW_UMIN = 82,
+ G_ATOMICRMW_FADD = 83,
+ G_ATOMICRMW_FSUB = 84,
+ G_FENCE = 85,
+ G_BRCOND = 86,
+ G_BRINDIRECT = 87,
+ G_INTRINSIC = 88,
+ G_INTRINSIC_W_SIDE_EFFECTS = 89,
+ G_ANYEXT = 90,
+ G_TRUNC = 91,
+ G_CONSTANT = 92,
+ G_FCONSTANT = 93,
+ G_VASTART = 94,
+ G_VAARG = 95,
+ G_SEXT = 96,
+ G_SEXT_INREG = 97,
+ G_ZEXT = 98,
+ G_SHL = 99,
+ G_LSHR = 100,
+ G_ASHR = 101,
+ G_ICMP = 102,
+ G_FCMP = 103,
+ G_SELECT = 104,
+ G_UADDO = 105,
+ G_UADDE = 106,
+ G_USUBO = 107,
+ G_USUBE = 108,
+ G_SADDO = 109,
+ G_SADDE = 110,
+ G_SSUBO = 111,
+ G_SSUBE = 112,
+ G_UMULO = 113,
+ G_SMULO = 114,
+ G_UMULH = 115,
+ G_SMULH = 116,
+ G_FADD = 117,
+ G_FSUB = 118,
+ G_FMUL = 119,
+ G_FMA = 120,
+ G_FMAD = 121,
+ G_FDIV = 122,
+ G_FREM = 123,
+ G_FPOW = 124,
+ G_FEXP = 125,
+ G_FEXP2 = 126,
+ G_FLOG = 127,
+ G_FLOG2 = 128,
+ G_FLOG10 = 129,
+ G_FNEG = 130,
+ G_FPEXT = 131,
+ G_FPTRUNC = 132,
+ G_FPTOSI = 133,
+ G_FPTOUI = 134,
+ G_SITOFP = 135,
+ G_UITOFP = 136,
+ G_FABS = 137,
+ G_FCOPYSIGN = 138,
+ G_FCANONICALIZE = 139,
+ G_FMINNUM = 140,
+ G_FMAXNUM = 141,
+ G_FMINNUM_IEEE = 142,
+ G_FMAXNUM_IEEE = 143,
+ G_FMINIMUM = 144,
+ G_FMAXIMUM = 145,
+ G_PTR_ADD = 146,
+ G_PTR_MASK = 147,
+ G_SMIN = 148,
+ G_SMAX = 149,
+ G_UMIN = 150,
+ G_UMAX = 151,
+ G_BR = 152,
+ G_BRJT = 153,
+ G_INSERT_VECTOR_ELT = 154,
+ G_EXTRACT_VECTOR_ELT = 155,
+ G_SHUFFLE_VECTOR = 156,
+ G_CTTZ = 157,
+ G_CTTZ_ZERO_UNDEF = 158,
+ G_CTLZ = 159,
+ G_CTLZ_ZERO_UNDEF = 160,
+ G_CTPOP = 161,
+ G_BSWAP = 162,
+ G_BITREVERSE = 163,
+ G_FCEIL = 164,
+ G_FCOS = 165,
+ G_FSIN = 166,
+ G_FSQRT = 167,
+ G_FFLOOR = 168,
+ G_FRINT = 169,
+ G_FNEARBYINT = 170,
+ G_ADDRSPACE_CAST = 171,
+ G_BLOCK_ADDR = 172,
+ G_JUMP_TABLE = 173,
+ G_DYN_STACKALLOC = 174,
+ G_READ_REGISTER = 175,
+ G_WRITE_REGISTER = 176,
+ ADJCALLSTACKDOWN = 177,
+ ADJCALLSTACKUP = 178,
+ BuildPairF64Pseudo = 179,
+ PseudoAddTPRel = 180,
+ PseudoAtomicLoadNand32 = 181,
+ PseudoAtomicLoadNand64 = 182,
+ PseudoBR = 183,
+ PseudoBRIND = 184,
+ PseudoCALL = 185,
+ PseudoCALLIndirect = 186,
+ PseudoCALLReg = 187,
+ PseudoCmpXchg32 = 188,
+ PseudoCmpXchg64 = 189,
+ PseudoFLD = 190,
+ PseudoFLW = 191,
+ PseudoFSD = 192,
+ PseudoFSW = 193,
+ PseudoLA = 194,
+ PseudoLA_TLS_GD = 195,
+ PseudoLA_TLS_IE = 196,
+ PseudoLB = 197,
+ PseudoLBU = 198,
+ PseudoLD = 199,
+ PseudoLH = 200,
+ PseudoLHU = 201,
+ PseudoLI = 202,
+ PseudoLLA = 203,
+ PseudoLW = 204,
+ PseudoLWU = 205,
+ PseudoMaskedAtomicLoadAdd32 = 206,
+ PseudoMaskedAtomicLoadMax32 = 207,
+ PseudoMaskedAtomicLoadMin32 = 208,
+ PseudoMaskedAtomicLoadNand32 = 209,
+ PseudoMaskedAtomicLoadSub32 = 210,
+ PseudoMaskedAtomicLoadUMax32 = 211,
+ PseudoMaskedAtomicLoadUMin32 = 212,
+ PseudoMaskedAtomicSwap32 = 213,
+ PseudoMaskedCmpXchg32 = 214,
+ PseudoRET = 215,
+ PseudoSB = 216,
+ PseudoSD = 217,
+ PseudoSH = 218,
+ PseudoSW = 219,
+ PseudoTAIL = 220,
+ PseudoTAILIndirect = 221,
+ ReadCycleWide = 222,
+ Select_FPR32_Using_CC_GPR = 223,
+ Select_FPR64_Using_CC_GPR = 224,
+ Select_GPR_Using_CC_GPR = 225,
+ SplitF64Pseudo = 226,
+ ADD = 227,
+ ADDI = 228,
+ ADDIW = 229,
+ ADDW = 230,
+ AMOADD_D = 231,
+ AMOADD_D_AQ = 232,
+ AMOADD_D_AQ_RL = 233,
+ AMOADD_D_RL = 234,
+ AMOADD_W = 235,
+ AMOADD_W_AQ = 236,
+ AMOADD_W_AQ_RL = 237,
+ AMOADD_W_RL = 238,
+ AMOAND_D = 239,
+ AMOAND_D_AQ = 240,
+ AMOAND_D_AQ_RL = 241,
+ AMOAND_D_RL = 242,
+ AMOAND_W = 243,
+ AMOAND_W_AQ = 244,
+ AMOAND_W_AQ_RL = 245,
+ AMOAND_W_RL = 246,
+ AMOMAXU_D = 247,
+ AMOMAXU_D_AQ = 248,
+ AMOMAXU_D_AQ_RL = 249,
+ AMOMAXU_D_RL = 250,
+ AMOMAXU_W = 251,
+ AMOMAXU_W_AQ = 252,
+ AMOMAXU_W_AQ_RL = 253,
+ AMOMAXU_W_RL = 254,
+ AMOMAX_D = 255,
+ AMOMAX_D_AQ = 256,
+ AMOMAX_D_AQ_RL = 257,
+ AMOMAX_D_RL = 258,
+ AMOMAX_W = 259,
+ AMOMAX_W_AQ = 260,
+ AMOMAX_W_AQ_RL = 261,
+ AMOMAX_W_RL = 262,
+ AMOMINU_D = 263,
+ AMOMINU_D_AQ = 264,
+ AMOMINU_D_AQ_RL = 265,
+ AMOMINU_D_RL = 266,
+ AMOMINU_W = 267,
+ AMOMINU_W_AQ = 268,
+ AMOMINU_W_AQ_RL = 269,
+ AMOMINU_W_RL = 270,
+ AMOMIN_D = 271,
+ AMOMIN_D_AQ = 272,
+ AMOMIN_D_AQ_RL = 273,
+ AMOMIN_D_RL = 274,
+ AMOMIN_W = 275,
+ AMOMIN_W_AQ = 276,
+ AMOMIN_W_AQ_RL = 277,
+ AMOMIN_W_RL = 278,
+ AMOOR_D = 279,
+ AMOOR_D_AQ = 280,
+ AMOOR_D_AQ_RL = 281,
+ AMOOR_D_RL = 282,
+ AMOOR_W = 283,
+ AMOOR_W_AQ = 284,
+ AMOOR_W_AQ_RL = 285,
+ AMOOR_W_RL = 286,
+ AMOSWAP_D = 287,
+ AMOSWAP_D_AQ = 288,
+ AMOSWAP_D_AQ_RL = 289,
+ AMOSWAP_D_RL = 290,
+ AMOSWAP_W = 291,
+ AMOSWAP_W_AQ = 292,
+ AMOSWAP_W_AQ_RL = 293,
+ AMOSWAP_W_RL = 294,
+ AMOXOR_D = 295,
+ AMOXOR_D_AQ = 296,
+ AMOXOR_D_AQ_RL = 297,
+ AMOXOR_D_RL = 298,
+ AMOXOR_W = 299,
+ AMOXOR_W_AQ = 300,
+ AMOXOR_W_AQ_RL = 301,
+ AMOXOR_W_RL = 302,
+ AND = 303,
+ ANDI = 304,
+ AUIPC = 305,
+ BEQ = 306,
+ BGE = 307,
+ BGEU = 308,
+ BLT = 309,
+ BLTU = 310,
+ BNE = 311,
+ CSRRC = 312,
+ CSRRCI = 313,
+ CSRRS = 314,
+ CSRRSI = 315,
+ CSRRW = 316,
+ CSRRWI = 317,
+ C_ADD = 318,
+ C_ADDI = 319,
+ C_ADDI16SP = 320,
+ C_ADDI4SPN = 321,
+ C_ADDIW = 322,
+ C_ADDI_HINT_IMM_ZERO = 323,
+ C_ADDI_HINT_X0 = 324,
+ C_ADDI_NOP = 325,
+ C_ADDW = 326,
+ C_ADD_HINT = 327,
+ C_AND = 328,
+ C_ANDI = 329,
+ C_BEQZ = 330,
+ C_BNEZ = 331,
+ C_EBREAK = 332,
+ C_FLD = 333,
+ C_FLDSP = 334,
+ C_FLW = 335,
+ C_FLWSP = 336,
+ C_FSD = 337,
+ C_FSDSP = 338,
+ C_FSW = 339,
+ C_FSWSP = 340,
+ C_J = 341,
+ C_JAL = 342,
+ C_JALR = 343,
+ C_JR = 344,
+ C_LD = 345,
+ C_LDSP = 346,
+ C_LI = 347,
+ C_LI_HINT = 348,
+ C_LUI = 349,
+ C_LUI_HINT = 350,
+ C_LW = 351,
+ C_LWSP = 352,
+ C_MV = 353,
+ C_MV_HINT = 354,
+ C_NOP = 355,
+ C_NOP_HINT = 356,
+ C_OR = 357,
+ C_SD = 358,
+ C_SDSP = 359,
+ C_SLLI = 360,
+ C_SLLI64_HINT = 361,
+ C_SLLI_HINT = 362,
+ C_SRAI = 363,
+ C_SRAI64_HINT = 364,
+ C_SRLI = 365,
+ C_SRLI64_HINT = 366,
+ C_SUB = 367,
+ C_SUBW = 368,
+ C_SW = 369,
+ C_SWSP = 370,
+ C_UNIMP = 371,
+ C_XOR = 372,
+ DIV = 373,
+ DIVU = 374,
+ DIVUW = 375,
+ DIVW = 376,
+ EBREAK = 377,
+ ECALL = 378,
+ FADD_D = 379,
+ FADD_S = 380,
+ FCLASS_D = 381,
+ FCLASS_S = 382,
+ FCVT_D_L = 383,
+ FCVT_D_LU = 384,
+ FCVT_D_S = 385,
+ FCVT_D_W = 386,
+ FCVT_D_WU = 387,
+ FCVT_LU_D = 388,
+ FCVT_LU_S = 389,
+ FCVT_L_D = 390,
+ FCVT_L_S = 391,
+ FCVT_S_D = 392,
+ FCVT_S_L = 393,
+ FCVT_S_LU = 394,
+ FCVT_S_W = 395,
+ FCVT_S_WU = 396,
+ FCVT_WU_D = 397,
+ FCVT_WU_S = 398,
+ FCVT_W_D = 399,
+ FCVT_W_S = 400,
+ FDIV_D = 401,
+ FDIV_S = 402,
+ FENCE = 403,
+ FENCE_I = 404,
+ FENCE_TSO = 405,
+ FEQ_D = 406,
+ FEQ_S = 407,
+ FLD = 408,
+ FLE_D = 409,
+ FLE_S = 410,
+ FLT_D = 411,
+ FLT_S = 412,
+ FLW = 413,
+ FMADD_D = 414,
+ FMADD_S = 415,
+ FMAX_D = 416,
+ FMAX_S = 417,
+ FMIN_D = 418,
+ FMIN_S = 419,
+ FMSUB_D = 420,
+ FMSUB_S = 421,
+ FMUL_D = 422,
+ FMUL_S = 423,
+ FMV_D_X = 424,
+ FMV_W_X = 425,
+ FMV_X_D = 426,
+ FMV_X_W = 427,
+ FNMADD_D = 428,
+ FNMADD_S = 429,
+ FNMSUB_D = 430,
+ FNMSUB_S = 431,
+ FSD = 432,
+ FSGNJN_D = 433,
+ FSGNJN_S = 434,
+ FSGNJX_D = 435,
+ FSGNJX_S = 436,
+ FSGNJ_D = 437,
+ FSGNJ_S = 438,
+ FSQRT_D = 439,
+ FSQRT_S = 440,
+ FSUB_D = 441,
+ FSUB_S = 442,
+ FSW = 443,
+ JAL = 444,
+ JALR = 445,
+ LB = 446,
+ LBU = 447,
+ LD = 448,
+ LH = 449,
+ LHU = 450,
+ LR_D = 451,
+ LR_D_AQ = 452,
+ LR_D_AQ_RL = 453,
+ LR_D_RL = 454,
+ LR_W = 455,
+ LR_W_AQ = 456,
+ LR_W_AQ_RL = 457,
+ LR_W_RL = 458,
+ LUI = 459,
+ LW = 460,
+ LWU = 461,
+ MRET = 462,
+ MUL = 463,
+ MULH = 464,
+ MULHSU = 465,
+ MULHU = 466,
+ MULW = 467,
+ OR = 468,
+ ORI = 469,
+ REM = 470,
+ REMU = 471,
+ REMUW = 472,
+ REMW = 473,
+ SB = 474,
+ SC_D = 475,
+ SC_D_AQ = 476,
+ SC_D_AQ_RL = 477,
+ SC_D_RL = 478,
+ SC_W = 479,
+ SC_W_AQ = 480,
+ SC_W_AQ_RL = 481,
+ SC_W_RL = 482,
+ SD = 483,
+ SFENCE_VMA = 484,
+ SH = 485,
+ SLL = 486,
+ SLLI = 487,
+ SLLIW = 488,
+ SLLW = 489,
+ SLT = 490,
+ SLTI = 491,
+ SLTIU = 492,
+ SLTU = 493,
+ SRA = 494,
+ SRAI = 495,
+ SRAIW = 496,
+ SRAW = 497,
+ SRET = 498,
+ SRL = 499,
+ SRLI = 500,
+ SRLIW = 501,
+ SRLW = 502,
+ SUB = 503,
+ SUBW = 504,
+ SW = 505,
+ UNIMP = 506,
+ URET = 507,
+ WFI = 508,
+ XOR = 509,
+ XORI = 510,
+ INSTRUCTION_LIST_END = 511
+ };
+
+} // end namespace RISCV
+} // end namespace llvm
+#endif // GET_INSTRINFO_ENUM
+
+#ifdef GET_INSTRINFO_SCHED_ENUM
+#undef GET_INSTRINFO_SCHED_ENUM
+namespace llvm {
+
+namespace RISCV {
+namespace Sched {
+ enum {
+ NoInstrModel = 0,
+ WriteIALU_ReadIALU_ReadIALU = 1,
+ WriteIALU_ReadIALU = 2,
+ WriteIALU32_ReadIALU32 = 3,
+ WriteIALU32_ReadIALU32_ReadIALU32 = 4,
+ WriteAtomicD_ReadAtomicDA_ReadAtomicDD = 5,
+ WriteAtomicW_ReadAtomicWA_ReadAtomicWD = 6,
+ WriteIALU = 7,
+ WriteJmp = 8,
+ WriteCSR_ReadCSR = 9,
+ WriteCSR = 10,
+ WriteFLD64_ReadMemBase = 11,
+ WriteFLD32_ReadMemBase = 12,
+ WriteFST64_ReadStoreData_ReadMemBase = 13,
+ WriteFST32_ReadStoreData_ReadMemBase = 14,
+ WriteJal = 15,
+ WriteJalr_ReadJalr = 16,
+ WriteJmpReg = 17,
+ WriteLDD_ReadMemBase = 18,
+ WriteLDW_ReadMemBase = 19,
+ WriteNop = 20,
+ WriteSTD_ReadStoreData_ReadMemBase = 21,
+ WriteShift_ReadShift = 22,
+ WriteSTW_ReadStoreData_ReadMemBase = 23,
+ WriteIDiv_ReadIDiv_ReadIDiv = 24,
+ WriteIDiv32_ReadIDiv32_ReadIDiv32 = 25,
+ WriteFALU64_ReadFALU64_ReadFALU64 = 26,
+ WriteFALU32_ReadFALU32_ReadFALU32 = 27,
+ WriteFClass64_ReadFClass64 = 28,
+ WriteFClass32_ReadFClass32 = 29,
+ WriteFCvtI64ToF64_ReadFCvtI64ToF64 = 30,
+ WriteFCvtF32ToF64_ReadFCvtF32ToF64 = 31,
+ WriteFCvtI32ToF64_ReadFCvtI32ToF64 = 32,
+ WriteFCvtF64ToI64_ReadFCvtF64ToI64 = 33,
+ WriteFCvtF32ToI64_ReadFCvtF32ToI64 = 34,
+ WriteFCvtF64ToF32_ReadFCvtF64ToF32 = 35,
+ WriteFCvtI64ToF32_ReadFCvtI64ToF32 = 36,
+ WriteFCvtI32ToF32_ReadFCvtI32ToF32 = 37,
+ WriteFCvtF64ToI32_ReadFCvtF64ToI32 = 38,
+ WriteFCvtF32ToI32_ReadFCvtF32ToI32 = 39,
+ WriteFDiv32_ReadFDiv32_ReadFDiv32 = 40,
+ WriteFCmp64_ReadFCmp64_ReadFCmp64 = 41,
+ WriteFCmp32_ReadFCmp32_ReadFCmp32 = 42,
+ WriteFMulAdd64_ReadFMulAdd64_ReadFMulAdd64_ReadFMulAdd64 = 43,
+ WriteFMulAdd32_ReadFMulAdd32_ReadFMulAdd32_ReadFMulAdd32 = 44,
+ WriteFMulSub64_ReadFMulSub64_ReadFMulSub64_ReadFMulSub64 = 45,
+ WriteFMulSub32_ReadFMulSub32_ReadFMulSub32_ReadFMulSub32 = 46,
+ WriteFMul32_ReadFMul32_ReadFMul32 = 47,
+ WriteFMovI64ToF64_ReadFMovI64ToF64 = 48,
+ WriteFMovI32ToF32_ReadFMovI32ToF32 = 49,
+ WriteFMovF64ToI64_ReadFMovF64ToI64 = 50,
+ WriteFMovF32ToI32_ReadFMovF32ToI32 = 51,
+ WriteFSqrt32_ReadFSqrt32 = 52,
+ WriteLDB_ReadMemBase = 53,
+ WriteLDH_ReadMemBase = 54,
+ WriteAtomicLDD_ReadAtomicLDD = 55,
+ WriteAtomicLDW_ReadAtomicLDW = 56,
+ WriteLDWU_ReadMemBase = 57,
+ WriteIMul_ReadIMul_ReadIMul = 58,
+ WriteIMul32_ReadIMul32_ReadIMul32 = 59,
+ WriteSTB_ReadStoreData_ReadMemBase = 60,
+ WriteAtomicSTD_ReadAtomicSTD_ReadAtomicSTD = 61,
+ WriteAtomicSTW_ReadAtomicSTW_ReadAtomicSTW = 62,
+ WriteSTH_ReadStoreData_ReadMemBase = 63,
+ WriteShift32_ReadShift32 = 64,
+ COPY = 65,
+ SCHED_LIST_END = 66
+ };
+} // end namespace Sched
+} // end namespace RISCV
+} // end namespace llvm
+#endif // GET_INSTRINFO_SCHED_ENUM
+
+#ifdef GET_INSTRINFO_MC_DESC
+#undef GET_INSTRINFO_MC_DESC
+namespace llvm {
+
+static const MCPhysReg ImplicitList1[] = { RISCV::X2, 0 };
+static const MCPhysReg ImplicitList2[] = { RISCV::X1, 0 };
+
+static const MCOperandInfo OperandInfo2[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo3[] = { { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo4[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo5[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo6[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo7[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo8[] = { { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo9[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo10[] = { { 0, 0|(1<<MCOI::LookupPtrRegClass), MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo11[] = { { 0, 0|(1<<MCOI::LookupPtrRegClass), MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo12[] = { { 0, 0|(1<<MCOI::LookupPtrRegClass), MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo13[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { 0, 0|(1<<MCOI::LookupPtrRegClass), MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo14[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo15[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo16[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo17[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo18[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, };
+static const MCOperandInfo OperandInfo19[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo20[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo21[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_2, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo22[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_2, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo23[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_2, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo24[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo25[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo26[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_IMM_0, 0 }, };
+static const MCOperandInfo OperandInfo27[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, };
+static const MCOperandInfo OperandInfo28[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, };
+static const MCOperandInfo OperandInfo29[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, };
+static const MCOperandInfo OperandInfo30[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo31[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo32[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, };
+static const MCOperandInfo OperandInfo33[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_2, 0 }, };
+static const MCOperandInfo OperandInfo34[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_2, 0 }, };
+static const MCOperandInfo OperandInfo35[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo36[] = { { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_1, 0 }, { -1, 0, MCOI::OPERAND_IMMEDIATE, 0 }, };
+static const MCOperandInfo OperandInfo37[] = { { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_GENERIC_0, 0 }, };
+static const MCOperandInfo OperandInfo38[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo39[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo40[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo41[] = { { -1, 0, RISCVOp::OPERAND_SIMM21_LSB0, 0 }, };
+static const MCOperandInfo OperandInfo42[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM12, 0 }, };
+static const MCOperandInfo OperandInfo43[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo44[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo45[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo46[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo47[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo48[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo49[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo50[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, (1 << MCOI::EARLY_CLOBBER) }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo51[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo52[] = { { RISCV::GPRTCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo53[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo54[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo55[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo56[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo57[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo58[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo59[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM12, 0 }, };
+static const MCOperandInfo OperandInfo60[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM20, 0 }, };
+static const MCOperandInfo OperandInfo61[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM13_LSB0, 0 }, };
+static const MCOperandInfo OperandInfo62[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM12, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo63[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM12, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM5, 0 }, };
+static const MCOperandInfo OperandInfo64[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo65[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo66[] = { { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo67[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo68[] = { { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo69[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo70[] = { { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo71[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo72[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo73[] = { { RISCV::FPR64CRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo74[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo75[] = { { RISCV::FPR32CRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo76[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo77[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo78[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo79[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo80[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo81[] = { { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo82[] = { { RISCV::GPRNoX0X2RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo83[] = { { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo84[] = { { RISCV::GPRX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRNoX0RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo85[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::SPRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo86[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, };
+static const MCOperandInfo OperandInfo87[] = { { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRCRegClassID, 0, MCOI::OPERAND_REGISTER, ((0 << 16) | (1 << MCOI::TIED_TO)) }, };
+static const MCOperandInfo OperandInfo88[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo89[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo90[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo91[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo92[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo93[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo94[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo95[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo96[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo97[] = { { -1, 0, RISCVOp::OPERAND_UIMM4, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM4, 0 }, };
+static const MCOperandInfo OperandInfo98[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo99[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo100[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM12, 0 }, };
+static const MCOperandInfo OperandInfo101[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM12, 0 }, };
+static const MCOperandInfo OperandInfo102[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo103[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo104[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo105[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo106[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, };
+static const MCOperandInfo OperandInfo107[] = { { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR64RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo108[] = { { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::FPR32RegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, MCOI::OPERAND_UNKNOWN, 0 }, };
+static const MCOperandInfo OperandInfo109[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_SIMM21_LSB0, 0 }, };
+static const MCOperandInfo OperandInfo110[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_UIMMLOG2XLEN, 0 }, };
+static const MCOperandInfo OperandInfo111[] = { { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { RISCV::GPRRegClassID, 0, MCOI::OPERAND_REGISTER, 0 }, { -1, 0, RISCVOp::OPERAND_UIMM5, 0 }, };
+
+extern const MCInstrDesc RISCVInsts[] = {
+ { 0, 1, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #0 = PHI
+ { 1, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #1 = INLINEASM
+ { 2, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::IndirectBranch)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #2 = INLINEASM_BR
+ { 3, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::NotDuplicable), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #3 = CFI_INSTRUCTION
+ { 4, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::NotDuplicable), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #4 = EH_LABEL
+ { 5, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::NotDuplicable), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #5 = GC_LABEL
+ { 6, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::NotDuplicable), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #6 = ANNOTATION_LABEL
+ { 7, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #7 = KILL
+ { 8, 3, 1, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo4, -1 ,nullptr }, // Inst #8 = EXTRACT_SUBREG
+ { 9, 4, 1, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo5, -1 ,nullptr }, // Inst #9 = INSERT_SUBREG
+ { 10, 1, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Rematerializable)|(1ULL<<MCID::CheapAsAMove), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #10 = IMPLICIT_DEF
+ { 11, 4, 1, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo6, -1 ,nullptr }, // Inst #11 = SUBREG_TO_REG
+ { 12, 3, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::CheapAsAMove), 0x0ULL, nullptr, nullptr, OperandInfo4, -1 ,nullptr }, // Inst #12 = COPY_TO_REGCLASS
+ { 13, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #13 = DBG_VALUE
+ { 14, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #14 = DBG_LABEL
+ { 15, 2, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::CheapAsAMove), 0x0ULL, nullptr, nullptr, OperandInfo7, -1 ,nullptr }, // Inst #15 = REG_SEQUENCE
+ { 16, 2, 1, 0, 65, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::CheapAsAMove), 0x0ULL, nullptr, nullptr, OperandInfo7, -1 ,nullptr }, // Inst #16 = COPY
+ { 17, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #17 = BUNDLE
+ { 18, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #18 = LIFETIME_START
+ { 19, 1, 0, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo3, -1 ,nullptr }, // Inst #19 = LIFETIME_END
+ { 20, 2, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo8, -1 ,nullptr }, // Inst #20 = STACKMAP
+ { 21, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #21 = FENTRY_CALL
+ { 22, 6, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo9, -1 ,nullptr }, // Inst #22 = PATCHPOINT
+ { 23, 1, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::Rematerializable), 0x0ULL, nullptr, nullptr, OperandInfo10, -1 ,nullptr }, // Inst #23 = LOAD_STACK_GUARD
+ { 24, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #24 = STATEPOINT
+ { 25, 2, 0, 0, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo11, -1 ,nullptr }, // Inst #25 = LOCAL_ESCAPE
+ { 26, 1, 1, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #26 = FAULTING_OP
+ { 27, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #27 = PATCHABLE_OP
+ { 28, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #28 = PATCHABLE_FUNCTION_ENTER
+ { 29, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #29 = PATCHABLE_RET
+ { 30, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #30 = PATCHABLE_FUNCTION_EXIT
+ { 31, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #31 = PATCHABLE_TAIL_CALL
+ { 32, 2, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo12, -1 ,nullptr }, // Inst #32 = PATCHABLE_EVENT_CALL
+ { 33, 3, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::UsesCustomInserter)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo13, -1 ,nullptr }, // Inst #33 = PATCHABLE_TYPED_EVENT_CALL
+ { 34, 0, 0, 0, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #34 = ICALL_BRANCH_FUNNEL
+ { 35, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #35 = G_ADD
+ { 36, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #36 = G_SUB
+ { 37, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #37 = G_MUL
+ { 38, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #38 = G_SDIV
+ { 39, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #39 = G_UDIV
+ { 40, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #40 = G_SREM
+ { 41, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #41 = G_UREM
+ { 42, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #42 = G_AND
+ { 43, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #43 = G_OR
+ { 44, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #44 = G_XOR
+ { 45, 1, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo15, -1 ,nullptr }, // Inst #45 = G_IMPLICIT_DEF
+ { 46, 1, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo15, -1 ,nullptr }, // Inst #46 = G_PHI
+ { 47, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #47 = G_FRAME_INDEX
+ { 48, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #48 = G_GLOBAL_VALUE
+ { 49, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo17, -1 ,nullptr }, // Inst #49 = G_EXTRACT
+ { 50, 2, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #50 = G_UNMERGE_VALUES
+ { 51, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo19, -1 ,nullptr }, // Inst #51 = G_INSERT
+ { 52, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #52 = G_MERGE_VALUES
+ { 53, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #53 = G_BUILD_VECTOR
+ { 54, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #54 = G_BUILD_VECTOR_TRUNC
+ { 55, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #55 = G_CONCAT_VECTORS
+ { 56, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #56 = G_PTRTOINT
+ { 57, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #57 = G_INTTOPTR
+ { 58, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #58 = G_BITCAST
+ { 59, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #59 = G_INTRINSIC_TRUNC
+ { 60, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #60 = G_INTRINSIC_ROUND
+ { 61, 1, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo15, -1 ,nullptr }, // Inst #61 = G_READCYCLECOUNTER
+ { 62, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #62 = G_LOAD
+ { 63, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #63 = G_SEXTLOAD
+ { 64, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #64 = G_ZEXTLOAD
+ { 65, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo21, -1 ,nullptr }, // Inst #65 = G_INDEXED_LOAD
+ { 66, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo21, -1 ,nullptr }, // Inst #66 = G_INDEXED_SEXTLOAD
+ { 67, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo21, -1 ,nullptr }, // Inst #67 = G_INDEXED_ZEXTLOAD
+ { 68, 2, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #68 = G_STORE
+ { 69, 5, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo22, -1 ,nullptr }, // Inst #69 = G_INDEXED_STORE
+ { 70, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo23, -1 ,nullptr }, // Inst #70 = G_ATOMIC_CMPXCHG_WITH_SUCCESS
+ { 71, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #71 = G_ATOMIC_CMPXCHG
+ { 72, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #72 = G_ATOMICRMW_XCHG
+ { 73, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #73 = G_ATOMICRMW_ADD
+ { 74, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #74 = G_ATOMICRMW_SUB
+ { 75, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #75 = G_ATOMICRMW_AND
+ { 76, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #76 = G_ATOMICRMW_NAND
+ { 77, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #77 = G_ATOMICRMW_OR
+ { 78, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #78 = G_ATOMICRMW_XOR
+ { 79, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #79 = G_ATOMICRMW_MAX
+ { 80, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #80 = G_ATOMICRMW_MIN
+ { 81, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #81 = G_ATOMICRMW_UMAX
+ { 82, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #82 = G_ATOMICRMW_UMIN
+ { 83, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #83 = G_ATOMICRMW_FADD
+ { 84, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo25, -1 ,nullptr }, // Inst #84 = G_ATOMICRMW_FSUB
+ { 85, 2, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo8, -1 ,nullptr }, // Inst #85 = G_FENCE
+ { 86, 2, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #86 = G_BRCOND
+ { 87, 1, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, OperandInfo15, -1 ,nullptr }, // Inst #87 = G_BRINDIRECT
+ { 88, 1, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Variadic), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #88 = G_INTRINSIC
+ { 89, 1, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore)|(1ULL<<MCID::Variadic)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #89 = G_INTRINSIC_W_SIDE_EFFECTS
+ { 90, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #90 = G_ANYEXT
+ { 91, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #91 = G_TRUNC
+ { 92, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #92 = G_CONSTANT
+ { 93, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #93 = G_FCONSTANT
+ { 94, 1, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo15, -1 ,nullptr }, // Inst #94 = G_VASTART
+ { 95, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo17, -1 ,nullptr }, // Inst #95 = G_VAARG
+ { 96, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #96 = G_SEXT
+ { 97, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo26, -1 ,nullptr }, // Inst #97 = G_SEXT_INREG
+ { 98, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #98 = G_ZEXT
+ { 99, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo27, -1 ,nullptr }, // Inst #99 = G_SHL
+ { 100, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo27, -1 ,nullptr }, // Inst #100 = G_LSHR
+ { 101, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo27, -1 ,nullptr }, // Inst #101 = G_ASHR
+ { 102, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo28, -1 ,nullptr }, // Inst #102 = G_ICMP
+ { 103, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo28, -1 ,nullptr }, // Inst #103 = G_FCMP
+ { 104, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #104 = G_SELECT
+ { 105, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #105 = G_UADDO
+ { 106, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo29, -1 ,nullptr }, // Inst #106 = G_UADDE
+ { 107, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #107 = G_USUBO
+ { 108, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo29, -1 ,nullptr }, // Inst #108 = G_USUBE
+ { 109, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #109 = G_SADDO
+ { 110, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo29, -1 ,nullptr }, // Inst #110 = G_SADDE
+ { 111, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #111 = G_SSUBO
+ { 112, 5, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo29, -1 ,nullptr }, // Inst #112 = G_SSUBE
+ { 113, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #113 = G_UMULO
+ { 114, 4, 2, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo24, -1 ,nullptr }, // Inst #114 = G_SMULO
+ { 115, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #115 = G_UMULH
+ { 116, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #116 = G_SMULH
+ { 117, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #117 = G_FADD
+ { 118, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #118 = G_FSUB
+ { 119, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #119 = G_FMUL
+ { 120, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo30, -1 ,nullptr }, // Inst #120 = G_FMA
+ { 121, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo30, -1 ,nullptr }, // Inst #121 = G_FMAD
+ { 122, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #122 = G_FDIV
+ { 123, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #123 = G_FREM
+ { 124, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #124 = G_FPOW
+ { 125, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #125 = G_FEXP
+ { 126, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #126 = G_FEXP2
+ { 127, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #127 = G_FLOG
+ { 128, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #128 = G_FLOG2
+ { 129, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #129 = G_FLOG10
+ { 130, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #130 = G_FNEG
+ { 131, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #131 = G_FPEXT
+ { 132, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #132 = G_FPTRUNC
+ { 133, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #133 = G_FPTOSI
+ { 134, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #134 = G_FPTOUI
+ { 135, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #135 = G_SITOFP
+ { 136, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #136 = G_UITOFP
+ { 137, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #137 = G_FABS
+ { 138, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo27, -1 ,nullptr }, // Inst #138 = G_FCOPYSIGN
+ { 139, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #139 = G_FCANONICALIZE
+ { 140, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #140 = G_FMINNUM
+ { 141, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #141 = G_FMAXNUM
+ { 142, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #142 = G_FMINNUM_IEEE
+ { 143, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #143 = G_FMAXNUM_IEEE
+ { 144, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #144 = G_FMINIMUM
+ { 145, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #145 = G_FMAXIMUM
+ { 146, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo27, -1 ,nullptr }, // Inst #146 = G_PTR_ADD
+ { 147, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo31, -1 ,nullptr }, // Inst #147 = G_PTR_MASK
+ { 148, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #148 = G_SMIN
+ { 149, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #149 = G_SMAX
+ { 150, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #150 = G_UMIN
+ { 151, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Commutable), 0x0ULL, nullptr, nullptr, OperandInfo14, -1 ,nullptr }, // Inst #151 = G_UMAX
+ { 152, 1, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #152 = G_BR
+ { 153, 3, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, OperandInfo32, -1 ,nullptr }, // Inst #153 = G_BRJT
+ { 154, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo33, -1 ,nullptr }, // Inst #154 = G_INSERT_VECTOR_ELT
+ { 155, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo34, -1 ,nullptr }, // Inst #155 = G_EXTRACT_VECTOR_ELT
+ { 156, 4, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo35, -1 ,nullptr }, // Inst #156 = G_SHUFFLE_VECTOR
+ { 157, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #157 = G_CTTZ
+ { 158, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #158 = G_CTTZ_ZERO_UNDEF
+ { 159, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #159 = G_CTLZ
+ { 160, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #160 = G_CTLZ_ZERO_UNDEF
+ { 161, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #161 = G_CTPOP
+ { 162, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #162 = G_BSWAP
+ { 163, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #163 = G_BITREVERSE
+ { 164, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #164 = G_FCEIL
+ { 165, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #165 = G_FCOS
+ { 166, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #166 = G_FSIN
+ { 167, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #167 = G_FSQRT
+ { 168, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #168 = G_FFLOOR
+ { 169, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #169 = G_FRINT
+ { 170, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo20, -1 ,nullptr }, // Inst #170 = G_FNEARBYINT
+ { 171, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo18, -1 ,nullptr }, // Inst #171 = G_ADDRSPACE_CAST
+ { 172, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #172 = G_BLOCK_ADDR
+ { 173, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #173 = G_JUMP_TABLE
+ { 174, 3, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UnmodeledSideEffects), 0x0ULL, nullptr, nullptr, OperandInfo36, -1 ,nullptr }, // Inst #174 = G_DYN_STACKALLOC
+ { 175, 2, 1, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UnmodeledSideEffects)|(1ULL<<MCID::Convergent), 0x0ULL, nullptr, nullptr, OperandInfo16, -1 ,nullptr }, // Inst #175 = G_READ_REGISTER
+ { 176, 2, 0, 0, 0, 0|(1ULL<<MCID::PreISelOpcode)|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UnmodeledSideEffects)|(1ULL<<MCID::Convergent), 0x0ULL, nullptr, nullptr, OperandInfo37, -1 ,nullptr }, // Inst #176 = G_WRITE_REGISTER
+ { 177, 2, 0, 4, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, ImplicitList1, ImplicitList1, OperandInfo8, -1 ,nullptr }, // Inst #177 = ADJCALLSTACKDOWN
+ { 178, 2, 0, 4, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, ImplicitList1, ImplicitList1, OperandInfo8, -1 ,nullptr }, // Inst #178 = ADJCALLSTACKUP
+ { 179, 3, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo38, -1 ,nullptr }, // Inst #179 = BuildPairF64Pseudo
+ { 180, 4, 1, 4, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo39, -1 ,nullptr }, // Inst #180 = PseudoAddTPRel
+ { 181, 5, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo40, -1 ,nullptr }, // Inst #181 = PseudoAtomicLoadNand32
+ { 182, 5, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo40, -1 ,nullptr }, // Inst #182 = PseudoAtomicLoadNand64
+ { 183, 1, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, OperandInfo41, -1 ,nullptr }, // Inst #183 = PseudoBR
+ { 184, 2, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Branch)|(1ULL<<MCID::IndirectBranch)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Call)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, ImplicitList2, OperandInfo42, -1 ,nullptr }, // Inst #184 = PseudoBRIND
+ { 185, 1, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call), 0x0ULL, nullptr, ImplicitList2, OperandInfo2, -1 ,nullptr }, // Inst #185 = PseudoCALL
+ { 186, 1, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Call), 0x0ULL, nullptr, ImplicitList2, OperandInfo43, -1 ,nullptr }, // Inst #186 = PseudoCALLIndirect
+ { 187, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Call), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #187 = PseudoCALLReg
+ { 188, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #188 = PseudoCmpXchg32
+ { 189, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #189 = PseudoCmpXchg64
+ { 190, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo46, -1 ,nullptr }, // Inst #190 = PseudoFLD
+ { 191, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #191 = PseudoFLW
+ { 192, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo46, -1 ,nullptr }, // Inst #192 = PseudoFSD
+ { 193, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #193 = PseudoFSW
+ { 194, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #194 = PseudoLA
+ { 195, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #195 = PseudoLA_TLS_GD
+ { 196, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #196 = PseudoLA_TLS_IE
+ { 197, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #197 = PseudoLB
+ { 198, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #198 = PseudoLBU
+ { 199, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #199 = PseudoLD
+ { 200, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #200 = PseudoLH
+ { 201, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #201 = PseudoLHU
+ { 202, 2, 1, 32, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #202 = PseudoLI
+ { 203, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #203 = PseudoLLA
+ { 204, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #204 = PseudoLW
+ { 205, 2, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad), 0x0ULL, nullptr, nullptr, OperandInfo44, -1 ,nullptr }, // Inst #205 = PseudoLWU
+ { 206, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #206 = PseudoMaskedAtomicLoadAdd32
+ { 207, 8, 3, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo48, -1 ,nullptr }, // Inst #207 = PseudoMaskedAtomicLoadMax32
+ { 208, 8, 3, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo48, -1 ,nullptr }, // Inst #208 = PseudoMaskedAtomicLoadMin32
+ { 209, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #209 = PseudoMaskedAtomicLoadNand32
+ { 210, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #210 = PseudoMaskedAtomicLoadSub32
+ { 211, 7, 3, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo49, -1 ,nullptr }, // Inst #211 = PseudoMaskedAtomicLoadUMax32
+ { 212, 7, 3, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo49, -1 ,nullptr }, // Inst #212 = PseudoMaskedAtomicLoadUMin32
+ { 213, 6, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo45, -1 ,nullptr }, // Inst #213 = PseudoMaskedAtomicSwap32
+ { 214, 7, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo50, -1 ,nullptr }, // Inst #214 = PseudoMaskedCmpXchg32
+ { 215, 0, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator), 0x0ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #215 = PseudoRET
+ { 216, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo51, -1 ,nullptr }, // Inst #216 = PseudoSB
+ { 217, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo51, -1 ,nullptr }, // Inst #217 = PseudoSD
+ { 218, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo51, -1 ,nullptr }, // Inst #218 = PseudoSH
+ { 219, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::MayStore), 0x0ULL, nullptr, nullptr, OperandInfo51, -1 ,nullptr }, // Inst #219 = PseudoSW
+ { 220, 1, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Call)|(1ULL<<MCID::Terminator), 0x0ULL, ImplicitList1, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #220 = PseudoTAIL
+ { 221, 1, 0, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Call)|(1ULL<<MCID::Terminator), 0x0ULL, ImplicitList1, nullptr, OperandInfo52, -1 ,nullptr }, // Inst #221 = PseudoTAILIndirect
+ { 222, 2, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #222 = ReadCycleWide
+ { 223, 6, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo54, -1 ,nullptr }, // Inst #223 = Select_FPR32_Using_CC_GPR
+ { 224, 6, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo55, -1 ,nullptr }, // Inst #224 = Select_FPR64_Using_CC_GPR
+ { 225, 6, 1, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo56, -1 ,nullptr }, // Inst #225 = Select_GPR_Using_CC_GPR
+ { 226, 3, 2, 4, 0, 0|(1ULL<<MCID::Pseudo)|(1ULL<<MCID::UsesCustomInserter), 0x0ULL, nullptr, nullptr, OperandInfo57, -1 ,nullptr }, // Inst #226 = SplitF64Pseudo
+ { 227, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #227 = ADD
+ { 228, 3, 1, 4, 2, 0|(1ULL<<MCID::Rematerializable)|(1ULL<<MCID::CheapAsAMove), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #228 = ADDI
+ { 229, 3, 1, 4, 3, 0, 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #229 = ADDIW
+ { 230, 3, 1, 4, 4, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #230 = ADDW
+ { 231, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #231 = AMOADD_D
+ { 232, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #232 = AMOADD_D_AQ
+ { 233, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #233 = AMOADD_D_AQ_RL
+ { 234, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #234 = AMOADD_D_RL
+ { 235, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #235 = AMOADD_W
+ { 236, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #236 = AMOADD_W_AQ
+ { 237, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #237 = AMOADD_W_AQ_RL
+ { 238, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #238 = AMOADD_W_RL
+ { 239, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #239 = AMOAND_D
+ { 240, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #240 = AMOAND_D_AQ
+ { 241, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #241 = AMOAND_D_AQ_RL
+ { 242, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #242 = AMOAND_D_RL
+ { 243, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #243 = AMOAND_W
+ { 244, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #244 = AMOAND_W_AQ
+ { 245, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #245 = AMOAND_W_AQ_RL
+ { 246, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #246 = AMOAND_W_RL
+ { 247, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #247 = AMOMAXU_D
+ { 248, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #248 = AMOMAXU_D_AQ
+ { 249, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #249 = AMOMAXU_D_AQ_RL
+ { 250, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #250 = AMOMAXU_D_RL
+ { 251, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #251 = AMOMAXU_W
+ { 252, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #252 = AMOMAXU_W_AQ
+ { 253, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #253 = AMOMAXU_W_AQ_RL
+ { 254, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #254 = AMOMAXU_W_RL
+ { 255, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #255 = AMOMAX_D
+ { 256, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #256 = AMOMAX_D_AQ
+ { 257, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #257 = AMOMAX_D_AQ_RL
+ { 258, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #258 = AMOMAX_D_RL
+ { 259, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #259 = AMOMAX_W
+ { 260, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #260 = AMOMAX_W_AQ
+ { 261, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #261 = AMOMAX_W_AQ_RL
+ { 262, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #262 = AMOMAX_W_RL
+ { 263, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #263 = AMOMINU_D
+ { 264, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #264 = AMOMINU_D_AQ
+ { 265, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #265 = AMOMINU_D_AQ_RL
+ { 266, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #266 = AMOMINU_D_RL
+ { 267, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #267 = AMOMINU_W
+ { 268, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #268 = AMOMINU_W_AQ
+ { 269, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #269 = AMOMINU_W_AQ_RL
+ { 270, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #270 = AMOMINU_W_RL
+ { 271, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #271 = AMOMIN_D
+ { 272, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #272 = AMOMIN_D_AQ
+ { 273, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #273 = AMOMIN_D_AQ_RL
+ { 274, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #274 = AMOMIN_D_RL
+ { 275, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #275 = AMOMIN_W
+ { 276, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #276 = AMOMIN_W_AQ
+ { 277, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #277 = AMOMIN_W_AQ_RL
+ { 278, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #278 = AMOMIN_W_RL
+ { 279, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #279 = AMOOR_D
+ { 280, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #280 = AMOOR_D_AQ
+ { 281, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #281 = AMOOR_D_AQ_RL
+ { 282, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #282 = AMOOR_D_RL
+ { 283, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #283 = AMOOR_W
+ { 284, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #284 = AMOOR_W_AQ
+ { 285, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #285 = AMOOR_W_AQ_RL
+ { 286, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #286 = AMOOR_W_RL
+ { 287, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #287 = AMOSWAP_D
+ { 288, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #288 = AMOSWAP_D_AQ
+ { 289, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #289 = AMOSWAP_D_AQ_RL
+ { 290, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #290 = AMOSWAP_D_RL
+ { 291, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #291 = AMOSWAP_W
+ { 292, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #292 = AMOSWAP_W_AQ
+ { 293, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #293 = AMOSWAP_W_AQ_RL
+ { 294, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #294 = AMOSWAP_W_RL
+ { 295, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #295 = AMOXOR_D
+ { 296, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #296 = AMOXOR_D_AQ
+ { 297, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #297 = AMOXOR_D_AQ_RL
+ { 298, 3, 1, 4, 5, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #298 = AMOXOR_D_RL
+ { 299, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #299 = AMOXOR_W
+ { 300, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #300 = AMOXOR_W_AQ
+ { 301, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #301 = AMOXOR_W_AQ_RL
+ { 302, 3, 1, 4, 6, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #302 = AMOXOR_W_RL
+ { 303, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #303 = AND
+ { 304, 3, 1, 4, 2, 0, 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #304 = ANDI
+ { 305, 2, 1, 4, 7, 0, 0x6ULL, nullptr, nullptr, OperandInfo60, -1 ,nullptr }, // Inst #305 = AUIPC
+ { 306, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #306 = BEQ
+ { 307, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #307 = BGE
+ { 308, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #308 = BGEU
+ { 309, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #309 = BLT
+ { 310, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #310 = BLTU
+ { 311, 3, 0, 4, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0x5ULL, nullptr, nullptr, OperandInfo61, -1 ,nullptr }, // Inst #311 = BNE
+ { 312, 3, 1, 4, 9, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo62, -1 ,nullptr }, // Inst #312 = CSRRC
+ { 313, 3, 1, 4, 10, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo63, -1 ,nullptr }, // Inst #313 = CSRRCI
+ { 314, 3, 1, 4, 9, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo62, -1 ,nullptr }, // Inst #314 = CSRRS
+ { 315, 3, 1, 4, 10, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo63, -1 ,nullptr }, // Inst #315 = CSRRSI
+ { 316, 3, 1, 4, 9, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo62, -1 ,nullptr }, // Inst #316 = CSRRW
+ { 317, 3, 1, 4, 10, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo63, -1 ,nullptr }, // Inst #317 = CSRRWI
+ { 318, 3, 1, 2, 1, 0, 0x8ULL, nullptr, nullptr, OperandInfo64, -1 ,nullptr }, // Inst #318 = C_ADD
+ { 319, 3, 1, 2, 2, 0, 0x9ULL, nullptr, nullptr, OperandInfo65, -1 ,nullptr }, // Inst #319 = C_ADDI
+ { 320, 3, 1, 2, 2, 0, 0x9ULL, nullptr, nullptr, OperandInfo66, -1 ,nullptr }, // Inst #320 = C_ADDI16SP
+ { 321, 3, 1, 2, 2, 0, 0xbULL, ImplicitList1, nullptr, OperandInfo67, -1 ,nullptr }, // Inst #321 = C_ADDI4SPN
+ { 322, 3, 1, 2, 3, 0, 0x9ULL, nullptr, nullptr, OperandInfo65, -1 ,nullptr }, // Inst #322 = C_ADDIW
+ { 323, 3, 1, 2, 2, 0, 0x9ULL, nullptr, nullptr, OperandInfo65, -1 ,nullptr }, // Inst #323 = C_ADDI_HINT_IMM_ZERO
+ { 324, 3, 1, 2, 2, 0, 0x9ULL, nullptr, nullptr, OperandInfo68, -1 ,nullptr }, // Inst #324 = C_ADDI_HINT_X0
+ { 325, 3, 1, 2, 2, 0, 0x9ULL, nullptr, nullptr, OperandInfo68, -1 ,nullptr }, // Inst #325 = C_ADDI_NOP
+ { 326, 3, 1, 2, 4, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #326 = C_ADDW
+ { 327, 3, 1, 2, 1, 0, 0x8ULL, nullptr, nullptr, OperandInfo70, -1 ,nullptr }, // Inst #327 = C_ADD_HINT
+ { 328, 3, 1, 2, 1, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #328 = C_AND
+ { 329, 3, 1, 2, 2, 0, 0xfULL, nullptr, nullptr, OperandInfo71, -1 ,nullptr }, // Inst #329 = C_ANDI
+ { 330, 2, 0, 2, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0xfULL, nullptr, nullptr, OperandInfo72, -1 ,nullptr }, // Inst #330 = C_BEQZ
+ { 331, 2, 0, 2, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Terminator), 0xfULL, nullptr, nullptr, OperandInfo72, -1 ,nullptr }, // Inst #331 = C_BNEZ
+ { 332, 0, 0, 2, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x8ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #332 = C_EBREAK
+ { 333, 3, 1, 2, 11, 0|(1ULL<<MCID::MayLoad), 0xcULL, nullptr, nullptr, OperandInfo73, -1 ,nullptr }, // Inst #333 = C_FLD
+ { 334, 3, 1, 2, 11, 0|(1ULL<<MCID::MayLoad), 0x9ULL, nullptr, nullptr, OperandInfo74, -1 ,nullptr }, // Inst #334 = C_FLDSP
+ { 335, 3, 1, 2, 12, 0|(1ULL<<MCID::MayLoad), 0xcULL, nullptr, nullptr, OperandInfo75, -1 ,nullptr }, // Inst #335 = C_FLW
+ { 336, 3, 1, 2, 12, 0|(1ULL<<MCID::MayLoad), 0x9ULL, nullptr, nullptr, OperandInfo76, -1 ,nullptr }, // Inst #336 = C_FLWSP
+ { 337, 3, 0, 2, 13, 0|(1ULL<<MCID::MayStore), 0xdULL, nullptr, nullptr, OperandInfo73, -1 ,nullptr }, // Inst #337 = C_FSD
+ { 338, 3, 0, 2, 13, 0|(1ULL<<MCID::MayStore), 0xaULL, nullptr, nullptr, OperandInfo74, -1 ,nullptr }, // Inst #338 = C_FSDSP
+ { 339, 3, 0, 2, 14, 0|(1ULL<<MCID::MayStore), 0xdULL, nullptr, nullptr, OperandInfo75, -1 ,nullptr }, // Inst #339 = C_FSW
+ { 340, 3, 0, 2, 14, 0|(1ULL<<MCID::MayStore), 0xaULL, nullptr, nullptr, OperandInfo76, -1 ,nullptr }, // Inst #340 = C_FSWSP
+ { 341, 1, 0, 2, 8, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator), 0x10ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #341 = C_J
+ { 342, 1, 0, 2, 15, 0|(1ULL<<MCID::Call), 0x10ULL, nullptr, ImplicitList2, OperandInfo2, -1 ,nullptr }, // Inst #342 = C_JAL
+ { 343, 1, 0, 2, 16, 0|(1ULL<<MCID::Call), 0x8ULL, nullptr, ImplicitList2, OperandInfo77, -1 ,nullptr }, // Inst #343 = C_JALR
+ { 344, 1, 0, 2, 17, 0|(1ULL<<MCID::Branch)|(1ULL<<MCID::IndirectBranch)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator), 0x8ULL, nullptr, nullptr, OperandInfo77, -1 ,nullptr }, // Inst #344 = C_JR
+ { 345, 3, 1, 2, 18, 0|(1ULL<<MCID::MayLoad), 0xcULL, nullptr, nullptr, OperandInfo78, -1 ,nullptr }, // Inst #345 = C_LD
+ { 346, 3, 1, 2, 18, 0|(1ULL<<MCID::MayLoad), 0x9ULL, nullptr, nullptr, OperandInfo79, -1 ,nullptr }, // Inst #346 = C_LDSP
+ { 347, 2, 1, 2, 7, 0, 0x9ULL, nullptr, nullptr, OperandInfo80, -1 ,nullptr }, // Inst #347 = C_LI
+ { 348, 2, 1, 2, 7, 0, 0x9ULL, nullptr, nullptr, OperandInfo81, -1 ,nullptr }, // Inst #348 = C_LI_HINT
+ { 349, 2, 1, 2, 7, 0, 0x9ULL, nullptr, nullptr, OperandInfo82, -1 ,nullptr }, // Inst #349 = C_LUI
+ { 350, 2, 1, 2, 7, 0, 0x9ULL, nullptr, nullptr, OperandInfo81, -1 ,nullptr }, // Inst #350 = C_LUI_HINT
+ { 351, 3, 1, 2, 19, 0|(1ULL<<MCID::MayLoad), 0xcULL, nullptr, nullptr, OperandInfo78, -1 ,nullptr }, // Inst #351 = C_LW
+ { 352, 3, 1, 2, 19, 0|(1ULL<<MCID::MayLoad), 0x9ULL, nullptr, nullptr, OperandInfo79, -1 ,nullptr }, // Inst #352 = C_LWSP
+ { 353, 2, 1, 2, 2, 0, 0x8ULL, nullptr, nullptr, OperandInfo83, -1 ,nullptr }, // Inst #353 = C_MV
+ { 354, 2, 1, 2, 2, 0, 0x8ULL, nullptr, nullptr, OperandInfo84, -1 ,nullptr }, // Inst #354 = C_MV_HINT
+ { 355, 0, 0, 2, 20, 0, 0x9ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #355 = C_NOP
+ { 356, 1, 0, 2, 20, 0, 0x9ULL, nullptr, nullptr, OperandInfo2, -1 ,nullptr }, // Inst #356 = C_NOP_HINT
+ { 357, 3, 1, 2, 1, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #357 = C_OR
+ { 358, 3, 0, 2, 21, 0|(1ULL<<MCID::MayStore), 0xdULL, nullptr, nullptr, OperandInfo78, -1 ,nullptr }, // Inst #358 = C_SD
+ { 359, 3, 0, 2, 21, 0|(1ULL<<MCID::MayStore), 0xaULL, nullptr, nullptr, OperandInfo85, -1 ,nullptr }, // Inst #359 = C_SDSP
+ { 360, 3, 1, 2, 22, 0, 0x9ULL, nullptr, nullptr, OperandInfo65, -1 ,nullptr }, // Inst #360 = C_SLLI
+ { 361, 2, 1, 2, 22, 0, 0x9ULL, nullptr, nullptr, OperandInfo86, -1 ,nullptr }, // Inst #361 = C_SLLI64_HINT
+ { 362, 3, 1, 2, 22, 0, 0x9ULL, nullptr, nullptr, OperandInfo68, -1 ,nullptr }, // Inst #362 = C_SLLI_HINT
+ { 363, 3, 1, 2, 22, 0, 0xfULL, nullptr, nullptr, OperandInfo71, -1 ,nullptr }, // Inst #363 = C_SRAI
+ { 364, 2, 1, 2, 22, 0, 0x9ULL, nullptr, nullptr, OperandInfo87, -1 ,nullptr }, // Inst #364 = C_SRAI64_HINT
+ { 365, 3, 1, 2, 22, 0, 0xfULL, nullptr, nullptr, OperandInfo71, -1 ,nullptr }, // Inst #365 = C_SRLI
+ { 366, 2, 1, 2, 22, 0, 0x9ULL, nullptr, nullptr, OperandInfo87, -1 ,nullptr }, // Inst #366 = C_SRLI64_HINT
+ { 367, 3, 1, 2, 1, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #367 = C_SUB
+ { 368, 3, 1, 2, 4, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #368 = C_SUBW
+ { 369, 3, 0, 2, 23, 0|(1ULL<<MCID::MayStore), 0xdULL, nullptr, nullptr, OperandInfo78, -1 ,nullptr }, // Inst #369 = C_SW
+ { 370, 3, 0, 2, 23, 0|(1ULL<<MCID::MayStore), 0xaULL, nullptr, nullptr, OperandInfo85, -1 ,nullptr }, // Inst #370 = C_SWSP
+ { 371, 0, 0, 2, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x11ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #371 = C_UNIMP
+ { 372, 3, 1, 2, 1, 0, 0xeULL, nullptr, nullptr, OperandInfo69, -1 ,nullptr }, // Inst #372 = C_XOR
+ { 373, 3, 1, 4, 24, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #373 = DIV
+ { 374, 3, 1, 4, 24, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #374 = DIVU
+ { 375, 3, 1, 4, 25, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #375 = DIVUW
+ { 376, 3, 1, 4, 25, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #376 = DIVW
+ { 377, 0, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #377 = EBREAK
+ { 378, 0, 0, 4, 8, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #378 = ECALL
+ { 379, 4, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo88, -1 ,nullptr }, // Inst #379 = FADD_D
+ { 380, 4, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo89, -1 ,nullptr }, // Inst #380 = FADD_S
+ { 381, 2, 1, 4, 28, 0, 0x1ULL, nullptr, nullptr, OperandInfo90, -1 ,nullptr }, // Inst #381 = FCLASS_D
+ { 382, 2, 1, 4, 29, 0, 0x1ULL, nullptr, nullptr, OperandInfo91, -1 ,nullptr }, // Inst #382 = FCLASS_S
+ { 383, 3, 1, 4, 30, 0, 0x1ULL, nullptr, nullptr, OperandInfo46, -1 ,nullptr }, // Inst #383 = FCVT_D_L
+ { 384, 3, 1, 4, 30, 0, 0x1ULL, nullptr, nullptr, OperandInfo46, -1 ,nullptr }, // Inst #384 = FCVT_D_LU
+ { 385, 2, 1, 4, 31, 0, 0x1ULL, nullptr, nullptr, OperandInfo92, -1 ,nullptr }, // Inst #385 = FCVT_D_S
+ { 386, 2, 1, 4, 32, 0, 0x1ULL, nullptr, nullptr, OperandInfo93, -1 ,nullptr }, // Inst #386 = FCVT_D_W
+ { 387, 2, 1, 4, 32, 0, 0x1ULL, nullptr, nullptr, OperandInfo93, -1 ,nullptr }, // Inst #387 = FCVT_D_WU
+ { 388, 3, 1, 4, 33, 0, 0x1ULL, nullptr, nullptr, OperandInfo94, -1 ,nullptr }, // Inst #388 = FCVT_LU_D
+ { 389, 3, 1, 4, 34, 0, 0x1ULL, nullptr, nullptr, OperandInfo95, -1 ,nullptr }, // Inst #389 = FCVT_LU_S
+ { 390, 3, 1, 4, 33, 0, 0x1ULL, nullptr, nullptr, OperandInfo94, -1 ,nullptr }, // Inst #390 = FCVT_L_D
+ { 391, 3, 1, 4, 34, 0, 0x1ULL, nullptr, nullptr, OperandInfo95, -1 ,nullptr }, // Inst #391 = FCVT_L_S
+ { 392, 3, 1, 4, 35, 0, 0x1ULL, nullptr, nullptr, OperandInfo96, -1 ,nullptr }, // Inst #392 = FCVT_S_D
+ { 393, 3, 1, 4, 36, 0, 0x1ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #393 = FCVT_S_L
+ { 394, 3, 1, 4, 36, 0, 0x1ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #394 = FCVT_S_LU
+ { 395, 3, 1, 4, 37, 0, 0x1ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #395 = FCVT_S_W
+ { 396, 3, 1, 4, 37, 0, 0x1ULL, nullptr, nullptr, OperandInfo47, -1 ,nullptr }, // Inst #396 = FCVT_S_WU
+ { 397, 3, 1, 4, 38, 0, 0x1ULL, nullptr, nullptr, OperandInfo94, -1 ,nullptr }, // Inst #397 = FCVT_WU_D
+ { 398, 3, 1, 4, 39, 0, 0x1ULL, nullptr, nullptr, OperandInfo95, -1 ,nullptr }, // Inst #398 = FCVT_WU_S
+ { 399, 3, 1, 4, 38, 0, 0x1ULL, nullptr, nullptr, OperandInfo94, -1 ,nullptr }, // Inst #399 = FCVT_W_D
+ { 400, 3, 1, 4, 39, 0, 0x1ULL, nullptr, nullptr, OperandInfo95, -1 ,nullptr }, // Inst #400 = FCVT_W_S
+ { 401, 4, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo88, -1 ,nullptr }, // Inst #401 = FDIV_D
+ { 402, 4, 1, 4, 40, 0, 0x1ULL, nullptr, nullptr, OperandInfo89, -1 ,nullptr }, // Inst #402 = FDIV_S
+ { 403, 2, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, OperandInfo97, -1 ,nullptr }, // Inst #403 = FENCE
+ { 404, 0, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #404 = FENCE_I
+ { 405, 0, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #405 = FENCE_TSO
+ { 406, 3, 1, 4, 41, 0, 0x1ULL, nullptr, nullptr, OperandInfo98, -1 ,nullptr }, // Inst #406 = FEQ_D
+ { 407, 3, 1, 4, 42, 0, 0x1ULL, nullptr, nullptr, OperandInfo99, -1 ,nullptr }, // Inst #407 = FEQ_S
+ { 408, 3, 1, 4, 11, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo100, -1 ,nullptr }, // Inst #408 = FLD
+ { 409, 3, 1, 4, 41, 0, 0x1ULL, nullptr, nullptr, OperandInfo98, -1 ,nullptr }, // Inst #409 = FLE_D
+ { 410, 3, 1, 4, 42, 0, 0x1ULL, nullptr, nullptr, OperandInfo99, -1 ,nullptr }, // Inst #410 = FLE_S
+ { 411, 3, 1, 4, 41, 0, 0x1ULL, nullptr, nullptr, OperandInfo98, -1 ,nullptr }, // Inst #411 = FLT_D
+ { 412, 3, 1, 4, 42, 0, 0x1ULL, nullptr, nullptr, OperandInfo99, -1 ,nullptr }, // Inst #412 = FLT_S
+ { 413, 3, 1, 4, 12, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo101, -1 ,nullptr }, // Inst #413 = FLW
+ { 414, 5, 1, 4, 43, 0, 0x2ULL, nullptr, nullptr, OperandInfo102, -1 ,nullptr }, // Inst #414 = FMADD_D
+ { 415, 5, 1, 4, 44, 0, 0x2ULL, nullptr, nullptr, OperandInfo103, -1 ,nullptr }, // Inst #415 = FMADD_S
+ { 416, 3, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo104, -1 ,nullptr }, // Inst #416 = FMAX_D
+ { 417, 3, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo105, -1 ,nullptr }, // Inst #417 = FMAX_S
+ { 418, 3, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo104, -1 ,nullptr }, // Inst #418 = FMIN_D
+ { 419, 3, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo105, -1 ,nullptr }, // Inst #419 = FMIN_S
+ { 420, 5, 1, 4, 45, 0, 0x2ULL, nullptr, nullptr, OperandInfo102, -1 ,nullptr }, // Inst #420 = FMSUB_D
+ { 421, 5, 1, 4, 46, 0, 0x2ULL, nullptr, nullptr, OperandInfo103, -1 ,nullptr }, // Inst #421 = FMSUB_S
+ { 422, 4, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo88, -1 ,nullptr }, // Inst #422 = FMUL_D
+ { 423, 4, 1, 4, 47, 0, 0x1ULL, nullptr, nullptr, OperandInfo89, -1 ,nullptr }, // Inst #423 = FMUL_S
+ { 424, 2, 1, 4, 48, 0, 0x1ULL, nullptr, nullptr, OperandInfo93, -1 ,nullptr }, // Inst #424 = FMV_D_X
+ { 425, 2, 1, 4, 49, 0, 0x1ULL, nullptr, nullptr, OperandInfo106, -1 ,nullptr }, // Inst #425 = FMV_W_X
+ { 426, 2, 1, 4, 50, 0, 0x1ULL, nullptr, nullptr, OperandInfo90, -1 ,nullptr }, // Inst #426 = FMV_X_D
+ { 427, 2, 1, 4, 51, 0, 0x1ULL, nullptr, nullptr, OperandInfo91, -1 ,nullptr }, // Inst #427 = FMV_X_W
+ { 428, 5, 1, 4, 43, 0, 0x2ULL, nullptr, nullptr, OperandInfo102, -1 ,nullptr }, // Inst #428 = FNMADD_D
+ { 429, 5, 1, 4, 44, 0, 0x2ULL, nullptr, nullptr, OperandInfo103, -1 ,nullptr }, // Inst #429 = FNMADD_S
+ { 430, 5, 1, 4, 45, 0, 0x2ULL, nullptr, nullptr, OperandInfo102, -1 ,nullptr }, // Inst #430 = FNMSUB_D
+ { 431, 5, 1, 4, 46, 0, 0x2ULL, nullptr, nullptr, OperandInfo103, -1 ,nullptr }, // Inst #431 = FNMSUB_S
+ { 432, 3, 0, 4, 13, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo100, -1 ,nullptr }, // Inst #432 = FSD
+ { 433, 3, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo104, -1 ,nullptr }, // Inst #433 = FSGNJN_D
+ { 434, 3, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo105, -1 ,nullptr }, // Inst #434 = FSGNJN_S
+ { 435, 3, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo104, -1 ,nullptr }, // Inst #435 = FSGNJX_D
+ { 436, 3, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo105, -1 ,nullptr }, // Inst #436 = FSGNJX_S
+ { 437, 3, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo104, -1 ,nullptr }, // Inst #437 = FSGNJ_D
+ { 438, 3, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo105, -1 ,nullptr }, // Inst #438 = FSGNJ_S
+ { 439, 3, 1, 4, 52, 0, 0x1ULL, nullptr, nullptr, OperandInfo107, -1 ,nullptr }, // Inst #439 = FSQRT_D
+ { 440, 3, 1, 4, 52, 0, 0x1ULL, nullptr, nullptr, OperandInfo108, -1 ,nullptr }, // Inst #440 = FSQRT_S
+ { 441, 4, 1, 4, 26, 0, 0x1ULL, nullptr, nullptr, OperandInfo88, -1 ,nullptr }, // Inst #441 = FSUB_D
+ { 442, 4, 1, 4, 27, 0, 0x1ULL, nullptr, nullptr, OperandInfo89, -1 ,nullptr }, // Inst #442 = FSUB_S
+ { 443, 3, 0, 4, 14, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo101, -1 ,nullptr }, // Inst #443 = FSW
+ { 444, 2, 1, 4, 15, 0|(1ULL<<MCID::Call), 0x7ULL, nullptr, nullptr, OperandInfo109, -1 ,nullptr }, // Inst #444 = JAL
+ { 445, 3, 1, 4, 16, 0|(1ULL<<MCID::Call), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #445 = JALR
+ { 446, 3, 1, 4, 53, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #446 = LB
+ { 447, 3, 1, 4, 53, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #447 = LBU
+ { 448, 3, 1, 4, 18, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #448 = LD
+ { 449, 3, 1, 4, 54, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #449 = LH
+ { 450, 3, 1, 4, 54, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #450 = LHU
+ { 451, 2, 1, 4, 55, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #451 = LR_D
+ { 452, 2, 1, 4, 55, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #452 = LR_D_AQ
+ { 453, 2, 1, 4, 55, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #453 = LR_D_AQ_RL
+ { 454, 2, 1, 4, 55, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #454 = LR_D_RL
+ { 455, 2, 1, 4, 56, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #455 = LR_W
+ { 456, 2, 1, 4, 56, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #456 = LR_W_AQ
+ { 457, 2, 1, 4, 56, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #457 = LR_W_AQ_RL
+ { 458, 2, 1, 4, 56, 0|(1ULL<<MCID::MayLoad), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #458 = LR_W_RL
+ { 459, 2, 1, 4, 7, 0|(1ULL<<MCID::Rematerializable)|(1ULL<<MCID::CheapAsAMove), 0x6ULL, nullptr, nullptr, OperandInfo60, -1 ,nullptr }, // Inst #459 = LUI
+ { 460, 3, 1, 4, 19, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #460 = LW
+ { 461, 3, 1, 4, 57, 0|(1ULL<<MCID::MayLoad), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #461 = LWU
+ { 462, 2, 0, 4, 0, 0|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::UnmodeledSideEffects), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #462 = MRET
+ { 463, 3, 1, 4, 58, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #463 = MUL
+ { 464, 3, 1, 4, 58, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #464 = MULH
+ { 465, 3, 1, 4, 58, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #465 = MULHSU
+ { 466, 3, 1, 4, 58, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #466 = MULHU
+ { 467, 3, 1, 4, 59, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #467 = MULW
+ { 468, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #468 = OR
+ { 469, 3, 1, 4, 2, 0|(1ULL<<MCID::Rematerializable)|(1ULL<<MCID::CheapAsAMove), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #469 = ORI
+ { 470, 3, 1, 4, 24, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #470 = REM
+ { 471, 3, 1, 4, 24, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #471 = REMU
+ { 472, 3, 1, 4, 25, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #472 = REMUW
+ { 473, 3, 1, 4, 25, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #473 = REMW
+ { 474, 3, 0, 4, 60, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #474 = SB
+ { 475, 3, 1, 4, 61, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #475 = SC_D
+ { 476, 3, 1, 4, 61, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #476 = SC_D_AQ
+ { 477, 3, 1, 4, 61, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #477 = SC_D_AQ_RL
+ { 478, 3, 1, 4, 61, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #478 = SC_D_RL
+ { 479, 3, 1, 4, 62, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #479 = SC_W
+ { 480, 3, 1, 4, 62, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #480 = SC_W_AQ
+ { 481, 3, 1, 4, 62, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #481 = SC_W_AQ_RL
+ { 482, 3, 1, 4, 62, 0|(1ULL<<MCID::MayLoad)|(1ULL<<MCID::MayStore), 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #482 = SC_W_RL
+ { 483, 3, 0, 4, 21, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #483 = SD
+ { 484, 2, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #484 = SFENCE_VMA
+ { 485, 3, 0, 4, 63, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #485 = SH
+ { 486, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #486 = SLL
+ { 487, 3, 1, 4, 22, 0, 0x3ULL, nullptr, nullptr, OperandInfo110, -1 ,nullptr }, // Inst #487 = SLLI
+ { 488, 3, 1, 4, 64, 0, 0x3ULL, nullptr, nullptr, OperandInfo111, -1 ,nullptr }, // Inst #488 = SLLIW
+ { 489, 3, 1, 4, 4, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #489 = SLLW
+ { 490, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #490 = SLT
+ { 491, 3, 1, 4, 2, 0, 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #491 = SLTI
+ { 492, 3, 1, 4, 2, 0, 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #492 = SLTIU
+ { 493, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #493 = SLTU
+ { 494, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #494 = SRA
+ { 495, 3, 1, 4, 22, 0, 0x3ULL, nullptr, nullptr, OperandInfo110, -1 ,nullptr }, // Inst #495 = SRAI
+ { 496, 3, 1, 4, 64, 0, 0x3ULL, nullptr, nullptr, OperandInfo111, -1 ,nullptr }, // Inst #496 = SRAIW
+ { 497, 3, 1, 4, 4, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #497 = SRAW
+ { 498, 2, 0, 4, 0, 0|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::UnmodeledSideEffects), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #498 = SRET
+ { 499, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #499 = SRL
+ { 500, 3, 1, 4, 22, 0, 0x3ULL, nullptr, nullptr, OperandInfo110, -1 ,nullptr }, // Inst #500 = SRLI
+ { 501, 3, 1, 4, 64, 0, 0x3ULL, nullptr, nullptr, OperandInfo111, -1 ,nullptr }, // Inst #501 = SRLIW
+ { 502, 3, 1, 4, 4, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #502 = SRLW
+ { 503, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #503 = SUB
+ { 504, 3, 1, 4, 4, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #504 = SUBW
+ { 505, 3, 0, 4, 23, 0|(1ULL<<MCID::MayStore), 0x4ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #505 = SW
+ { 506, 0, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x3ULL, nullptr, nullptr, nullptr, -1 ,nullptr }, // Inst #506 = UNIMP
+ { 507, 2, 0, 4, 0, 0|(1ULL<<MCID::Return)|(1ULL<<MCID::Barrier)|(1ULL<<MCID::Terminator)|(1ULL<<MCID::UnmodeledSideEffects), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #507 = URET
+ { 508, 2, 0, 4, 0, 0|(1ULL<<MCID::UnmodeledSideEffects), 0x1ULL, nullptr, nullptr, OperandInfo53, -1 ,nullptr }, // Inst #508 = WFI
+ { 509, 3, 1, 4, 1, 0, 0x1ULL, nullptr, nullptr, OperandInfo58, -1 ,nullptr }, // Inst #509 = XOR
+ { 510, 3, 1, 4, 2, 0|(1ULL<<MCID::Rematerializable)|(1ULL<<MCID::CheapAsAMove), 0x3ULL, nullptr, nullptr, OperandInfo59, -1 ,nullptr }, // Inst #510 = XORI
+};
+
+extern const char RISCVInstrNameData[] = {
+ /* 0 */ 'G', '_', 'F', 'L', 'O', 'G', '1', '0', 0,
+ /* 9 */ 'C', '_', 'A', 'D', 'D', 'I', '_', 'H', 'I', 'N', 'T', '_', 'X', '0', 0,
+ /* 24 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'S', 'u', 'b', '3', '2', 0,
+ /* 52 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'A', 'd', 'd', '3', '2', 0,
+ /* 80 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'N', 'a', 'n', 'd', '3', '2', 0,
+ /* 109 */ 'P', 's', 'e', 'u', 'd', 'o', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'N', 'a', 'n', 'd', '3', '2', 0,
+ /* 132 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'C', 'm', 'p', 'X', 'c', 'h', 'g', '3', '2', 0,
+ /* 154 */ 'P', 's', 'e', 'u', 'd', 'o', 'C', 'm', 'p', 'X', 'c', 'h', 'g', '3', '2', 0,
+ /* 170 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'U', 'M', 'i', 'n', '3', '2', 0,
+ /* 199 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'M', 'i', 'n', '3', '2', 0,
+ /* 227 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'S', 'w', 'a', 'p', '3', '2', 0,
+ /* 252 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'U', 'M', 'a', 'x', '3', '2', 0,
+ /* 281 */ 'P', 's', 'e', 'u', 'd', 'o', 'M', 'a', 's', 'k', 'e', 'd', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'M', 'a', 'x', '3', '2', 0,
+ /* 309 */ 'G', '_', 'F', 'L', 'O', 'G', '2', 0,
+ /* 317 */ 'G', '_', 'F', 'E', 'X', 'P', '2', 0,
+ /* 325 */ 'P', 's', 'e', 'u', 'd', 'o', 'A', 't', 'o', 'm', 'i', 'c', 'L', 'o', 'a', 'd', 'N', 'a', 'n', 'd', '6', '4', 0,
+ /* 348 */ 'P', 's', 'e', 'u', 'd', 'o', 'C', 'm', 'p', 'X', 'c', 'h', 'g', '6', '4', 0,
+ /* 364 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'L', 'A', 0,
+ /* 374 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'A', 0,
+ /* 383 */ 'G', '_', 'F', 'M', 'A', 0,
+ /* 389 */ 'S', 'F', 'E', 'N', 'C', 'E', '_', 'V', 'M', 'A', 0,
+ /* 400 */ 'S', 'R', 'A', 0,
+ /* 404 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'B', 0,
+ /* 413 */ 'P', 's', 'e', 'u', 'd', 'o', 'S', 'B', 0,
+ /* 422 */ 'G', '_', 'F', 'S', 'U', 'B', 0,
+ /* 429 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'F', 'S', 'U', 'B', 0,
+ /* 446 */ 'C', '_', 'S', 'U', 'B', 0,
+ /* 452 */ 'G', '_', 'S', 'U', 'B', 0,
+ /* 458 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'S', 'U', 'B', 0,
+ /* 474 */ 'G', '_', 'I', 'N', 'T', 'R', 'I', 'N', 'S', 'I', 'C', 0,
+ /* 486 */ 'G', '_', 'F', 'P', 'T', 'R', 'U', 'N', 'C', 0,
+ /* 496 */ 'G', '_', 'I', 'N', 'T', 'R', 'I', 'N', 'S', 'I', 'C', '_', 'T', 'R', 'U', 'N', 'C', 0,
+ /* 514 */ 'G', '_', 'T', 'R', 'U', 'N', 'C', 0,
+ /* 522 */ 'G', '_', 'B', 'U', 'I', 'L', 'D', '_', 'V', 'E', 'C', 'T', 'O', 'R', '_', 'T', 'R', 'U', 'N', 'C', 0,
+ /* 543 */ 'G', '_', 'D', 'Y', 'N', '_', 'S', 'T', 'A', 'C', 'K', 'A', 'L', 'L', 'O', 'C', 0,
+ /* 560 */ 'A', 'U', 'I', 'P', 'C', 0,
+ /* 566 */ 'C', 'S', 'R', 'R', 'C', 0,
+ /* 572 */ 'G', '_', 'F', 'M', 'A', 'D', 0,
+ /* 579 */ 'G', '_', 'I', 'N', 'D', 'E', 'X', 'E', 'D', '_', 'S', 'E', 'X', 'T', 'L', 'O', 'A', 'D', 0,
+ /* 598 */ 'G', '_', 'S', 'E', 'X', 'T', 'L', 'O', 'A', 'D', 0,
+ /* 609 */ 'G', '_', 'I', 'N', 'D', 'E', 'X', 'E', 'D', '_', 'Z', 'E', 'X', 'T', 'L', 'O', 'A', 'D', 0,
+ /* 628 */ 'G', '_', 'Z', 'E', 'X', 'T', 'L', 'O', 'A', 'D', 0,
+ /* 639 */ 'G', '_', 'I', 'N', 'D', 'E', 'X', 'E', 'D', '_', 'L', 'O', 'A', 'D', 0,
+ /* 654 */ 'G', '_', 'L', 'O', 'A', 'D', 0,
+ /* 661 */ 'G', '_', 'F', 'A', 'D', 'D', 0,
+ /* 668 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'F', 'A', 'D', 'D', 0,
+ /* 685 */ 'C', '_', 'A', 'D', 'D', 0,
+ /* 691 */ 'G', '_', 'A', 'D', 'D', 0,
+ /* 697 */ 'G', '_', 'P', 'T', 'R', '_', 'A', 'D', 'D', 0,
+ /* 707 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'A', 'D', 'D', 0,
+ /* 723 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'A', '_', 'T', 'L', 'S', '_', 'G', 'D', 0,
+ /* 739 */ 'C', '_', 'F', 'L', 'D', 0,
+ /* 745 */ 'P', 's', 'e', 'u', 'd', 'o', 'F', 'L', 'D', 0,
+ /* 755 */ 'C', '_', 'L', 'D', 0,
+ /* 760 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'D', 0,
+ /* 769 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'N', 'A', 'N', 'D', 0,
+ /* 786 */ 'C', '_', 'A', 'N', 'D', 0,
+ /* 792 */ 'G', '_', 'A', 'N', 'D', 0,
+ /* 798 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'A', 'N', 'D', 0,
+ /* 814 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'E', 'N', 'D', 0,
+ /* 827 */ 'P', 's', 'e', 'u', 'd', 'o', 'B', 'R', 'I', 'N', 'D', 0,
+ /* 839 */ 'G', '_', 'B', 'R', 'C', 'O', 'N', 'D', 0,
+ /* 848 */ 'G', '_', 'I', 'N', 'T', 'R', 'I', 'N', 'S', 'I', 'C', '_', 'R', 'O', 'U', 'N', 'D', 0,
+ /* 866 */ 'L', 'O', 'A', 'D', '_', 'S', 'T', 'A', 'C', 'K', '_', 'G', 'U', 'A', 'R', 'D', 0,
+ /* 883 */ 'C', '_', 'F', 'S', 'D', 0,
+ /* 889 */ 'P', 's', 'e', 'u', 'd', 'o', 'F', 'S', 'D', 0,
+ /* 899 */ 'C', '_', 'S', 'D', 0,
+ /* 904 */ 'P', 's', 'e', 'u', 'd', 'o', 'S', 'D', 0,
+ /* 913 */ 'F', 'S', 'U', 'B', '_', 'D', 0,
+ /* 920 */ 'F', 'M', 'S', 'U', 'B', '_', 'D', 0,
+ /* 928 */ 'F', 'N', 'M', 'S', 'U', 'B', '_', 'D', 0,
+ /* 937 */ 'S', 'C', '_', 'D', 0,
+ /* 942 */ 'F', 'A', 'D', 'D', '_', 'D', 0,
+ /* 949 */ 'F', 'M', 'A', 'D', 'D', '_', 'D', 0,
+ /* 957 */ 'F', 'N', 'M', 'A', 'D', 'D', '_', 'D', 0,
+ /* 966 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'D', 0,
+ /* 975 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'D', 0,
+ /* 984 */ 'F', 'L', 'E', '_', 'D', 0,
+ /* 990 */ 'F', 'S', 'G', 'N', 'J', '_', 'D', 0,
+ /* 998 */ 'F', 'M', 'U', 'L', '_', 'D', 0,
+ /* 1005 */ 'F', 'C', 'V', 'T', '_', 'L', '_', 'D', 0,
+ /* 1014 */ 'F', 'M', 'I', 'N', '_', 'D', 0,
+ /* 1021 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'D', 0,
+ /* 1030 */ 'F', 'S', 'G', 'N', 'J', 'N', '_', 'D', 0,
+ /* 1039 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'D', 0,
+ /* 1049 */ 'F', 'E', 'Q', '_', 'D', 0,
+ /* 1055 */ 'L', 'R', '_', 'D', 0,
+ /* 1060 */ 'A', 'M', 'O', 'O', 'R', '_', 'D', 0,
+ /* 1068 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'D', 0,
+ /* 1077 */ 'F', 'C', 'L', 'A', 'S', 'S', '_', 'D', 0,
+ /* 1086 */ 'F', 'C', 'V', 'T', '_', 'S', '_', 'D', 0,
+ /* 1095 */ 'F', 'L', 'T', '_', 'D', 0,
+ /* 1101 */ 'F', 'S', 'Q', 'R', 'T', '_', 'D', 0,
+ /* 1109 */ 'F', 'C', 'V', 'T', '_', 'L', 'U', '_', 'D', 0,
+ /* 1119 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'D', 0,
+ /* 1129 */ 'F', 'C', 'V', 'T', '_', 'W', 'U', '_', 'D', 0,
+ /* 1139 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'D', 0,
+ /* 1149 */ 'F', 'D', 'I', 'V', '_', 'D', 0,
+ /* 1156 */ 'F', 'C', 'V', 'T', '_', 'W', '_', 'D', 0,
+ /* 1165 */ 'F', 'M', 'A', 'X', '_', 'D', 0,
+ /* 1172 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'D', 0,
+ /* 1181 */ 'F', 'S', 'G', 'N', 'J', 'X', '_', 'D', 0,
+ /* 1190 */ 'F', 'M', 'V', '_', 'X', '_', 'D', 0,
+ /* 1198 */ 'G', '_', 'S', 'S', 'U', 'B', 'E', 0,
+ /* 1206 */ 'G', '_', 'U', 'S', 'U', 'B', 'E', 0,
+ /* 1214 */ 'G', '_', 'F', 'E', 'N', 'C', 'E', 0,
+ /* 1222 */ 'R', 'E', 'G', '_', 'S', 'E', 'Q', 'U', 'E', 'N', 'C', 'E', 0,
+ /* 1235 */ 'G', '_', 'S', 'A', 'D', 'D', 'E', 0,
+ /* 1243 */ 'G', '_', 'U', 'A', 'D', 'D', 'E', 0,
+ /* 1251 */ 'G', '_', 'F', 'M', 'I', 'N', 'N', 'U', 'M', '_', 'I', 'E', 'E', 'E', 0,
+ /* 1266 */ 'G', '_', 'F', 'M', 'A', 'X', 'N', 'U', 'M', '_', 'I', 'E', 'E', 'E', 0,
+ /* 1281 */ 'B', 'G', 'E', 0,
+ /* 1285 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'A', '_', 'T', 'L', 'S', '_', 'I', 'E', 0,
+ /* 1301 */ 'G', '_', 'J', 'U', 'M', 'P', '_', 'T', 'A', 'B', 'L', 'E', 0,
+ /* 1314 */ 'B', 'U', 'N', 'D', 'L', 'E', 0,
+ /* 1321 */ 'B', 'N', 'E', 0,
+ /* 1325 */ 'L', 'O', 'C', 'A', 'L', '_', 'E', 'S', 'C', 'A', 'P', 'E', 0,
+ /* 1338 */ 'G', '_', 'I', 'N', 'D', 'E', 'X', 'E', 'D', '_', 'S', 'T', 'O', 'R', 'E', 0,
+ /* 1354 */ 'G', '_', 'S', 'T', 'O', 'R', 'E', 0,
+ /* 1362 */ 'G', '_', 'B', 'I', 'T', 'R', 'E', 'V', 'E', 'R', 'S', 'E', 0,
+ /* 1375 */ 'D', 'B', 'G', '_', 'V', 'A', 'L', 'U', 'E', 0,
+ /* 1385 */ 'G', '_', 'G', 'L', 'O', 'B', 'A', 'L', '_', 'V', 'A', 'L', 'U', 'E', 0,
+ /* 1400 */ 'G', '_', 'F', 'C', 'A', 'N', 'O', 'N', 'I', 'C', 'A', 'L', 'I', 'Z', 'E', 0,
+ /* 1416 */ 'G', '_', 'C', 'T', 'L', 'Z', '_', 'Z', 'E', 'R', 'O', '_', 'U', 'N', 'D', 'E', 'F', 0,
+ /* 1434 */ 'G', '_', 'C', 'T', 'T', 'Z', '_', 'Z', 'E', 'R', 'O', '_', 'U', 'N', 'D', 'E', 'F', 0,
+ /* 1452 */ 'G', '_', 'I', 'M', 'P', 'L', 'I', 'C', 'I', 'T', '_', 'D', 'E', 'F', 0,
+ /* 1467 */ 'G', '_', 'F', 'N', 'E', 'G', 0,
+ /* 1474 */ 'E', 'X', 'T', 'R', 'A', 'C', 'T', '_', 'S', 'U', 'B', 'R', 'E', 'G', 0,
+ /* 1489 */ 'I', 'N', 'S', 'E', 'R', 'T', '_', 'S', 'U', 'B', 'R', 'E', 'G', 0,
+ /* 1503 */ 'G', '_', 'S', 'E', 'X', 'T', '_', 'I', 'N', 'R', 'E', 'G', 0,
+ /* 1516 */ 'S', 'U', 'B', 'R', 'E', 'G', '_', 'T', 'O', '_', 'R', 'E', 'G', 0,
+ /* 1530 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'M', 'P', 'X', 'C', 'H', 'G', 0,
+ /* 1547 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'X', 'C', 'H', 'G', 0,
+ /* 1564 */ 'G', '_', 'F', 'L', 'O', 'G', 0,
+ /* 1571 */ 'G', '_', 'V', 'A', 'A', 'R', 'G', 0,
+ /* 1579 */ 'G', '_', 'S', 'M', 'U', 'L', 'H', 0,
+ /* 1587 */ 'G', '_', 'U', 'M', 'U', 'L', 'H', 0,
+ /* 1595 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'H', 0,
+ /* 1604 */ 'P', 's', 'e', 'u', 'd', 'o', 'S', 'H', 0,
+ /* 1613 */ 'C', '_', 'S', 'R', 'A', 'I', 0,
+ /* 1620 */ 'C', 'S', 'R', 'R', 'C', 'I', 0,
+ /* 1627 */ 'C', '_', 'A', 'D', 'D', 'I', 0,
+ /* 1634 */ 'C', '_', 'A', 'N', 'D', 'I', 0,
+ /* 1641 */ 'W', 'F', 'I', 0,
+ /* 1645 */ 'G', '_', 'P', 'H', 'I', 0,
+ /* 1651 */ 'C', '_', 'S', 'L', 'L', 'I', 0,
+ /* 1658 */ 'C', '_', 'S', 'R', 'L', 'I', 0,
+ /* 1665 */ 'C', '_', 'L', 'I', 0,
+ /* 1670 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'I', 0,
+ /* 1679 */ 'X', 'O', 'R', 'I', 0,
+ /* 1684 */ 'G', '_', 'F', 'P', 'T', 'O', 'S', 'I', 0,
+ /* 1693 */ 'C', 'S', 'R', 'R', 'S', 'I', 0,
+ /* 1700 */ 'S', 'L', 'T', 'I', 0,
+ /* 1705 */ 'C', '_', 'L', 'U', 'I', 0,
+ /* 1711 */ 'G', '_', 'F', 'P', 'T', 'O', 'U', 'I', 0,
+ /* 1720 */ 'C', 'S', 'R', 'R', 'W', 'I', 0,
+ /* 1727 */ 'F', 'E', 'N', 'C', 'E', '_', 'I', 0,
+ /* 1735 */ 'C', '_', 'J', 0,
+ /* 1739 */ 'C', '_', 'E', 'B', 'R', 'E', 'A', 'K', 0,
+ /* 1748 */ 'G', '_', 'P', 'T', 'R', '_', 'M', 'A', 'S', 'K', 0,
+ /* 1759 */ 'C', '_', 'J', 'A', 'L', 0,
+ /* 1765 */ 'G', 'C', '_', 'L', 'A', 'B', 'E', 'L', 0,
+ /* 1774 */ 'D', 'B', 'G', '_', 'L', 'A', 'B', 'E', 'L', 0,
+ /* 1784 */ 'E', 'H', '_', 'L', 'A', 'B', 'E', 'L', 0,
+ /* 1793 */ 'A', 'N', 'N', 'O', 'T', 'A', 'T', 'I', 'O', 'N', '_', 'L', 'A', 'B', 'E', 'L', 0,
+ /* 1810 */ 'I', 'C', 'A', 'L', 'L', '_', 'B', 'R', 'A', 'N', 'C', 'H', '_', 'F', 'U', 'N', 'N', 'E', 'L', 0,
+ /* 1830 */ 'G', '_', 'S', 'H', 'L', 0,
+ /* 1836 */ 'P', 's', 'e', 'u', 'd', 'o', 'T', 'A', 'I', 'L', 0,
+ /* 1847 */ 'G', '_', 'F', 'C', 'E', 'I', 'L', 0,
+ /* 1855 */ 'E', 'C', 'A', 'L', 'L', 0,
+ /* 1861 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'T', 'A', 'I', 'L', '_', 'C', 'A', 'L', 'L', 0,
+ /* 1881 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'T', 'Y', 'P', 'E', 'D', '_', 'E', 'V', 'E', 'N', 'T', '_', 'C', 'A', 'L', 'L', 0,
+ /* 1908 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'E', 'V', 'E', 'N', 'T', '_', 'C', 'A', 'L', 'L', 0,
+ /* 1929 */ 'F', 'E', 'N', 'T', 'R', 'Y', '_', 'C', 'A', 'L', 'L', 0,
+ /* 1941 */ 'P', 's', 'e', 'u', 'd', 'o', 'C', 'A', 'L', 'L', 0,
+ /* 1952 */ 'K', 'I', 'L', 'L', 0,
+ /* 1957 */ 'S', 'L', 'L', 0,
+ /* 1961 */ 'S', 'R', 'L', 0,
+ /* 1965 */ 'S', 'C', '_', 'D', '_', 'R', 'L', 0,
+ /* 1973 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'D', '_', 'R', 'L', 0,
+ /* 1985 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'D', '_', 'R', 'L', 0,
+ /* 1997 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'D', '_', 'R', 'L', 0,
+ /* 2009 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'D', '_', 'R', 'L', 0,
+ /* 2022 */ 'L', 'R', '_', 'D', '_', 'R', 'L', 0,
+ /* 2030 */ 'A', 'M', 'O', 'O', 'R', '_', 'D', '_', 'R', 'L', 0,
+ /* 2041 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'D', '_', 'R', 'L', 0,
+ /* 2053 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'D', '_', 'R', 'L', 0,
+ /* 2066 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'D', '_', 'R', 'L', 0,
+ /* 2079 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'D', '_', 'R', 'L', 0,
+ /* 2091 */ 'S', 'C', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2102 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2117 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2132 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2147 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2163 */ 'L', 'R', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2174 */ 'A', 'M', 'O', 'O', 'R', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2188 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2203 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2219 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2235 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'D', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2250 */ 'S', 'C', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2261 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2276 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2291 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2306 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2322 */ 'L', 'R', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2333 */ 'A', 'M', 'O', 'O', 'R', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2347 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2362 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2378 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2394 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'W', '_', 'A', 'Q', '_', 'R', 'L', 0,
+ /* 2409 */ 'S', 'C', '_', 'W', '_', 'R', 'L', 0,
+ /* 2417 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'W', '_', 'R', 'L', 0,
+ /* 2429 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'W', '_', 'R', 'L', 0,
+ /* 2441 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'W', '_', 'R', 'L', 0,
+ /* 2453 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'W', '_', 'R', 'L', 0,
+ /* 2466 */ 'L', 'R', '_', 'W', '_', 'R', 'L', 0,
+ /* 2474 */ 'A', 'M', 'O', 'O', 'R', '_', 'W', '_', 'R', 'L', 0,
+ /* 2485 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'W', '_', 'R', 'L', 0,
+ /* 2497 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'W', '_', 'R', 'L', 0,
+ /* 2510 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'W', '_', 'R', 'L', 0,
+ /* 2523 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'W', '_', 'R', 'L', 0,
+ /* 2535 */ 'G', '_', 'F', 'M', 'U', 'L', 0,
+ /* 2542 */ 'G', '_', 'M', 'U', 'L', 0,
+ /* 2548 */ 'F', 'C', 'V', 'T', '_', 'D', '_', 'L', 0,
+ /* 2557 */ 'F', 'C', 'V', 'T', '_', 'S', '_', 'L', 0,
+ /* 2566 */ 'G', '_', 'F', 'R', 'E', 'M', 0,
+ /* 2573 */ 'G', '_', 'S', 'R', 'E', 'M', 0,
+ /* 2580 */ 'G', '_', 'U', 'R', 'E', 'M', 0,
+ /* 2587 */ 'I', 'N', 'L', 'I', 'N', 'E', 'A', 'S', 'M', 0,
+ /* 2597 */ 'G', '_', 'F', 'M', 'I', 'N', 'I', 'M', 'U', 'M', 0,
+ /* 2608 */ 'G', '_', 'F', 'M', 'A', 'X', 'I', 'M', 'U', 'M', 0,
+ /* 2619 */ 'G', '_', 'F', 'M', 'I', 'N', 'N', 'U', 'M', 0,
+ /* 2629 */ 'G', '_', 'F', 'M', 'A', 'X', 'N', 'U', 'M', 0,
+ /* 2639 */ 'G', '_', 'F', 'C', 'O', 'P', 'Y', 'S', 'I', 'G', 'N', 0,
+ /* 2651 */ 'G', '_', 'S', 'M', 'I', 'N', 0,
+ /* 2658 */ 'G', '_', 'U', 'M', 'I', 'N', 0,
+ /* 2665 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'U', 'M', 'I', 'N', 0,
+ /* 2682 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'M', 'I', 'N', 0,
+ /* 2698 */ 'G', '_', 'F', 'S', 'I', 'N', 0,
+ /* 2705 */ 'C', 'F', 'I', '_', 'I', 'N', 'S', 'T', 'R', 'U', 'C', 'T', 'I', 'O', 'N', 0,
+ /* 2721 */ 'C', '_', 'A', 'D', 'D', 'I', '4', 'S', 'P', 'N', 0,
+ /* 2732 */ 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'D', 'O', 'W', 'N', 0,
+ /* 2749 */ 'G', '_', 'S', 'S', 'U', 'B', 'O', 0,
+ /* 2757 */ 'G', '_', 'U', 'S', 'U', 'B', 'O', 0,
+ /* 2765 */ 'G', '_', 'S', 'A', 'D', 'D', 'O', 0,
+ /* 2773 */ 'G', '_', 'U', 'A', 'D', 'D', 'O', 0,
+ /* 2781 */ 'G', '_', 'S', 'M', 'U', 'L', 'O', 0,
+ /* 2789 */ 'G', '_', 'U', 'M', 'U', 'L', 'O', 0,
+ /* 2797 */ 'C', '_', 'A', 'D', 'D', 'I', '_', 'H', 'I', 'N', 'T', '_', 'I', 'M', 'M', '_', 'Z', 'E', 'R', 'O', 0,
+ /* 2818 */ 'F', 'E', 'N', 'C', 'E', '_', 'T', 'S', 'O', 0,
+ /* 2828 */ 'S', 'T', 'A', 'C', 'K', 'M', 'A', 'P', 0,
+ /* 2837 */ 'G', '_', 'B', 'S', 'W', 'A', 'P', 0,
+ /* 2845 */ 'G', '_', 'S', 'I', 'T', 'O', 'F', 'P', 0,
+ /* 2854 */ 'G', '_', 'U', 'I', 'T', 'O', 'F', 'P', 0,
+ /* 2863 */ 'G', '_', 'F', 'C', 'M', 'P', 0,
+ /* 2870 */ 'G', '_', 'I', 'C', 'M', 'P', 0,
+ /* 2877 */ 'C', '_', 'U', 'N', 'I', 'M', 'P', 0,
+ /* 2885 */ 'C', '_', 'N', 'O', 'P', 0,
+ /* 2891 */ 'C', '_', 'A', 'D', 'D', 'I', '_', 'N', 'O', 'P', 0,
+ /* 2902 */ 'G', '_', 'C', 'T', 'P', 'O', 'P', 0,
+ /* 2910 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'O', 'P', 0,
+ /* 2923 */ 'F', 'A', 'U', 'L', 'T', 'I', 'N', 'G', '_', 'O', 'P', 0,
+ /* 2935 */ 'C', '_', 'A', 'D', 'D', 'I', '1', '6', 'S', 'P', 0,
+ /* 2946 */ 'C', '_', 'F', 'L', 'D', 'S', 'P', 0,
+ /* 2954 */ 'C', '_', 'L', 'D', 'S', 'P', 0,
+ /* 2961 */ 'C', '_', 'F', 'S', 'D', 'S', 'P', 0,
+ /* 2969 */ 'C', '_', 'S', 'D', 'S', 'P', 0,
+ /* 2976 */ 'C', '_', 'F', 'L', 'W', 'S', 'P', 0,
+ /* 2984 */ 'C', '_', 'L', 'W', 'S', 'P', 0,
+ /* 2991 */ 'C', '_', 'F', 'S', 'W', 'S', 'P', 0,
+ /* 2999 */ 'C', '_', 'S', 'W', 'S', 'P', 0,
+ /* 3006 */ 'A', 'D', 'J', 'C', 'A', 'L', 'L', 'S', 'T', 'A', 'C', 'K', 'U', 'P', 0,
+ /* 3021 */ 'G', '_', 'F', 'E', 'X', 'P', 0,
+ /* 3028 */ 'S', 'C', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3036 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3048 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3060 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3072 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3085 */ 'L', 'R', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3093 */ 'A', 'M', 'O', 'O', 'R', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3104 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3116 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3129 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3142 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'D', '_', 'A', 'Q', 0,
+ /* 3154 */ 'S', 'C', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3162 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3174 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3186 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3198 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3211 */ 'L', 'R', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3219 */ 'A', 'M', 'O', 'O', 'R', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3230 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3242 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3255 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3268 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'W', '_', 'A', 'Q', 0,
+ /* 3280 */ 'B', 'E', 'Q', 0,
+ /* 3284 */ 'G', '_', 'B', 'R', 0,
+ /* 3289 */ 'I', 'N', 'L', 'I', 'N', 'E', 'A', 'S', 'M', '_', 'B', 'R', 0,
+ /* 3302 */ 'P', 's', 'e', 'u', 'd', 'o', 'B', 'R', 0,
+ /* 3311 */ 'G', '_', 'B', 'L', 'O', 'C', 'K', '_', 'A', 'D', 'D', 'R', 0,
+ /* 3324 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', '_', 'E', 'N', 'T', 'E', 'R', 0,
+ /* 3349 */ 'G', '_', 'R', 'E', 'A', 'D', 'C', 'Y', 'C', 'L', 'E', 'C', 'O', 'U', 'N', 'T', 'E', 'R', 0,
+ /* 3368 */ 'G', '_', 'R', 'E', 'A', 'D', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 0,
+ /* 3384 */ 'G', '_', 'W', 'R', 'I', 'T', 'E', '_', 'R', 'E', 'G', 'I', 'S', 'T', 'E', 'R', 0,
+ /* 3401 */ 'G', '_', 'A', 'S', 'H', 'R', 0,
+ /* 3408 */ 'G', '_', 'L', 'S', 'H', 'R', 0,
+ /* 3415 */ 'C', '_', 'J', 'R', 0,
+ /* 3420 */ 'C', '_', 'J', 'A', 'L', 'R', 0,
+ /* 3427 */ 'G', '_', 'F', 'F', 'L', 'O', 'O', 'R', 0,
+ /* 3436 */ 'G', '_', 'B', 'U', 'I', 'L', 'D', '_', 'V', 'E', 'C', 'T', 'O', 'R', 0,
+ /* 3451 */ 'G', '_', 'S', 'H', 'U', 'F', 'F', 'L', 'E', '_', 'V', 'E', 'C', 'T', 'O', 'R', 0,
+ /* 3468 */ 'C', '_', 'X', 'O', 'R', 0,
+ /* 3474 */ 'G', '_', 'X', 'O', 'R', 0,
+ /* 3480 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'X', 'O', 'R', 0,
+ /* 3496 */ 'C', '_', 'O', 'R', 0,
+ /* 3501 */ 'G', '_', 'O', 'R', 0,
+ /* 3506 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'O', 'R', 0,
+ /* 3521 */ 'S', 'e', 'l', 'e', 'c', 't', '_', 'F', 'P', 'R', '3', '2', '_', 'U', 's', 'i', 'n', 'g', '_', 'C', 'C', '_', 'G', 'P', 'R', 0,
+ /* 3547 */ 'S', 'e', 'l', 'e', 'c', 't', '_', 'F', 'P', 'R', '6', '4', '_', 'U', 's', 'i', 'n', 'g', '_', 'C', 'C', '_', 'G', 'P', 'R', 0,
+ /* 3573 */ 'S', 'e', 'l', 'e', 'c', 't', '_', 'G', 'P', 'R', '_', 'U', 's', 'i', 'n', 'g', '_', 'C', 'C', '_', 'G', 'P', 'R', 0,
+ /* 3597 */ 'G', '_', 'I', 'N', 'T', 'T', 'O', 'P', 'T', 'R', 0,
+ /* 3608 */ 'G', '_', 'F', 'A', 'B', 'S', 0,
+ /* 3615 */ 'G', '_', 'U', 'N', 'M', 'E', 'R', 'G', 'E', '_', 'V', 'A', 'L', 'U', 'E', 'S', 0,
+ /* 3632 */ 'G', '_', 'M', 'E', 'R', 'G', 'E', '_', 'V', 'A', 'L', 'U', 'E', 'S', 0,
+ /* 3647 */ 'G', '_', 'F', 'C', 'O', 'S', 0,
+ /* 3654 */ 'G', '_', 'C', 'O', 'N', 'C', 'A', 'T', '_', 'V', 'E', 'C', 'T', 'O', 'R', 'S', 0,
+ /* 3671 */ 'C', 'S', 'R', 'R', 'S', 0,
+ /* 3677 */ 'C', 'O', 'P', 'Y', '_', 'T', 'O', '_', 'R', 'E', 'G', 'C', 'L', 'A', 'S', 'S', 0,
+ /* 3694 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', '_', 'C', 'M', 'P', 'X', 'C', 'H', 'G', '_', 'W', 'I', 'T', 'H', '_', 'S', 'U', 'C', 'C', 'E', 'S', 'S', 0,
+ /* 3724 */ 'G', '_', 'I', 'N', 'T', 'R', 'I', 'N', 'S', 'I', 'C', '_', 'W', '_', 'S', 'I', 'D', 'E', '_', 'E', 'F', 'F', 'E', 'C', 'T', 'S', 0,
+ /* 3751 */ 'F', 'S', 'U', 'B', '_', 'S', 0,
+ /* 3758 */ 'F', 'M', 'S', 'U', 'B', '_', 'S', 0,
+ /* 3766 */ 'F', 'N', 'M', 'S', 'U', 'B', '_', 'S', 0,
+ /* 3775 */ 'F', 'A', 'D', 'D', '_', 'S', 0,
+ /* 3782 */ 'F', 'M', 'A', 'D', 'D', '_', 'S', 0,
+ /* 3790 */ 'F', 'N', 'M', 'A', 'D', 'D', '_', 'S', 0,
+ /* 3799 */ 'F', 'C', 'V', 'T', '_', 'D', '_', 'S', 0,
+ /* 3808 */ 'F', 'L', 'E', '_', 'S', 0,
+ /* 3814 */ 'F', 'S', 'G', 'N', 'J', '_', 'S', 0,
+ /* 3822 */ 'F', 'M', 'U', 'L', '_', 'S', 0,
+ /* 3829 */ 'F', 'C', 'V', 'T', '_', 'L', '_', 'S', 0,
+ /* 3838 */ 'F', 'M', 'I', 'N', '_', 'S', 0,
+ /* 3845 */ 'F', 'S', 'G', 'N', 'J', 'N', '_', 'S', 0,
+ /* 3854 */ 'F', 'E', 'Q', '_', 'S', 0,
+ /* 3860 */ 'F', 'C', 'L', 'A', 'S', 'S', '_', 'S', 0,
+ /* 3869 */ 'F', 'L', 'T', '_', 'S', 0,
+ /* 3875 */ 'F', 'S', 'Q', 'R', 'T', '_', 'S', 0,
+ /* 3883 */ 'F', 'C', 'V', 'T', '_', 'L', 'U', '_', 'S', 0,
+ /* 3893 */ 'F', 'C', 'V', 'T', '_', 'W', 'U', '_', 'S', 0,
+ /* 3903 */ 'F', 'D', 'I', 'V', '_', 'S', 0,
+ /* 3910 */ 'F', 'C', 'V', 'T', '_', 'W', '_', 'S', 0,
+ /* 3919 */ 'F', 'M', 'A', 'X', '_', 'S', 0,
+ /* 3926 */ 'F', 'S', 'G', 'N', 'J', 'X', '_', 'S', 0,
+ /* 3935 */ 'G', '_', 'E', 'X', 'T', 'R', 'A', 'C', 'T', 0,
+ /* 3945 */ 'G', '_', 'S', 'E', 'L', 'E', 'C', 'T', 0,
+ /* 3954 */ 'G', '_', 'B', 'R', 'I', 'N', 'D', 'I', 'R', 'E', 'C', 'T', 0,
+ /* 3967 */ 'M', 'R', 'E', 'T', 0,
+ /* 3972 */ 'S', 'R', 'E', 'T', 0,
+ /* 3977 */ 'U', 'R', 'E', 'T', 0,
+ /* 3982 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'R', 'E', 'T', 0,
+ /* 3996 */ 'P', 's', 'e', 'u', 'd', 'o', 'R', 'E', 'T', 0,
+ /* 4006 */ 'P', 'A', 'T', 'C', 'H', 'A', 'B', 'L', 'E', '_', 'F', 'U', 'N', 'C', 'T', 'I', 'O', 'N', '_', 'E', 'X', 'I', 'T', 0,
+ /* 4030 */ 'G', '_', 'B', 'R', 'J', 'T', 0,
+ /* 4037 */ 'B', 'L', 'T', 0,
+ /* 4041 */ 'G', '_', 'E', 'X', 'T', 'R', 'A', 'C', 'T', '_', 'V', 'E', 'C', 'T', 'O', 'R', '_', 'E', 'L', 'T', 0,
+ /* 4062 */ 'G', '_', 'I', 'N', 'S', 'E', 'R', 'T', '_', 'V', 'E', 'C', 'T', 'O', 'R', '_', 'E', 'L', 'T', 0,
+ /* 4082 */ 'S', 'L', 'T', 0,
+ /* 4086 */ 'G', '_', 'F', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 0,
+ /* 4098 */ 'G', '_', 'C', 'O', 'N', 'S', 'T', 'A', 'N', 'T', 0,
+ /* 4109 */ 'C', '_', 'S', 'R', 'A', 'I', '6', '4', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4123 */ 'C', '_', 'S', 'L', 'L', 'I', '6', '4', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4137 */ 'C', '_', 'S', 'R', 'L', 'I', '6', '4', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4151 */ 'C', '_', 'A', 'D', 'D', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4162 */ 'C', '_', 'S', 'L', 'L', 'I', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4174 */ 'C', '_', 'L', 'I', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4184 */ 'C', '_', 'L', 'U', 'I', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4195 */ 'C', '_', 'N', 'O', 'P', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4206 */ 'C', '_', 'M', 'V', '_', 'H', 'I', 'N', 'T', 0,
+ /* 4216 */ 'S', 'T', 'A', 'T', 'E', 'P', 'O', 'I', 'N', 'T', 0,
+ /* 4227 */ 'P', 'A', 'T', 'C', 'H', 'P', 'O', 'I', 'N', 'T', 0,
+ /* 4238 */ 'G', '_', 'P', 'T', 'R', 'T', 'O', 'I', 'N', 'T', 0,
+ /* 4249 */ 'G', '_', 'F', 'R', 'I', 'N', 'T', 0,
+ /* 4257 */ 'G', '_', 'F', 'N', 'E', 'A', 'R', 'B', 'Y', 'I', 'N', 'T', 0,
+ /* 4270 */ 'G', '_', 'V', 'A', 'S', 'T', 'A', 'R', 'T', 0,
+ /* 4280 */ 'L', 'I', 'F', 'E', 'T', 'I', 'M', 'E', '_', 'S', 'T', 'A', 'R', 'T', 0,
+ /* 4295 */ 'G', '_', 'I', 'N', 'S', 'E', 'R', 'T', 0,
+ /* 4304 */ 'G', '_', 'F', 'S', 'Q', 'R', 'T', 0,
+ /* 4312 */ 'G', '_', 'B', 'I', 'T', 'C', 'A', 'S', 'T', 0,
+ /* 4322 */ 'G', '_', 'A', 'D', 'D', 'R', 'S', 'P', 'A', 'C', 'E', '_', 'C', 'A', 'S', 'T', 0,
+ /* 4339 */ 'G', '_', 'F', 'P', 'E', 'X', 'T', 0,
+ /* 4347 */ 'G', '_', 'S', 'E', 'X', 'T', 0,
+ /* 4354 */ 'G', '_', 'A', 'N', 'Y', 'E', 'X', 'T', 0,
+ /* 4363 */ 'G', '_', 'Z', 'E', 'X', 'T', 0,
+ /* 4370 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'B', 'U', 0,
+ /* 4380 */ 'B', 'G', 'E', 'U', 0,
+ /* 4385 */ 'M', 'U', 'L', 'H', 'U', 0,
+ /* 4391 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'H', 'U', 0,
+ /* 4401 */ 'S', 'L', 'T', 'I', 'U', 0,
+ /* 4407 */ 'F', 'C', 'V', 'T', '_', 'D', '_', 'L', 'U', 0,
+ /* 4417 */ 'F', 'C', 'V', 'T', '_', 'S', '_', 'L', 'U', 0,
+ /* 4427 */ 'R', 'E', 'M', 'U', 0,
+ /* 4432 */ 'M', 'U', 'L', 'H', 'S', 'U', 0,
+ /* 4439 */ 'B', 'L', 'T', 'U', 0,
+ /* 4444 */ 'S', 'L', 'T', 'U', 0,
+ /* 4449 */ 'D', 'I', 'V', 'U', 0,
+ /* 4454 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'W', 'U', 0,
+ /* 4464 */ 'F', 'C', 'V', 'T', '_', 'D', '_', 'W', 'U', 0,
+ /* 4474 */ 'F', 'C', 'V', 'T', '_', 'S', '_', 'W', 'U', 0,
+ /* 4484 */ 'G', '_', 'F', 'D', 'I', 'V', 0,
+ /* 4491 */ 'G', '_', 'S', 'D', 'I', 'V', 0,
+ /* 4498 */ 'G', '_', 'U', 'D', 'I', 'V', 0,
+ /* 4505 */ 'C', '_', 'M', 'V', 0,
+ /* 4510 */ 'S', 'R', 'A', 'W', 0,
+ /* 4515 */ 'C', '_', 'S', 'U', 'B', 'W', 0,
+ /* 4522 */ 'C', '_', 'A', 'D', 'D', 'W', 0,
+ /* 4529 */ 'S', 'R', 'A', 'I', 'W', 0,
+ /* 4535 */ 'C', '_', 'A', 'D', 'D', 'I', 'W', 0,
+ /* 4543 */ 'S', 'L', 'L', 'I', 'W', 0,
+ /* 4549 */ 'S', 'R', 'L', 'I', 'W', 0,
+ /* 4555 */ 'C', '_', 'F', 'L', 'W', 0,
+ /* 4561 */ 'P', 's', 'e', 'u', 'd', 'o', 'F', 'L', 'W', 0,
+ /* 4571 */ 'S', 'L', 'L', 'W', 0,
+ /* 4576 */ 'S', 'R', 'L', 'W', 0,
+ /* 4581 */ 'M', 'U', 'L', 'W', 0,
+ /* 4586 */ 'C', '_', 'L', 'W', 0,
+ /* 4591 */ 'P', 's', 'e', 'u', 'd', 'o', 'L', 'W', 0,
+ /* 4600 */ 'R', 'E', 'M', 'W', 0,
+ /* 4605 */ 'G', '_', 'F', 'P', 'O', 'W', 0,
+ /* 4612 */ 'C', 'S', 'R', 'R', 'W', 0,
+ /* 4618 */ 'C', '_', 'F', 'S', 'W', 0,
+ /* 4624 */ 'P', 's', 'e', 'u', 'd', 'o', 'F', 'S', 'W', 0,
+ /* 4634 */ 'C', '_', 'S', 'W', 0,
+ /* 4639 */ 'P', 's', 'e', 'u', 'd', 'o', 'S', 'W', 0,
+ /* 4648 */ 'R', 'E', 'M', 'U', 'W', 0,
+ /* 4654 */ 'D', 'I', 'V', 'U', 'W', 0,
+ /* 4660 */ 'D', 'I', 'V', 'W', 0,
+ /* 4665 */ 'S', 'C', '_', 'W', 0,
+ /* 4670 */ 'A', 'M', 'O', 'A', 'D', 'D', '_', 'W', 0,
+ /* 4679 */ 'A', 'M', 'O', 'A', 'N', 'D', '_', 'W', 0,
+ /* 4688 */ 'F', 'C', 'V', 'T', '_', 'D', '_', 'W', 0,
+ /* 4697 */ 'A', 'M', 'O', 'M', 'I', 'N', '_', 'W', 0,
+ /* 4706 */ 'A', 'M', 'O', 'S', 'W', 'A', 'P', '_', 'W', 0,
+ /* 4716 */ 'L', 'R', '_', 'W', 0,
+ /* 4721 */ 'A', 'M', 'O', 'O', 'R', '_', 'W', 0,
+ /* 4729 */ 'A', 'M', 'O', 'X', 'O', 'R', '_', 'W', 0,
+ /* 4738 */ 'F', 'C', 'V', 'T', '_', 'S', '_', 'W', 0,
+ /* 4747 */ 'A', 'M', 'O', 'M', 'I', 'N', 'U', '_', 'W', 0,
+ /* 4757 */ 'A', 'M', 'O', 'M', 'A', 'X', 'U', '_', 'W', 0,
+ /* 4767 */ 'A', 'M', 'O', 'M', 'A', 'X', '_', 'W', 0,
+ /* 4776 */ 'F', 'M', 'V', '_', 'X', '_', 'W', 0,
+ /* 4784 */ 'G', '_', 'S', 'M', 'A', 'X', 0,
+ /* 4791 */ 'G', '_', 'U', 'M', 'A', 'X', 0,
+ /* 4798 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'U', 'M', 'A', 'X', 0,
+ /* 4815 */ 'G', '_', 'A', 'T', 'O', 'M', 'I', 'C', 'R', 'M', 'W', '_', 'M', 'A', 'X', 0,
+ /* 4831 */ 'G', '_', 'F', 'R', 'A', 'M', 'E', '_', 'I', 'N', 'D', 'E', 'X', 0,
+ /* 4845 */ 'F', 'M', 'V', '_', 'D', '_', 'X', 0,
+ /* 4853 */ 'F', 'M', 'V', '_', 'W', '_', 'X', 0,
+ /* 4861 */ 'C', 'O', 'P', 'Y', 0,
+ /* 4866 */ 'C', '_', 'B', 'N', 'E', 'Z', 0,
+ /* 4873 */ 'G', '_', 'C', 'T', 'L', 'Z', 0,
+ /* 4880 */ 'C', '_', 'B', 'E', 'Q', 'Z', 0,
+ /* 4887 */ 'G', '_', 'C', 'T', 'T', 'Z', 0,
+ /* 4894 */ 'R', 'e', 'a', 'd', 'C', 'y', 'c', 'l', 'e', 'W', 'i', 'd', 'e', 0,
+ /* 4908 */ 'P', 's', 'e', 'u', 'd', 'o', 'C', 'A', 'L', 'L', 'R', 'e', 'g', 0,
+ /* 4922 */ 'P', 's', 'e', 'u', 'd', 'o', 'A', 'd', 'd', 'T', 'P', 'R', 'e', 'l', 0,
+ /* 4937 */ 'B', 'u', 'i', 'l', 'd', 'P', 'a', 'i', 'r', 'F', '6', '4', 'P', 's', 'e', 'u', 'd', 'o', 0,
+ /* 4956 */ 'S', 'p', 'l', 'i', 't', 'F', '6', '4', 'P', 's', 'e', 'u', 'd', 'o', 0,
+ /* 4971 */ 'P', 's', 'e', 'u', 'd', 'o', 'T', 'A', 'I', 'L', 'I', 'n', 'd', 'i', 'r', 'e', 'c', 't', 0,
+ /* 4990 */ 'P', 's', 'e', 'u', 'd', 'o', 'C', 'A', 'L', 'L', 'I', 'n', 'd', 'i', 'r', 'e', 'c', 't', 0,
+};
+
+extern const unsigned RISCVInstrNameIndices[] = {
+ 1647U, 2587U, 3289U, 2705U, 1784U, 1765U, 1793U, 1952U,
+ 1474U, 1489U, 1454U, 1516U, 3677U, 1375U, 1774U, 1222U,
+ 4861U, 1314U, 4280U, 814U, 2828U, 1929U, 4227U, 866U,
+ 4216U, 1325U, 2923U, 2910U, 3324U, 3982U, 4006U, 1861U,
+ 1908U, 1881U, 1810U, 691U, 452U, 2542U, 4491U, 4498U,
+ 2573U, 2580U, 792U, 3501U, 3474U, 1452U, 1645U, 4831U,
+ 1385U, 3935U, 3615U, 4295U, 3632U, 3436U, 522U, 3654U,
+ 4238U, 3597U, 4312U, 496U, 848U, 3349U, 654U, 598U,
+ 628U, 639U, 579U, 609U, 1354U, 1338U, 3694U, 1530U,
+ 1547U, 707U, 458U, 798U, 769U, 3506U, 3480U, 4815U,
+ 2682U, 4798U, 2665U, 668U, 429U, 1214U, 839U, 3954U,
+ 474U, 3724U, 4354U, 514U, 4098U, 4086U, 4270U, 1571U,
+ 4347U, 1503U, 4363U, 1830U, 3408U, 3401U, 2870U, 2863U,
+ 3945U, 2773U, 1243U, 2757U, 1206U, 2765U, 1235U, 2749U,
+ 1198U, 2789U, 2781U, 1587U, 1579U, 661U, 422U, 2535U,
+ 383U, 572U, 4484U, 2566U, 4605U, 3021U, 317U, 1564U,
+ 309U, 0U, 1467U, 4339U, 486U, 1684U, 1711U, 2845U,
+ 2854U, 3608U, 2639U, 1400U, 2619U, 2629U, 1251U, 1266U,
+ 2597U, 2608U, 697U, 1748U, 2651U, 4784U, 2658U, 4791U,
+ 3284U, 4030U, 4062U, 4041U, 3451U, 4887U, 1434U, 4873U,
+ 1416U, 2902U, 2837U, 1362U, 1847U, 3647U, 2698U, 4304U,
+ 3427U, 4249U, 4257U, 4322U, 3311U, 1301U, 543U, 3368U,
+ 3384U, 2732U, 3006U, 4937U, 4922U, 109U, 325U, 3302U,
+ 827U, 1941U, 4990U, 4908U, 154U, 348U, 745U, 4561U,
+ 889U, 4624U, 374U, 723U, 1285U, 404U, 4370U, 760U,
+ 1595U, 4391U, 1670U, 364U, 4591U, 4454U, 52U, 281U,
+ 199U, 80U, 24U, 252U, 170U, 227U, 132U, 3996U,
+ 413U, 904U, 1604U, 4639U, 1836U, 4971U, 4894U, 3521U,
+ 3547U, 3573U, 4956U, 664U, 1629U, 4537U, 4524U, 966U,
+ 3036U, 2102U, 1973U, 4670U, 3162U, 2261U, 2417U, 975U,
+ 3048U, 2117U, 1985U, 4679U, 3174U, 2276U, 2429U, 1139U,
+ 3129U, 2219U, 2066U, 4757U, 3255U, 2378U, 2510U, 1172U,
+ 3142U, 2235U, 2079U, 4767U, 3268U, 2394U, 2523U, 1119U,
+ 3116U, 2203U, 2053U, 4747U, 3242U, 2362U, 2497U, 1021U,
+ 3060U, 2132U, 1997U, 4697U, 3186U, 2291U, 2441U, 1060U,
+ 3093U, 2174U, 2030U, 4721U, 3219U, 2333U, 2474U, 1039U,
+ 3072U, 2147U, 2009U, 4706U, 3198U, 2306U, 2453U, 1068U,
+ 3104U, 2188U, 2041U, 4729U, 3230U, 2347U, 2485U, 782U,
+ 1636U, 560U, 3280U, 1281U, 4380U, 4037U, 4439U, 1321U,
+ 566U, 1620U, 3671U, 1693U, 4612U, 1720U, 685U, 1627U,
+ 2935U, 2721U, 4535U, 2797U, 9U, 2891U, 4522U, 4151U,
+ 786U, 1634U, 4880U, 4866U, 1739U, 739U, 2946U, 4555U,
+ 2976U, 883U, 2961U, 4618U, 2991U, 1735U, 1759U, 3420U,
+ 3415U, 755U, 2954U, 1665U, 4174U, 1705U, 4184U, 4586U,
+ 2984U, 4505U, 4206U, 2885U, 4195U, 3496U, 899U, 2969U,
+ 1651U, 4123U, 4162U, 1613U, 4109U, 1658U, 4137U, 446U,
+ 4515U, 4634U, 2999U, 2877U, 3468U, 4487U, 4449U, 4654U,
+ 4660U, 1741U, 1855U, 942U, 3775U, 1077U, 3860U, 2548U,
+ 4407U, 3799U, 4688U, 4464U, 1109U, 3883U, 1005U, 3829U,
+ 1086U, 2557U, 4417U, 4738U, 4474U, 1129U, 3893U, 1156U,
+ 3910U, 1149U, 3903U, 1216U, 1727U, 2818U, 1049U, 3854U,
+ 741U, 984U, 3808U, 1095U, 3869U, 4557U, 949U, 3782U,
+ 1165U, 3919U, 1014U, 3838U, 920U, 3758U, 998U, 3822U,
+ 4845U, 4853U, 1190U, 4776U, 957U, 3790U, 928U, 3766U,
+ 885U, 1030U, 3845U, 1181U, 3926U, 990U, 3814U, 1101U,
+ 3875U, 913U, 3751U, 4620U, 1761U, 3422U, 410U, 4376U,
+ 742U, 1584U, 4387U, 1055U, 3085U, 2163U, 2022U, 4716U,
+ 3211U, 2322U, 2466U, 1707U, 4558U, 4460U, 3967U, 2538U,
+ 1582U, 4432U, 4385U, 4581U, 3433U, 1680U, 2569U, 4427U,
+ 4648U, 4600U, 419U, 937U, 3028U, 2091U, 1965U, 4665U,
+ 3154U, 2250U, 2409U, 886U, 389U, 1610U, 1957U, 1653U,
+ 4543U, 4571U, 4082U, 1700U, 4401U, 4444U, 400U, 1615U,
+ 4529U, 4510U, 3972U, 1961U, 1660U, 4549U, 4576U, 425U,
+ 4517U, 4621U, 2879U, 3977U, 1641U, 3470U, 1679U,
+};
+
+static inline void InitRISCVMCInstrInfo(MCInstrInfo *II) {
+ II->InitMCInstrInfo(RISCVInsts, RISCVInstrNameIndices, RISCVInstrNameData, 511);
+}
+
+} // end namespace llvm
+#endif // GET_INSTRINFO_MC_DESC
+
+#ifdef GET_INSTRINFO_HEADER
+#undef GET_INSTRINFO_HEADER
+namespace llvm {
+struct RISCVGenInstrInfo : public TargetInstrInfo {
+ explicit RISCVGenInstrInfo(int CFSetupOpcode = -1, int CFDestroyOpcode = -1, int CatchRetOpcode = -1, int ReturnOpcode = -1);
+ ~RISCVGenInstrInfo() override = default;
+
+};
+} // end namespace llvm
+#endif // GET_INSTRINFO_HEADER
+
+#ifdef GET_INSTRINFO_HELPER_DECLS
+#undef GET_INSTRINFO_HELPER_DECLS
+
+
+#endif // GET_INSTRINFO_HELPER_DECLS
+
+#ifdef GET_INSTRINFO_HELPERS
+#undef GET_INSTRINFO_HELPERS
+
+#endif // GET_INSTRINFO_HELPERS
+
+#ifdef GET_INSTRINFO_CTOR_DTOR
+#undef GET_INSTRINFO_CTOR_DTOR
+namespace llvm {
+extern const MCInstrDesc RISCVInsts[];
+extern const unsigned RISCVInstrNameIndices[];
+extern const char RISCVInstrNameData[];
+RISCVGenInstrInfo::RISCVGenInstrInfo(int CFSetupOpcode, int CFDestroyOpcode, int CatchRetOpcode, int ReturnOpcode)
+ : TargetInstrInfo(CFSetupOpcode, CFDestroyOpcode, CatchRetOpcode, ReturnOpcode) {
+ InitMCInstrInfo(RISCVInsts, RISCVInstrNameIndices, RISCVInstrNameData, 511);
+}
+} // end namespace llvm
+#endif // GET_INSTRINFO_CTOR_DTOR
+
+#ifdef GET_INSTRINFO_OPERAND_ENUM
+#undef GET_INSTRINFO_OPERAND_ENUM
+namespace llvm {
+namespace RISCV {
+namespace OpName {
+enum {
+OPERAND_LAST
+};
+} // end namespace OpName
+} // end namespace RISCV
+} // end namespace llvm
+#endif //GET_INSTRINFO_OPERAND_ENUM
+
+#ifdef GET_INSTRINFO_NAMED_OPS
+#undef GET_INSTRINFO_NAMED_OPS
+namespace llvm {
+namespace RISCV {
+LLVM_READONLY
+int16_t getNamedOperandIdx(uint16_t Opcode, uint16_t NamedIdx) {
+ return -1;
+}
+} // end namespace RISCV
+} // end namespace llvm
+#endif //GET_INSTRINFO_NAMED_OPS
+
+#ifdef GET_INSTRINFO_OPERAND_TYPES_ENUM
+#undef GET_INSTRINFO_OPERAND_TYPES_ENUM
+namespace llvm {
+namespace RISCV {
+namespace OpTypes {
+enum OperandType {
+ bare_symbol = 0,
+ c_lui_imm = 1,
+ call_symbol = 2,
+ csr_sysreg = 3,
+ f32imm = 4,
+ f64imm = 5,
+ fencearg = 6,
+ frmarg = 7,
+ i16imm = 8,
+ i1imm = 9,
+ i32imm = 10,
+ i64imm = 11,
+ i8imm = 12,
+ immzero = 13,
+ ixlenimm = 14,
+ ixlenimm_li = 15,
+ ptype0 = 16,
+ ptype1 = 17,
+ ptype2 = 18,
+ ptype3 = 19,
+ ptype4 = 20,
+ ptype5 = 21,
+ simm10_lsb0000nonzero = 22,
+ simm12 = 23,
+ simm12_lsb0 = 24,
+ simm13_lsb0 = 25,
+ simm21_lsb0_jal = 26,
+ simm6 = 27,
+ simm6nonzero = 28,
+ simm9_lsb0 = 29,
+ tprel_add_symbol = 30,
+ type0 = 31,
+ type1 = 32,
+ type2 = 33,
+ type3 = 34,
+ type4 = 35,
+ type5 = 36,
+ uimm10_lsb00nonzero = 37,
+ uimm20_auipc = 38,
+ uimm20_lui = 39,
+ uimm5 = 40,
+ uimm7_lsb00 = 41,
+ uimm8_lsb00 = 42,
+ uimm8_lsb000 = 43,
+ uimm9_lsb000 = 44,
+ uimmlog2xlen = 45,
+ uimmlog2xlennonzero = 46,
+ untyped_imm_0 = 47,
+ GPRMemAtomic = 48,
+ FPR32 = 49,
+ FPR32C = 50,
+ FPR64 = 51,
+ FPR64C = 52,
+ GPR = 53,
+ GPRC = 54,
+ GPRNoX0 = 55,
+ GPRNoX0X2 = 56,
+ GPRTC = 57,
+ GPRX0 = 58,
+ SP = 59,
+ OPERAND_TYPE_LIST_END
+};
+} // end namespace OpTypes
+} // end namespace RISCV
+} // end namespace llvm
+#endif // GET_INSTRINFO_OPERAND_TYPES_ENUM
+
+#ifdef GET_INSTRINFO_OPERAND_TYPE
+#undef GET_INSTRINFO_OPERAND_TYPE
+namespace llvm {
+namespace RISCV {
+LLVM_READONLY
+static int getOperandType(uint16_t Opcode, uint16_t OpIdx) {
+ const int Offsets[] = {
+ 0,
+ 1,
+ 1,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 5,
+ 8,
+ 12,
+ 13,
+ 17,
+ 20,
+ 20,
+ 21,
+ 23,
+ 25,
+ 25,
+ 26,
+ 27,
+ 29,
+ 29,
+ 35,
+ 36,
+ 36,
+ 38,
+ 39,
+ 39,
+ 39,
+ 39,
+ 39,
+ 39,
+ 41,
+ 44,
+ 44,
+ 47,
+ 50,
+ 53,
+ 56,
+ 59,
+ 62,
+ 65,
+ 68,
+ 71,
+ 74,
+ 75,
+ 76,
+ 78,
+ 80,
+ 83,
+ 85,
+ 89,
+ 91,
+ 93,
+ 95,
+ 97,
+ 99,
+ 101,
+ 103,
+ 105,
+ 107,
+ 108,
+ 110,
+ 112,
+ 114,
+ 119,
+ 124,
+ 129,
+ 131,
+ 136,
+ 141,
+ 145,
+ 148,
+ 151,
+ 154,
+ 157,
+ 160,
+ 163,
+ 166,
+ 169,
+ 172,
+ 175,
+ 178,
+ 181,
+ 184,
+ 186,
+ 188,
+ 189,
+ 190,
+ 191,
+ 193,
+ 195,
+ 197,
+ 199,
+ 200,
+ 203,
+ 205,
+ 208,
+ 210,
+ 213,
+ 216,
+ 219,
+ 223,
+ 227,
+ 231,
+ 235,
+ 240,
+ 244,
+ 249,
+ 253,
+ 258,
+ 262,
+ 267,
+ 271,
+ 275,
+ 278,
+ 281,
+ 284,
+ 287,
+ 290,
+ 294,
+ 298,
+ 301,
+ 304,
+ 307,
+ 309,
+ 311,
+ 313,
+ 315,
+ 317,
+ 319,
+ 321,
+ 323,
+ 325,
+ 327,
+ 329,
+ 331,
+ 333,
+ 336,
+ 338,
+ 341,
+ 344,
+ 347,
+ 350,
+ 353,
+ 356,
+ 359,
+ 362,
+ 365,
+ 368,
+ 371,
+ 374,
+ 375,
+ 378,
+ 382,
+ 385,
+ 389,
+ 391,
+ 393,
+ 395,
+ 397,
+ 399,
+ 401,
+ 403,
+ 405,
+ 407,
+ 409,
+ 411,
+ 413,
+ 415,
+ 417,
+ 419,
+ 421,
+ 423,
+ 426,
+ 428,
+ 430,
+ 432,
+ 434,
+ 437,
+ 441,
+ 446,
+ 451,
+ 452,
+ 454,
+ 455,
+ 456,
+ 458,
+ 464,
+ 470,
+ 473,
+ 476,
+ 479,
+ 482,
+ 484,
+ 486,
+ 488,
+ 490,
+ 492,
+ 494,
+ 496,
+ 498,
+ 500,
+ 502,
+ 504,
+ 506,
+ 512,
+ 520,
+ 528,
+ 534,
+ 540,
+ 547,
+ 554,
+ 560,
+ 567,
+ 567,
+ 570,
+ 573,
+ 576,
+ 579,
+ 580,
+ 581,
+ 583,
+ 589,
+ 595,
+ 601,
+ 604,
+ 607,
+ 610,
+ 613,
+ 616,
+ 619,
+ 622,
+ 625,
+ 628,
+ 631,
+ 634,
+ 637,
+ 640,
+ 643,
+ 646,
+ 649,
+ 652,
+ 655,
+ 658,
+ 661,
+ 664,
+ 667,
+ 670,
+ 673,
+ 676,
+ 679,
+ 682,
+ 685,
+ 688,
+ 691,
+ 694,
+ 697,
+ 700,
+ 703,
+ 706,
+ 709,
+ 712,
+ 715,
+ 718,
+ 721,
+ 724,
+ 727,
+ 730,
+ 733,
+ 736,
+ 739,
+ 742,
+ 745,
+ 748,
+ 751,
+ 754,
+ 757,
+ 760,
+ 763,
+ 766,
+ 769,
+ 772,
+ 775,
+ 778,
+ 781,
+ 784,
+ 787,
+ 790,
+ 793,
+ 796,
+ 799,
+ 802,
+ 805,
+ 808,
+ 811,
+ 814,
+ 817,
+ 820,
+ 823,
+ 826,
+ 829,
+ 832,
+ 835,
+ 838,
+ 840,
+ 843,
+ 846,
+ 849,
+ 852,
+ 855,
+ 858,
+ 861,
+ 864,
+ 867,
+ 870,
+ 873,
+ 876,
+ 879,
+ 882,
+ 885,
+ 888,
+ 891,
+ 894,
+ 897,
+ 900,
+ 903,
+ 906,
+ 909,
+ 912,
+ 914,
+ 916,
+ 916,
+ 919,
+ 922,
+ 925,
+ 928,
+ 931,
+ 934,
+ 937,
+ 940,
+ 941,
+ 942,
+ 943,
+ 944,
+ 947,
+ 950,
+ 952,
+ 954,
+ 956,
+ 958,
+ 961,
+ 964,
+ 966,
+ 968,
+ 968,
+ 969,
+ 972,
+ 975,
+ 978,
+ 981,
+ 983,
+ 986,
+ 989,
+ 991,
+ 994,
+ 996,
+ 999,
+ 1002,
+ 1005,
+ 1008,
+ 1008,
+ 1011,
+ 1014,
+ 1017,
+ 1020,
+ 1023,
+ 1023,
+ 1023,
+ 1027,
+ 1031,
+ 1033,
+ 1035,
+ 1038,
+ 1041,
+ 1043,
+ 1045,
+ 1047,
+ 1050,
+ 1053,
+ 1056,
+ 1059,
+ 1062,
+ 1065,
+ 1068,
+ 1071,
+ 1074,
+ 1077,
+ 1080,
+ 1083,
+ 1086,
+ 1090,
+ 1094,
+ 1096,
+ 1096,
+ 1096,
+ 1099,
+ 1102,
+ 1105,
+ 1108,
+ 1111,
+ 1114,
+ 1117,
+ 1120,
+ 1125,
+ 1130,
+ 1133,
+ 1136,
+ 1139,
+ 1142,
+ 1147,
+ 1152,
+ 1156,
+ 1160,
+ 1162,
+ 1164,
+ 1166,
+ 1168,
+ 1173,
+ 1178,
+ 1183,
+ 1188,
+ 1191,
+ 1194,
+ 1197,
+ 1200,
+ 1203,
+ 1206,
+ 1209,
+ 1212,
+ 1215,
+ 1219,
+ 1223,
+ 1226,
+ 1228,
+ 1231,
+ 1234,
+ 1237,
+ 1240,
+ 1243,
+ 1246,
+ 1248,
+ 1250,
+ 1252,
+ 1254,
+ 1256,
+ 1258,
+ 1260,
+ 1262,
+ 1264,
+ 1267,
+ 1270,
+ 1272,
+ 1275,
+ 1278,
+ 1281,
+ 1284,
+ 1287,
+ 1290,
+ 1293,
+ 1296,
+ 1299,
+ 1302,
+ 1305,
+ 1308,
+ 1311,
+ 1314,
+ 1317,
+ 1320,
+ 1323,
+ 1326,
+ 1329,
+ 1332,
+ 1335,
+ 1337,
+ 1340,
+ 1343,
+ 1346,
+ 1349,
+ 1352,
+ 1355,
+ 1358,
+ 1361,
+ 1364,
+ 1367,
+ 1370,
+ 1373,
+ 1376,
+ 1378,
+ 1381,
+ 1384,
+ 1387,
+ 1390,
+ 1393,
+ 1396,
+ 1399,
+ 1399,
+ 1401,
+ 1403,
+ 1406,
+ };
+ const int OpcodeOperandTypes[] = {
+ -1,
+ /**/
+ /**/
+ OpTypes::i32imm,
+ OpTypes::i32imm,
+ OpTypes::i32imm,
+ OpTypes::i32imm,
+ /**/
+ -1, -1, OpTypes::i32imm,
+ -1, -1, -1, OpTypes::i32imm,
+ -1,
+ -1, -1, -1, OpTypes::i32imm,
+ -1, -1, OpTypes::i32imm,
+ /**/
+ -1,
+ -1, -1,
+ -1, -1,
+ /**/
+ OpTypes::i32imm,
+ OpTypes::i32imm,
+ OpTypes::i64imm, OpTypes::i32imm,
+ /**/
+ -1, OpTypes::i64imm, OpTypes::i32imm, -1, OpTypes::i32imm, OpTypes::i32imm,
+ -1,
+ /**/
+ -1, OpTypes::i32imm,
+ -1,
+ /**/
+ /**/
+ /**/
+ /**/
+ /**/
+ -1, -1,
+ -1, -1, -1,
+ /**/
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0,
+ OpTypes::type0,
+ OpTypes::type0, -1,
+ OpTypes::type0, -1,
+ OpTypes::type0, OpTypes::type1, -1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1, -1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1,
+ OpTypes::type0, OpTypes::ptype1,
+ OpTypes::type0, OpTypes::ptype1,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::ptype1, OpTypes::type2, -1,
+ OpTypes::type0, OpTypes::ptype1,
+ OpTypes::ptype0, OpTypes::type1, OpTypes::ptype0, OpTypes::ptype2, -1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type2, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::type0, OpTypes::ptype1, OpTypes::type0,
+ OpTypes::i32imm, OpTypes::i32imm,
+ OpTypes::type0, -1,
+ OpTypes::type0,
+ -1,
+ -1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, -1,
+ OpTypes::type0, -1,
+ OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, -1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::untyped_imm_0,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, -1, OpTypes::type1, OpTypes::type1,
+ OpTypes::type0, -1, OpTypes::type1, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, -1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0, OpTypes::type0,
+ -1,
+ OpTypes::ptype0, -1, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0, OpTypes::type1, OpTypes::type2,
+ OpTypes::type0, OpTypes::type1, OpTypes::type2,
+ OpTypes::type0, OpTypes::type1, OpTypes::type1, -1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type0,
+ OpTypes::type0, OpTypes::type1,
+ OpTypes::type0, -1,
+ OpTypes::type0, -1,
+ OpTypes::ptype0, OpTypes::type1, OpTypes::i32imm,
+ OpTypes::type0, -1,
+ -1, OpTypes::type0,
+ OpTypes::i32imm, OpTypes::i32imm,
+ OpTypes::i32imm, OpTypes::i32imm,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::tprel_add_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::simm21_lsb0_jal,
+ OpTypes::GPR, OpTypes::simm12,
+ OpTypes::call_symbol,
+ OpTypes::GPR,
+ OpTypes::GPR, OpTypes::call_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::ixlenimm_li,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm,
+ /**/
+ OpTypes::GPR, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::bare_symbol,
+ OpTypes::call_symbol,
+ OpTypes::GPRTC,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR, OpTypes::ixlenimm, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::uimm20_auipc,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm13_lsb0,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::uimm5,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::uimm5,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::csr_sysreg, OpTypes::uimm5,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0, OpTypes::GPRNoX0,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0, OpTypes::simm6nonzero,
+ OpTypes::SP, OpTypes::SP, OpTypes::simm10_lsb0000nonzero,
+ OpTypes::GPRC, OpTypes::SP, OpTypes::uimm10_lsb00nonzero,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0, OpTypes::simm6,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0, OpTypes::immzero,
+ OpTypes::GPRX0, OpTypes::GPRX0, OpTypes::simm6nonzero,
+ OpTypes::GPRX0, OpTypes::GPRX0, OpTypes::immzero,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRX0, OpTypes::GPRX0, OpTypes::GPRNoX0,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::simm6,
+ OpTypes::GPRC, OpTypes::simm9_lsb0,
+ OpTypes::GPRC, OpTypes::simm9_lsb0,
+ /**/
+ OpTypes::FPR64C, OpTypes::GPRC, OpTypes::uimm8_lsb000,
+ OpTypes::FPR64, OpTypes::SP, OpTypes::uimm9_lsb000,
+ OpTypes::FPR32C, OpTypes::GPRC, OpTypes::uimm7_lsb00,
+ OpTypes::FPR32, OpTypes::SP, OpTypes::uimm8_lsb00,
+ OpTypes::FPR64C, OpTypes::GPRC, OpTypes::uimm8_lsb000,
+ OpTypes::FPR64, OpTypes::SP, OpTypes::uimm9_lsb000,
+ OpTypes::FPR32C, OpTypes::GPRC, OpTypes::uimm7_lsb00,
+ OpTypes::FPR32, OpTypes::SP, OpTypes::uimm8_lsb00,
+ OpTypes::simm12_lsb0,
+ OpTypes::simm12_lsb0,
+ OpTypes::GPRNoX0,
+ OpTypes::GPRNoX0,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimm8_lsb000,
+ OpTypes::GPRNoX0, OpTypes::SP, OpTypes::uimm9_lsb000,
+ OpTypes::GPRNoX0, OpTypes::simm6,
+ OpTypes::GPRX0, OpTypes::simm6,
+ OpTypes::GPRNoX0X2, OpTypes::c_lui_imm,
+ OpTypes::GPRX0, OpTypes::c_lui_imm,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimm7_lsb00,
+ OpTypes::GPRNoX0, OpTypes::SP, OpTypes::uimm8_lsb00,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0,
+ OpTypes::GPRX0, OpTypes::GPRNoX0,
+ /**/
+ OpTypes::simm6nonzero,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimm8_lsb000,
+ OpTypes::GPR, OpTypes::SP, OpTypes::uimm9_lsb000,
+ OpTypes::GPRNoX0, OpTypes::GPRNoX0, OpTypes::uimmlog2xlennonzero,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPRX0, OpTypes::GPRX0, OpTypes::uimmlog2xlennonzero,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimmlog2xlennonzero,
+ OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimmlog2xlennonzero,
+ OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::uimm7_lsb00,
+ OpTypes::GPR, OpTypes::SP, OpTypes::uimm8_lsb00,
+ /**/
+ OpTypes::GPRC, OpTypes::GPRC, OpTypes::GPRC,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ /**/
+ /**/
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::GPR,
+ OpTypes::FPR64, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::fencearg, OpTypes::fencearg,
+ /**/
+ /**/
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::GPR, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::GPR,
+ OpTypes::FPR32, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::FPR64,
+ OpTypes::GPR, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR64, OpTypes::FPR64, OpTypes::FPR64, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::FPR32, OpTypes::FPR32, OpTypes::frmarg,
+ OpTypes::FPR32, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::simm21_lsb0_jal,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::GPRMemAtomic,
+ OpTypes::GPR, OpTypes::uimm20_lui,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPRMemAtomic, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimmlog2xlen,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimm5,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimmlog2xlen,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimm5,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimmlog2xlen,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::uimm5,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ /**/
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::GPR,
+ OpTypes::GPR, OpTypes::GPR, OpTypes::simm12,
+ };
+ return OpcodeOperandTypes[Offsets[Opcode] + OpIdx];
+}
+} // end namespace RISCV
+} // end namespace llvm
+#endif // GET_INSTRINFO_OPERAND_TYPE
+
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCCodeEmitter.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCCodeEmitter.inc
new file mode 100644
index 0000000..6b78802
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCCodeEmitter.inc
@@ -0,0 +1,2024 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Machine Code Emitter *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+uint64_t RISCVMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
+ SmallVectorImpl<MCFixup> &Fixups,
+ const MCSubtargetInfo &STI) const {
+ static const uint64_t InstBits[] = {
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(0),
+ UINT64_C(51), // ADD
+ UINT64_C(19), // ADDI
+ UINT64_C(27), // ADDIW
+ UINT64_C(59), // ADDW
+ UINT64_C(12335), // AMOADD_D
+ UINT64_C(67121199), // AMOADD_D_AQ
+ UINT64_C(100675631), // AMOADD_D_AQ_RL
+ UINT64_C(33566767), // AMOADD_D_RL
+ UINT64_C(8239), // AMOADD_W
+ UINT64_C(67117103), // AMOADD_W_AQ
+ UINT64_C(100671535), // AMOADD_W_AQ_RL
+ UINT64_C(33562671), // AMOADD_W_RL
+ UINT64_C(1610625071), // AMOAND_D
+ UINT64_C(1677733935), // AMOAND_D_AQ
+ UINT64_C(1711288367), // AMOAND_D_AQ_RL
+ UINT64_C(1644179503), // AMOAND_D_RL
+ UINT64_C(1610620975), // AMOAND_W
+ UINT64_C(1677729839), // AMOAND_W_AQ
+ UINT64_C(1711284271), // AMOAND_W_AQ_RL
+ UINT64_C(1644175407), // AMOAND_W_RL
+ UINT64_C(3758108719), // AMOMAXU_D
+ UINT64_C(3825217583), // AMOMAXU_D_AQ
+ UINT64_C(3858772015), // AMOMAXU_D_AQ_RL
+ UINT64_C(3791663151), // AMOMAXU_D_RL
+ UINT64_C(3758104623), // AMOMAXU_W
+ UINT64_C(3825213487), // AMOMAXU_W_AQ
+ UINT64_C(3858767919), // AMOMAXU_W_AQ_RL
+ UINT64_C(3791659055), // AMOMAXU_W_RL
+ UINT64_C(2684366895), // AMOMAX_D
+ UINT64_C(2751475759), // AMOMAX_D_AQ
+ UINT64_C(2785030191), // AMOMAX_D_AQ_RL
+ UINT64_C(2717921327), // AMOMAX_D_RL
+ UINT64_C(2684362799), // AMOMAX_W
+ UINT64_C(2751471663), // AMOMAX_W_AQ
+ UINT64_C(2785026095), // AMOMAX_W_AQ_RL
+ UINT64_C(2717917231), // AMOMAX_W_RL
+ UINT64_C(3221237807), // AMOMINU_D
+ UINT64_C(3288346671), // AMOMINU_D_AQ
+ UINT64_C(3321901103), // AMOMINU_D_AQ_RL
+ UINT64_C(3254792239), // AMOMINU_D_RL
+ UINT64_C(3221233711), // AMOMINU_W
+ UINT64_C(3288342575), // AMOMINU_W_AQ
+ UINT64_C(3321897007), // AMOMINU_W_AQ_RL
+ UINT64_C(3254788143), // AMOMINU_W_RL
+ UINT64_C(2147495983), // AMOMIN_D
+ UINT64_C(2214604847), // AMOMIN_D_AQ
+ UINT64_C(2248159279), // AMOMIN_D_AQ_RL
+ UINT64_C(2181050415), // AMOMIN_D_RL
+ UINT64_C(2147491887), // AMOMIN_W
+ UINT64_C(2214600751), // AMOMIN_W_AQ
+ UINT64_C(2248155183), // AMOMIN_W_AQ_RL
+ UINT64_C(2181046319), // AMOMIN_W_RL
+ UINT64_C(1073754159), // AMOOR_D
+ UINT64_C(1140863023), // AMOOR_D_AQ
+ UINT64_C(1174417455), // AMOOR_D_AQ_RL
+ UINT64_C(1107308591), // AMOOR_D_RL
+ UINT64_C(1073750063), // AMOOR_W
+ UINT64_C(1140858927), // AMOOR_W_AQ
+ UINT64_C(1174413359), // AMOOR_W_AQ_RL
+ UINT64_C(1107304495), // AMOOR_W_RL
+ UINT64_C(134230063), // AMOSWAP_D
+ UINT64_C(201338927), // AMOSWAP_D_AQ
+ UINT64_C(234893359), // AMOSWAP_D_AQ_RL
+ UINT64_C(167784495), // AMOSWAP_D_RL
+ UINT64_C(134225967), // AMOSWAP_W
+ UINT64_C(201334831), // AMOSWAP_W_AQ
+ UINT64_C(234889263), // AMOSWAP_W_AQ_RL
+ UINT64_C(167780399), // AMOSWAP_W_RL
+ UINT64_C(536883247), // AMOXOR_D
+ UINT64_C(603992111), // AMOXOR_D_AQ
+ UINT64_C(637546543), // AMOXOR_D_AQ_RL
+ UINT64_C(570437679), // AMOXOR_D_RL
+ UINT64_C(536879151), // AMOXOR_W
+ UINT64_C(603988015), // AMOXOR_W_AQ
+ UINT64_C(637542447), // AMOXOR_W_AQ_RL
+ UINT64_C(570433583), // AMOXOR_W_RL
+ UINT64_C(28723), // AND
+ UINT64_C(28691), // ANDI
+ UINT64_C(23), // AUIPC
+ UINT64_C(99), // BEQ
+ UINT64_C(20579), // BGE
+ UINT64_C(28771), // BGEU
+ UINT64_C(16483), // BLT
+ UINT64_C(24675), // BLTU
+ UINT64_C(4195), // BNE
+ UINT64_C(12403), // CSRRC
+ UINT64_C(28787), // CSRRCI
+ UINT64_C(8307), // CSRRS
+ UINT64_C(24691), // CSRRSI
+ UINT64_C(4211), // CSRRW
+ UINT64_C(20595), // CSRRWI
+ UINT64_C(36866), // C_ADD
+ UINT64_C(1), // C_ADDI
+ UINT64_C(24833), // C_ADDI16SP
+ UINT64_C(0), // C_ADDI4SPN
+ UINT64_C(8193), // C_ADDIW
+ UINT64_C(1), // C_ADDI_HINT_IMM_ZERO
+ UINT64_C(1), // C_ADDI_HINT_X0
+ UINT64_C(1), // C_ADDI_NOP
+ UINT64_C(39969), // C_ADDW
+ UINT64_C(36866), // C_ADD_HINT
+ UINT64_C(35937), // C_AND
+ UINT64_C(34817), // C_ANDI
+ UINT64_C(49153), // C_BEQZ
+ UINT64_C(57345), // C_BNEZ
+ UINT64_C(36866), // C_EBREAK
+ UINT64_C(8192), // C_FLD
+ UINT64_C(8194), // C_FLDSP
+ UINT64_C(24576), // C_FLW
+ UINT64_C(24578), // C_FLWSP
+ UINT64_C(40960), // C_FSD
+ UINT64_C(40962), // C_FSDSP
+ UINT64_C(57344), // C_FSW
+ UINT64_C(57346), // C_FSWSP
+ UINT64_C(40961), // C_J
+ UINT64_C(8193), // C_JAL
+ UINT64_C(36866), // C_JALR
+ UINT64_C(32770), // C_JR
+ UINT64_C(24576), // C_LD
+ UINT64_C(24578), // C_LDSP
+ UINT64_C(16385), // C_LI
+ UINT64_C(16385), // C_LI_HINT
+ UINT64_C(24577), // C_LUI
+ UINT64_C(24577), // C_LUI_HINT
+ UINT64_C(16384), // C_LW
+ UINT64_C(16386), // C_LWSP
+ UINT64_C(32770), // C_MV
+ UINT64_C(32770), // C_MV_HINT
+ UINT64_C(1), // C_NOP
+ UINT64_C(1), // C_NOP_HINT
+ UINT64_C(35905), // C_OR
+ UINT64_C(57344), // C_SD
+ UINT64_C(57346), // C_SDSP
+ UINT64_C(2), // C_SLLI
+ UINT64_C(2), // C_SLLI64_HINT
+ UINT64_C(2), // C_SLLI_HINT
+ UINT64_C(33793), // C_SRAI
+ UINT64_C(33793), // C_SRAI64_HINT
+ UINT64_C(32769), // C_SRLI
+ UINT64_C(32769), // C_SRLI64_HINT
+ UINT64_C(35841), // C_SUB
+ UINT64_C(39937), // C_SUBW
+ UINT64_C(49152), // C_SW
+ UINT64_C(49154), // C_SWSP
+ UINT64_C(0), // C_UNIMP
+ UINT64_C(35873), // C_XOR
+ UINT64_C(33570867), // DIV
+ UINT64_C(33574963), // DIVU
+ UINT64_C(33574971), // DIVUW
+ UINT64_C(33570875), // DIVW
+ UINT64_C(1048691), // EBREAK
+ UINT64_C(115), // ECALL
+ UINT64_C(33554515), // FADD_D
+ UINT64_C(83), // FADD_S
+ UINT64_C(3791654995), // FCLASS_D
+ UINT64_C(3758100563), // FCLASS_S
+ UINT64_C(3525312595), // FCVT_D_L
+ UINT64_C(3526361171), // FCVT_D_LU
+ UINT64_C(1107296339), // FCVT_D_S
+ UINT64_C(3523215443), // FCVT_D_W
+ UINT64_C(3524264019), // FCVT_D_WU
+ UINT64_C(3257925715), // FCVT_LU_D
+ UINT64_C(3224371283), // FCVT_LU_S
+ UINT64_C(3256877139), // FCVT_L_D
+ UINT64_C(3223322707), // FCVT_L_S
+ UINT64_C(1074790483), // FCVT_S_D
+ UINT64_C(3491758163), // FCVT_S_L
+ UINT64_C(3492806739), // FCVT_S_LU
+ UINT64_C(3489661011), // FCVT_S_W
+ UINT64_C(3490709587), // FCVT_S_WU
+ UINT64_C(3255828563), // FCVT_WU_D
+ UINT64_C(3222274131), // FCVT_WU_S
+ UINT64_C(3254779987), // FCVT_W_D
+ UINT64_C(3221225555), // FCVT_W_S
+ UINT64_C(436207699), // FDIV_D
+ UINT64_C(402653267), // FDIV_S
+ UINT64_C(15), // FENCE
+ UINT64_C(4111), // FENCE_I
+ UINT64_C(2200961039), // FENCE_TSO
+ UINT64_C(2717917267), // FEQ_D
+ UINT64_C(2684362835), // FEQ_S
+ UINT64_C(12295), // FLD
+ UINT64_C(2717909075), // FLE_D
+ UINT64_C(2684354643), // FLE_S
+ UINT64_C(2717913171), // FLT_D
+ UINT64_C(2684358739), // FLT_S
+ UINT64_C(8199), // FLW
+ UINT64_C(33554499), // FMADD_D
+ UINT64_C(67), // FMADD_S
+ UINT64_C(704647251), // FMAX_D
+ UINT64_C(671092819), // FMAX_S
+ UINT64_C(704643155), // FMIN_D
+ UINT64_C(671088723), // FMIN_S
+ UINT64_C(33554503), // FMSUB_D
+ UINT64_C(71), // FMSUB_S
+ UINT64_C(301989971), // FMUL_D
+ UINT64_C(268435539), // FMUL_S
+ UINT64_C(4060086355), // FMV_D_X
+ UINT64_C(4026531923), // FMV_W_X
+ UINT64_C(3791650899), // FMV_X_D
+ UINT64_C(3758096467), // FMV_X_W
+ UINT64_C(33554511), // FNMADD_D
+ UINT64_C(79), // FNMADD_S
+ UINT64_C(33554507), // FNMSUB_D
+ UINT64_C(75), // FNMSUB_S
+ UINT64_C(12327), // FSD
+ UINT64_C(570429523), // FSGNJN_D
+ UINT64_C(536875091), // FSGNJN_S
+ UINT64_C(570433619), // FSGNJX_D
+ UINT64_C(536879187), // FSGNJX_S
+ UINT64_C(570425427), // FSGNJ_D
+ UINT64_C(536870995), // FSGNJ_S
+ UINT64_C(1509949523), // FSQRT_D
+ UINT64_C(1476395091), // FSQRT_S
+ UINT64_C(167772243), // FSUB_D
+ UINT64_C(134217811), // FSUB_S
+ UINT64_C(8231), // FSW
+ UINT64_C(111), // JAL
+ UINT64_C(103), // JALR
+ UINT64_C(3), // LB
+ UINT64_C(16387), // LBU
+ UINT64_C(12291), // LD
+ UINT64_C(4099), // LH
+ UINT64_C(20483), // LHU
+ UINT64_C(268447791), // LR_D
+ UINT64_C(335556655), // LR_D_AQ
+ UINT64_C(369111087), // LR_D_AQ_RL
+ UINT64_C(302002223), // LR_D_RL
+ UINT64_C(268443695), // LR_W
+ UINT64_C(335552559), // LR_W_AQ
+ UINT64_C(369106991), // LR_W_AQ_RL
+ UINT64_C(301998127), // LR_W_RL
+ UINT64_C(55), // LUI
+ UINT64_C(8195), // LW
+ UINT64_C(24579), // LWU
+ UINT64_C(807403635), // MRET
+ UINT64_C(33554483), // MUL
+ UINT64_C(33558579), // MULH
+ UINT64_C(33562675), // MULHSU
+ UINT64_C(33566771), // MULHU
+ UINT64_C(33554491), // MULW
+ UINT64_C(24627), // OR
+ UINT64_C(24595), // ORI
+ UINT64_C(33579059), // REM
+ UINT64_C(33583155), // REMU
+ UINT64_C(33583163), // REMUW
+ UINT64_C(33579067), // REMW
+ UINT64_C(35), // SB
+ UINT64_C(402665519), // SC_D
+ UINT64_C(469774383), // SC_D_AQ
+ UINT64_C(503328815), // SC_D_AQ_RL
+ UINT64_C(436219951), // SC_D_RL
+ UINT64_C(402661423), // SC_W
+ UINT64_C(469770287), // SC_W_AQ
+ UINT64_C(503324719), // SC_W_AQ_RL
+ UINT64_C(436215855), // SC_W_RL
+ UINT64_C(12323), // SD
+ UINT64_C(301990003), // SFENCE_VMA
+ UINT64_C(4131), // SH
+ UINT64_C(4147), // SLL
+ UINT64_C(4115), // SLLI
+ UINT64_C(4123), // SLLIW
+ UINT64_C(4155), // SLLW
+ UINT64_C(8243), // SLT
+ UINT64_C(8211), // SLTI
+ UINT64_C(12307), // SLTIU
+ UINT64_C(12339), // SLTU
+ UINT64_C(1073762355), // SRA
+ UINT64_C(1073762323), // SRAI
+ UINT64_C(1073762331), // SRAIW
+ UINT64_C(1073762363), // SRAW
+ UINT64_C(270532723), // SRET
+ UINT64_C(20531), // SRL
+ UINT64_C(20499), // SRLI
+ UINT64_C(20507), // SRLIW
+ UINT64_C(20539), // SRLW
+ UINT64_C(1073741875), // SUB
+ UINT64_C(1073741883), // SUBW
+ UINT64_C(8227), // SW
+ UINT64_C(3221229683), // UNIMP
+ UINT64_C(2097267), // URET
+ UINT64_C(273678451), // WFI
+ UINT64_C(16435), // XOR
+ UINT64_C(16403), // XORI
+ UINT64_C(0)
+ };
+ const unsigned opcode = MI.getOpcode();
+ uint64_t Value = InstBits[opcode];
+ uint64_t op = 0;
+ (void)op; // suppress warning
+ switch (opcode) {
+ case RISCV::C_EBREAK:
+ case RISCV::C_NOP:
+ case RISCV::C_UNIMP:
+ case RISCV::EBREAK:
+ case RISCV::ECALL:
+ case RISCV::FENCE_I:
+ case RISCV::FENCE_TSO:
+ case RISCV::MRET:
+ case RISCV::SRET:
+ case RISCV::UNIMP:
+ case RISCV::URET:
+ case RISCV::WFI: {
+ break;
+ }
+ case RISCV::C_NOP_HINT: {
+ // op: imm
+ op = getImmOpValue(MI, 0, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ break;
+ }
+ case RISCV::C_LI_HINT:
+ case RISCV::C_LUI_HINT: {
+ // op: imm
+ op = getImmOpValue(MI, 1, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ break;
+ }
+ case RISCV::C_LI:
+ case RISCV::C_LUI: {
+ // op: imm
+ op = getImmOpValue(MI, 1, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_FLDSP:
+ case RISCV::C_LDSP: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(24)) << 2;
+ Value |= (op & UINT64_C(448)) >> 4;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_FLWSP:
+ case RISCV::C_LWSP: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(28)) << 2;
+ Value |= (op & UINT64_C(192)) >> 4;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADDI:
+ case RISCV::C_ADDIW:
+ case RISCV::C_ADDI_HINT_X0: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ANDI: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADDI4SPN: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(48)) << 7;
+ Value |= (op & UINT64_C(960)) << 1;
+ Value |= (op & UINT64_C(4)) << 4;
+ Value |= (op & UINT64_C(8)) << 2;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADDI16SP: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(512)) << 3;
+ Value |= (op & UINT64_C(16)) << 2;
+ Value |= (op & UINT64_C(64)) >> 1;
+ Value |= (op & UINT64_C(384)) >> 4;
+ Value |= (op & UINT64_C(32)) >> 3;
+ break;
+ }
+ case RISCV::C_FSDSP:
+ case RISCV::C_SDSP: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(56)) << 7;
+ Value |= (op & UINT64_C(448)) << 1;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_FSWSP:
+ case RISCV::C_SWSP: {
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(60)) << 7;
+ Value |= (op & UINT64_C(192)) << 1;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_BEQZ:
+ case RISCV::C_BNEZ: {
+ // op: imm
+ op = getImmOpValueAsr1(MI, 1, Fixups, STI);
+ Value |= (op & UINT64_C(128)) << 5;
+ Value |= (op & UINT64_C(12)) << 8;
+ Value |= (op & UINT64_C(96));
+ Value |= (op & UINT64_C(3)) << 3;
+ Value |= (op & UINT64_C(16)) >> 2;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_SLLI_HINT: {
+ // op: imm
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ break;
+ }
+ case RISCV::C_SLLI: {
+ // op: imm
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_SRAI:
+ case RISCV::C_SRLI: {
+ // op: imm
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ Value |= (op & UINT64_C(32)) << 7;
+ Value |= (op & UINT64_C(31)) << 2;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADDI_HINT_IMM_ZERO:
+ case RISCV::C_ADDI_NOP: {
+ // op: imm
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(32);
+ op <<= 7;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::FSD:
+ case RISCV::FSW:
+ case RISCV::SB:
+ case RISCV::SD:
+ case RISCV::SH:
+ case RISCV::SW: {
+ // op: imm12
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(4064)) << 20;
+ Value |= (op & UINT64_C(31)) << 7;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ break;
+ }
+ case RISCV::ADDI:
+ case RISCV::ADDIW:
+ case RISCV::ANDI:
+ case RISCV::FLD:
+ case RISCV::FLW:
+ case RISCV::JALR:
+ case RISCV::LB:
+ case RISCV::LBU:
+ case RISCV::LD:
+ case RISCV::LH:
+ case RISCV::LHU:
+ case RISCV::LW:
+ case RISCV::LWU:
+ case RISCV::ORI:
+ case RISCV::SLTI:
+ case RISCV::SLTIU:
+ case RISCV::XORI: {
+ // op: imm12
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ op &= UINT64_C(4095);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::BEQ:
+ case RISCV::BGE:
+ case RISCV::BGEU:
+ case RISCV::BLT:
+ case RISCV::BLTU:
+ case RISCV::BNE: {
+ // op: imm12
+ op = getImmOpValueAsr1(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(2048)) << 20;
+ Value |= (op & UINT64_C(1008)) << 21;
+ Value |= (op & UINT64_C(15)) << 8;
+ Value |= (op & UINT64_C(1024)) >> 3;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ break;
+ }
+ case RISCV::CSRRC:
+ case RISCV::CSRRCI:
+ case RISCV::CSRRS:
+ case RISCV::CSRRSI:
+ case RISCV::CSRRW:
+ case RISCV::CSRRWI: {
+ // op: imm12
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(4095);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::AUIPC:
+ case RISCV::LUI: {
+ // op: imm20
+ op = getImmOpValue(MI, 1, Fixups, STI);
+ op &= UINT64_C(1048575);
+ op <<= 12;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::JAL: {
+ // op: imm20
+ op = getImmOpValueAsr1(MI, 1, Fixups, STI);
+ Value |= (op & UINT64_C(524288)) << 12;
+ Value |= (op & UINT64_C(1023)) << 21;
+ Value |= (op & UINT64_C(1024)) << 10;
+ Value |= (op & UINT64_C(522240)) << 1;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_J:
+ case RISCV::C_JAL: {
+ // op: offset
+ op = getImmOpValueAsr1(MI, 0, Fixups, STI);
+ Value |= (op & UINT64_C(1024)) << 2;
+ Value |= (op & UINT64_C(8)) << 8;
+ Value |= (op & UINT64_C(384)) << 2;
+ Value |= (op & UINT64_C(512)) >> 1;
+ Value |= (op & UINT64_C(32)) << 2;
+ Value |= (op & UINT64_C(64));
+ Value |= (op & UINT64_C(7)) << 3;
+ Value |= (op & UINT64_C(16)) >> 2;
+ break;
+ }
+ case RISCV::FENCE: {
+ // op: pred
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(15);
+ op <<= 24;
+ Value |= op;
+ // op: succ
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(15);
+ op <<= 20;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_FLD:
+ case RISCV::C_LD: {
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(56)) << 7;
+ Value |= (op & UINT64_C(192)) >> 1;
+ break;
+ }
+ case RISCV::C_FLW:
+ case RISCV::C_LW: {
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(56)) << 7;
+ Value |= (op & UINT64_C(4)) << 4;
+ Value |= (op & UINT64_C(64)) >> 1;
+ break;
+ }
+ case RISCV::C_SLLI64_HINT: {
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_SRAI64_HINT:
+ case RISCV::C_SRLI64_HINT: {
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_JALR:
+ case RISCV::C_JR: {
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_MV: {
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::FCVT_D_L:
+ case RISCV::FCVT_D_LU:
+ case RISCV::FCVT_LU_D:
+ case RISCV::FCVT_LU_S:
+ case RISCV::FCVT_L_D:
+ case RISCV::FCVT_L_S:
+ case RISCV::FCVT_S_D:
+ case RISCV::FCVT_S_L:
+ case RISCV::FCVT_S_LU:
+ case RISCV::FCVT_S_W:
+ case RISCV::FCVT_S_WU:
+ case RISCV::FCVT_WU_D:
+ case RISCV::FCVT_WU_S:
+ case RISCV::FCVT_W_D:
+ case RISCV::FCVT_W_S:
+ case RISCV::FSQRT_D:
+ case RISCV::FSQRT_S: {
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: funct3
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 12;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::FCLASS_D:
+ case RISCV::FCLASS_S:
+ case RISCV::FCVT_D_S:
+ case RISCV::FCVT_D_W:
+ case RISCV::FCVT_D_WU:
+ case RISCV::FMV_D_X:
+ case RISCV::FMV_W_X:
+ case RISCV::FMV_X_D:
+ case RISCV::FMV_X_W:
+ case RISCV::LR_D:
+ case RISCV::LR_D_AQ:
+ case RISCV::LR_D_AQ_RL:
+ case RISCV::LR_D_RL:
+ case RISCV::LR_W:
+ case RISCV::LR_W_AQ:
+ case RISCV::LR_W_AQ_RL:
+ case RISCV::LR_W_RL: {
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADD: {
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_FSD:
+ case RISCV::C_SD: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(56)) << 7;
+ Value |= (op & UINT64_C(192)) >> 1;
+ break;
+ }
+ case RISCV::C_FSW:
+ case RISCV::C_SW: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ // op: imm
+ op = getImmOpValue(MI, 2, Fixups, STI);
+ Value |= (op & UINT64_C(56)) << 7;
+ Value |= (op & UINT64_C(4)) << 4;
+ Value |= (op & UINT64_C(64)) >> 1;
+ break;
+ }
+ case RISCV::SFENCE_VMA: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_MV_HINT: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::FADD_D:
+ case RISCV::FADD_S:
+ case RISCV::FDIV_D:
+ case RISCV::FDIV_S:
+ case RISCV::FMUL_D:
+ case RISCV::FMUL_S:
+ case RISCV::FSUB_D:
+ case RISCV::FSUB_S: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: funct3
+ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 12;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::ADD:
+ case RISCV::ADDW:
+ case RISCV::AMOADD_D:
+ case RISCV::AMOADD_D_AQ:
+ case RISCV::AMOADD_D_AQ_RL:
+ case RISCV::AMOADD_D_RL:
+ case RISCV::AMOADD_W:
+ case RISCV::AMOADD_W_AQ:
+ case RISCV::AMOADD_W_AQ_RL:
+ case RISCV::AMOADD_W_RL:
+ case RISCV::AMOAND_D:
+ case RISCV::AMOAND_D_AQ:
+ case RISCV::AMOAND_D_AQ_RL:
+ case RISCV::AMOAND_D_RL:
+ case RISCV::AMOAND_W:
+ case RISCV::AMOAND_W_AQ:
+ case RISCV::AMOAND_W_AQ_RL:
+ case RISCV::AMOAND_W_RL:
+ case RISCV::AMOMAXU_D:
+ case RISCV::AMOMAXU_D_AQ:
+ case RISCV::AMOMAXU_D_AQ_RL:
+ case RISCV::AMOMAXU_D_RL:
+ case RISCV::AMOMAXU_W:
+ case RISCV::AMOMAXU_W_AQ:
+ case RISCV::AMOMAXU_W_AQ_RL:
+ case RISCV::AMOMAXU_W_RL:
+ case RISCV::AMOMAX_D:
+ case RISCV::AMOMAX_D_AQ:
+ case RISCV::AMOMAX_D_AQ_RL:
+ case RISCV::AMOMAX_D_RL:
+ case RISCV::AMOMAX_W:
+ case RISCV::AMOMAX_W_AQ:
+ case RISCV::AMOMAX_W_AQ_RL:
+ case RISCV::AMOMAX_W_RL:
+ case RISCV::AMOMINU_D:
+ case RISCV::AMOMINU_D_AQ:
+ case RISCV::AMOMINU_D_AQ_RL:
+ case RISCV::AMOMINU_D_RL:
+ case RISCV::AMOMINU_W:
+ case RISCV::AMOMINU_W_AQ:
+ case RISCV::AMOMINU_W_AQ_RL:
+ case RISCV::AMOMINU_W_RL:
+ case RISCV::AMOMIN_D:
+ case RISCV::AMOMIN_D_AQ:
+ case RISCV::AMOMIN_D_AQ_RL:
+ case RISCV::AMOMIN_D_RL:
+ case RISCV::AMOMIN_W:
+ case RISCV::AMOMIN_W_AQ:
+ case RISCV::AMOMIN_W_AQ_RL:
+ case RISCV::AMOMIN_W_RL:
+ case RISCV::AMOOR_D:
+ case RISCV::AMOOR_D_AQ:
+ case RISCV::AMOOR_D_AQ_RL:
+ case RISCV::AMOOR_D_RL:
+ case RISCV::AMOOR_W:
+ case RISCV::AMOOR_W_AQ:
+ case RISCV::AMOOR_W_AQ_RL:
+ case RISCV::AMOOR_W_RL:
+ case RISCV::AMOSWAP_D:
+ case RISCV::AMOSWAP_D_AQ:
+ case RISCV::AMOSWAP_D_AQ_RL:
+ case RISCV::AMOSWAP_D_RL:
+ case RISCV::AMOSWAP_W:
+ case RISCV::AMOSWAP_W_AQ:
+ case RISCV::AMOSWAP_W_AQ_RL:
+ case RISCV::AMOSWAP_W_RL:
+ case RISCV::AMOXOR_D:
+ case RISCV::AMOXOR_D_AQ:
+ case RISCV::AMOXOR_D_AQ_RL:
+ case RISCV::AMOXOR_D_RL:
+ case RISCV::AMOXOR_W:
+ case RISCV::AMOXOR_W_AQ:
+ case RISCV::AMOXOR_W_AQ_RL:
+ case RISCV::AMOXOR_W_RL:
+ case RISCV::AND:
+ case RISCV::DIV:
+ case RISCV::DIVU:
+ case RISCV::DIVUW:
+ case RISCV::DIVW:
+ case RISCV::FEQ_D:
+ case RISCV::FEQ_S:
+ case RISCV::FLE_D:
+ case RISCV::FLE_S:
+ case RISCV::FLT_D:
+ case RISCV::FLT_S:
+ case RISCV::FMAX_D:
+ case RISCV::FMAX_S:
+ case RISCV::FMIN_D:
+ case RISCV::FMIN_S:
+ case RISCV::FSGNJN_D:
+ case RISCV::FSGNJN_S:
+ case RISCV::FSGNJX_D:
+ case RISCV::FSGNJX_S:
+ case RISCV::FSGNJ_D:
+ case RISCV::FSGNJ_S:
+ case RISCV::MUL:
+ case RISCV::MULH:
+ case RISCV::MULHSU:
+ case RISCV::MULHU:
+ case RISCV::MULW:
+ case RISCV::OR:
+ case RISCV::REM:
+ case RISCV::REMU:
+ case RISCV::REMUW:
+ case RISCV::REMW:
+ case RISCV::SC_D:
+ case RISCV::SC_D_AQ:
+ case RISCV::SC_D_AQ_RL:
+ case RISCV::SC_D_RL:
+ case RISCV::SC_W:
+ case RISCV::SC_W_AQ:
+ case RISCV::SC_W_AQ_RL:
+ case RISCV::SC_W_RL:
+ case RISCV::SLL:
+ case RISCV::SLLW:
+ case RISCV::SLT:
+ case RISCV::SLTU:
+ case RISCV::SRA:
+ case RISCV::SRAW:
+ case RISCV::SRL:
+ case RISCV::SRLW:
+ case RISCV::SUB:
+ case RISCV::SUBW:
+ case RISCV::XOR: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADD_HINT: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 2;
+ Value |= op;
+ break;
+ }
+ case RISCV::C_ADDW:
+ case RISCV::C_AND:
+ case RISCV::C_OR:
+ case RISCV::C_SUB:
+ case RISCV::C_SUBW:
+ case RISCV::C_XOR: {
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 2;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::FMADD_D:
+ case RISCV::FMADD_S:
+ case RISCV::FMSUB_D:
+ case RISCV::FMSUB_S:
+ case RISCV::FNMADD_D:
+ case RISCV::FNMADD_S:
+ case RISCV::FNMSUB_D:
+ case RISCV::FNMSUB_S: {
+ // op: rs3
+ op = getMachineOpValue(MI, MI.getOperand(3), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 27;
+ Value |= op;
+ // op: rs2
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: funct3
+ op = getMachineOpValue(MI, MI.getOperand(4), Fixups, STI);
+ op &= UINT64_C(7);
+ op <<= 12;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::SLLIW:
+ case RISCV::SRAIW:
+ case RISCV::SRLIW: {
+ // op: shamt
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ case RISCV::SLLI:
+ case RISCV::SRAI:
+ case RISCV::SRLI: {
+ // op: shamt
+ op = getMachineOpValue(MI, MI.getOperand(2), Fixups, STI);
+ op &= UINT64_C(63);
+ op <<= 20;
+ Value |= op;
+ // op: rs1
+ op = getMachineOpValue(MI, MI.getOperand(1), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 15;
+ Value |= op;
+ // op: rd
+ op = getMachineOpValue(MI, MI.getOperand(0), Fixups, STI);
+ op &= UINT64_C(31);
+ op <<= 7;
+ Value |= op;
+ break;
+ }
+ default:
+ std::string msg;
+ raw_string_ostream Msg(msg);
+ Msg << "Not supported instr: " << MI;
+ report_fatal_error(Msg.str());
+ }
+ return Value;
+}
+
+#ifdef ENABLE_INSTR_PREDICATE_VERIFIER
+#undef ENABLE_INSTR_PREDICATE_VERIFIER
+#include <sstream>
+
+// Bits for subtarget features that participate in instruction matching.
+enum SubtargetFeatureBits : uint8_t {
+ Feature_HasStdExtMBit = 5,
+ Feature_HasStdExtABit = 1,
+ Feature_HasStdExtFBit = 4,
+ Feature_HasStdExtDBit = 3,
+ Feature_HasStdExtCBit = 2,
+ Feature_HasRVCHintsBit = 0,
+ Feature_IsRV64Bit = 8,
+ Feature_IsRV32Bit = 6,
+ Feature_IsRV32EBit = 7,
+};
+
+#ifndef NDEBUG
+static const char *SubtargetFeatureNames[] = {
+ "Feature_HasRVCHints",
+ "Feature_HasStdExtA",
+ "Feature_HasStdExtC",
+ "Feature_HasStdExtD",
+ "Feature_HasStdExtF",
+ "Feature_HasStdExtM",
+ "Feature_IsRV32",
+ "Feature_IsRV32E",
+ "Feature_IsRV64",
+ nullptr
+};
+
+#endif // NDEBUG
+FeatureBitset RISCVMCCodeEmitter::
+computeAvailableFeatures(const FeatureBitset& FB) const {
+ FeatureBitset Features;
+ if ((FB[RISCV::FeatureStdExtM]))
+ Features.set(Feature_HasStdExtMBit);
+ if ((FB[RISCV::FeatureStdExtA]))
+ Features.set(Feature_HasStdExtABit);
+ if ((FB[RISCV::FeatureStdExtF]))
+ Features.set(Feature_HasStdExtFBit);
+ if ((FB[RISCV::FeatureStdExtD]))
+ Features.set(Feature_HasStdExtDBit);
+ if ((FB[RISCV::FeatureStdExtC]))
+ Features.set(Feature_HasStdExtCBit);
+ if ((FB[RISCV::FeatureRVCHints]))
+ Features.set(Feature_HasRVCHintsBit);
+ if ((FB[RISCV::Feature64Bit]))
+ Features.set(Feature_IsRV64Bit);
+ if ((!FB[RISCV::Feature64Bit]))
+ Features.set(Feature_IsRV32Bit);
+ if ((FB[RISCV::FeatureRV32E]))
+ Features.set(Feature_IsRV32EBit);
+ return Features;
+}
+
+#ifndef NDEBUG
+// Feature bitsets.
+enum : uint8_t {
+ CEFBS_None,
+ CEFBS_HasStdExtA,
+ CEFBS_HasStdExtC,
+ CEFBS_HasStdExtD,
+ CEFBS_HasStdExtF,
+ CEFBS_HasStdExtM,
+ CEFBS_IsRV32,
+ CEFBS_IsRV64,
+ CEFBS_HasStdExtA_IsRV64,
+ CEFBS_HasStdExtC_HasRVCHints,
+ CEFBS_HasStdExtC_HasStdExtD,
+ CEFBS_HasStdExtC_IsRV32,
+ CEFBS_HasStdExtC_IsRV64,
+ CEFBS_HasStdExtD_IsRV64,
+ CEFBS_HasStdExtF_IsRV64,
+ CEFBS_HasStdExtM_IsRV64,
+ CEFBS_HasStdExtC_HasStdExtF_IsRV32,
+};
+
+static constexpr FeatureBitset FeatureBitsets[] = {
+ {}, // CEFBS_None
+ {Feature_HasStdExtABit, },
+ {Feature_HasStdExtCBit, },
+ {Feature_HasStdExtDBit, },
+ {Feature_HasStdExtFBit, },
+ {Feature_HasStdExtMBit, },
+ {Feature_IsRV32Bit, },
+ {Feature_IsRV64Bit, },
+ {Feature_HasStdExtABit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtCBit, Feature_HasRVCHintsBit, },
+ {Feature_HasStdExtCBit, Feature_HasStdExtDBit, },
+ {Feature_HasStdExtCBit, Feature_IsRV32Bit, },
+ {Feature_HasStdExtCBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtDBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtFBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtMBit, Feature_IsRV64Bit, },
+ {Feature_HasStdExtCBit, Feature_HasStdExtFBit, Feature_IsRV32Bit, },
+};
+#endif // NDEBUG
+
+void RISCVMCCodeEmitter::verifyInstructionPredicates(
+ const MCInst &Inst, const FeatureBitset &AvailableFeatures) const {
+#ifndef NDEBUG
+ static uint8_t RequiredFeaturesRefs[] = {
+ CEFBS_None, // PHI = 0
+ CEFBS_None, // INLINEASM = 1
+ CEFBS_None, // INLINEASM_BR = 2
+ CEFBS_None, // CFI_INSTRUCTION = 3
+ CEFBS_None, // EH_LABEL = 4
+ CEFBS_None, // GC_LABEL = 5
+ CEFBS_None, // ANNOTATION_LABEL = 6
+ CEFBS_None, // KILL = 7
+ CEFBS_None, // EXTRACT_SUBREG = 8
+ CEFBS_None, // INSERT_SUBREG = 9
+ CEFBS_None, // IMPLICIT_DEF = 10
+ CEFBS_None, // SUBREG_TO_REG = 11
+ CEFBS_None, // COPY_TO_REGCLASS = 12
+ CEFBS_None, // DBG_VALUE = 13
+ CEFBS_None, // DBG_LABEL = 14
+ CEFBS_None, // REG_SEQUENCE = 15
+ CEFBS_None, // COPY = 16
+ CEFBS_None, // BUNDLE = 17
+ CEFBS_None, // LIFETIME_START = 18
+ CEFBS_None, // LIFETIME_END = 19
+ CEFBS_None, // STACKMAP = 20
+ CEFBS_None, // FENTRY_CALL = 21
+ CEFBS_None, // PATCHPOINT = 22
+ CEFBS_None, // LOAD_STACK_GUARD = 23
+ CEFBS_None, // STATEPOINT = 24
+ CEFBS_None, // LOCAL_ESCAPE = 25
+ CEFBS_None, // FAULTING_OP = 26
+ CEFBS_None, // PATCHABLE_OP = 27
+ CEFBS_None, // PATCHABLE_FUNCTION_ENTER = 28
+ CEFBS_None, // PATCHABLE_RET = 29
+ CEFBS_None, // PATCHABLE_FUNCTION_EXIT = 30
+ CEFBS_None, // PATCHABLE_TAIL_CALL = 31
+ CEFBS_None, // PATCHABLE_EVENT_CALL = 32
+ CEFBS_None, // PATCHABLE_TYPED_EVENT_CALL = 33
+ CEFBS_None, // ICALL_BRANCH_FUNNEL = 34
+ CEFBS_None, // G_ADD = 35
+ CEFBS_None, // G_SUB = 36
+ CEFBS_None, // G_MUL = 37
+ CEFBS_None, // G_SDIV = 38
+ CEFBS_None, // G_UDIV = 39
+ CEFBS_None, // G_SREM = 40
+ CEFBS_None, // G_UREM = 41
+ CEFBS_None, // G_AND = 42
+ CEFBS_None, // G_OR = 43
+ CEFBS_None, // G_XOR = 44
+ CEFBS_None, // G_IMPLICIT_DEF = 45
+ CEFBS_None, // G_PHI = 46
+ CEFBS_None, // G_FRAME_INDEX = 47
+ CEFBS_None, // G_GLOBAL_VALUE = 48
+ CEFBS_None, // G_EXTRACT = 49
+ CEFBS_None, // G_UNMERGE_VALUES = 50
+ CEFBS_None, // G_INSERT = 51
+ CEFBS_None, // G_MERGE_VALUES = 52
+ CEFBS_None, // G_BUILD_VECTOR = 53
+ CEFBS_None, // G_BUILD_VECTOR_TRUNC = 54
+ CEFBS_None, // G_CONCAT_VECTORS = 55
+ CEFBS_None, // G_PTRTOINT = 56
+ CEFBS_None, // G_INTTOPTR = 57
+ CEFBS_None, // G_BITCAST = 58
+ CEFBS_None, // G_INTRINSIC_TRUNC = 59
+ CEFBS_None, // G_INTRINSIC_ROUND = 60
+ CEFBS_None, // G_READCYCLECOUNTER = 61
+ CEFBS_None, // G_LOAD = 62
+ CEFBS_None, // G_SEXTLOAD = 63
+ CEFBS_None, // G_ZEXTLOAD = 64
+ CEFBS_None, // G_INDEXED_LOAD = 65
+ CEFBS_None, // G_INDEXED_SEXTLOAD = 66
+ CEFBS_None, // G_INDEXED_ZEXTLOAD = 67
+ CEFBS_None, // G_STORE = 68
+ CEFBS_None, // G_INDEXED_STORE = 69
+ CEFBS_None, // G_ATOMIC_CMPXCHG_WITH_SUCCESS = 70
+ CEFBS_None, // G_ATOMIC_CMPXCHG = 71
+ CEFBS_None, // G_ATOMICRMW_XCHG = 72
+ CEFBS_None, // G_ATOMICRMW_ADD = 73
+ CEFBS_None, // G_ATOMICRMW_SUB = 74
+ CEFBS_None, // G_ATOMICRMW_AND = 75
+ CEFBS_None, // G_ATOMICRMW_NAND = 76
+ CEFBS_None, // G_ATOMICRMW_OR = 77
+ CEFBS_None, // G_ATOMICRMW_XOR = 78
+ CEFBS_None, // G_ATOMICRMW_MAX = 79
+ CEFBS_None, // G_ATOMICRMW_MIN = 80
+ CEFBS_None, // G_ATOMICRMW_UMAX = 81
+ CEFBS_None, // G_ATOMICRMW_UMIN = 82
+ CEFBS_None, // G_ATOMICRMW_FADD = 83
+ CEFBS_None, // G_ATOMICRMW_FSUB = 84
+ CEFBS_None, // G_FENCE = 85
+ CEFBS_None, // G_BRCOND = 86
+ CEFBS_None, // G_BRINDIRECT = 87
+ CEFBS_None, // G_INTRINSIC = 88
+ CEFBS_None, // G_INTRINSIC_W_SIDE_EFFECTS = 89
+ CEFBS_None, // G_ANYEXT = 90
+ CEFBS_None, // G_TRUNC = 91
+ CEFBS_None, // G_CONSTANT = 92
+ CEFBS_None, // G_FCONSTANT = 93
+ CEFBS_None, // G_VASTART = 94
+ CEFBS_None, // G_VAARG = 95
+ CEFBS_None, // G_SEXT = 96
+ CEFBS_None, // G_SEXT_INREG = 97
+ CEFBS_None, // G_ZEXT = 98
+ CEFBS_None, // G_SHL = 99
+ CEFBS_None, // G_LSHR = 100
+ CEFBS_None, // G_ASHR = 101
+ CEFBS_None, // G_ICMP = 102
+ CEFBS_None, // G_FCMP = 103
+ CEFBS_None, // G_SELECT = 104
+ CEFBS_None, // G_UADDO = 105
+ CEFBS_None, // G_UADDE = 106
+ CEFBS_None, // G_USUBO = 107
+ CEFBS_None, // G_USUBE = 108
+ CEFBS_None, // G_SADDO = 109
+ CEFBS_None, // G_SADDE = 110
+ CEFBS_None, // G_SSUBO = 111
+ CEFBS_None, // G_SSUBE = 112
+ CEFBS_None, // G_UMULO = 113
+ CEFBS_None, // G_SMULO = 114
+ CEFBS_None, // G_UMULH = 115
+ CEFBS_None, // G_SMULH = 116
+ CEFBS_None, // G_FADD = 117
+ CEFBS_None, // G_FSUB = 118
+ CEFBS_None, // G_FMUL = 119
+ CEFBS_None, // G_FMA = 120
+ CEFBS_None, // G_FMAD = 121
+ CEFBS_None, // G_FDIV = 122
+ CEFBS_None, // G_FREM = 123
+ CEFBS_None, // G_FPOW = 124
+ CEFBS_None, // G_FEXP = 125
+ CEFBS_None, // G_FEXP2 = 126
+ CEFBS_None, // G_FLOG = 127
+ CEFBS_None, // G_FLOG2 = 128
+ CEFBS_None, // G_FLOG10 = 129
+ CEFBS_None, // G_FNEG = 130
+ CEFBS_None, // G_FPEXT = 131
+ CEFBS_None, // G_FPTRUNC = 132
+ CEFBS_None, // G_FPTOSI = 133
+ CEFBS_None, // G_FPTOUI = 134
+ CEFBS_None, // G_SITOFP = 135
+ CEFBS_None, // G_UITOFP = 136
+ CEFBS_None, // G_FABS = 137
+ CEFBS_None, // G_FCOPYSIGN = 138
+ CEFBS_None, // G_FCANONICALIZE = 139
+ CEFBS_None, // G_FMINNUM = 140
+ CEFBS_None, // G_FMAXNUM = 141
+ CEFBS_None, // G_FMINNUM_IEEE = 142
+ CEFBS_None, // G_FMAXNUM_IEEE = 143
+ CEFBS_None, // G_FMINIMUM = 144
+ CEFBS_None, // G_FMAXIMUM = 145
+ CEFBS_None, // G_PTR_ADD = 146
+ CEFBS_None, // G_PTR_MASK = 147
+ CEFBS_None, // G_SMIN = 148
+ CEFBS_None, // G_SMAX = 149
+ CEFBS_None, // G_UMIN = 150
+ CEFBS_None, // G_UMAX = 151
+ CEFBS_None, // G_BR = 152
+ CEFBS_None, // G_BRJT = 153
+ CEFBS_None, // G_INSERT_VECTOR_ELT = 154
+ CEFBS_None, // G_EXTRACT_VECTOR_ELT = 155
+ CEFBS_None, // G_SHUFFLE_VECTOR = 156
+ CEFBS_None, // G_CTTZ = 157
+ CEFBS_None, // G_CTTZ_ZERO_UNDEF = 158
+ CEFBS_None, // G_CTLZ = 159
+ CEFBS_None, // G_CTLZ_ZERO_UNDEF = 160
+ CEFBS_None, // G_CTPOP = 161
+ CEFBS_None, // G_BSWAP = 162
+ CEFBS_None, // G_BITREVERSE = 163
+ CEFBS_None, // G_FCEIL = 164
+ CEFBS_None, // G_FCOS = 165
+ CEFBS_None, // G_FSIN = 166
+ CEFBS_None, // G_FSQRT = 167
+ CEFBS_None, // G_FFLOOR = 168
+ CEFBS_None, // G_FRINT = 169
+ CEFBS_None, // G_FNEARBYINT = 170
+ CEFBS_None, // G_ADDRSPACE_CAST = 171
+ CEFBS_None, // G_BLOCK_ADDR = 172
+ CEFBS_None, // G_JUMP_TABLE = 173
+ CEFBS_None, // G_DYN_STACKALLOC = 174
+ CEFBS_None, // G_READ_REGISTER = 175
+ CEFBS_None, // G_WRITE_REGISTER = 176
+ CEFBS_None, // ADJCALLSTACKDOWN = 177
+ CEFBS_None, // ADJCALLSTACKUP = 178
+ CEFBS_HasStdExtD, // BuildPairF64Pseudo = 179
+ CEFBS_None, // PseudoAddTPRel = 180
+ CEFBS_HasStdExtA, // PseudoAtomicLoadNand32 = 181
+ CEFBS_HasStdExtA_IsRV64, // PseudoAtomicLoadNand64 = 182
+ CEFBS_None, // PseudoBR = 183
+ CEFBS_None, // PseudoBRIND = 184
+ CEFBS_None, // PseudoCALL = 185
+ CEFBS_None, // PseudoCALLIndirect = 186
+ CEFBS_None, // PseudoCALLReg = 187
+ CEFBS_HasStdExtA, // PseudoCmpXchg32 = 188
+ CEFBS_HasStdExtA_IsRV64, // PseudoCmpXchg64 = 189
+ CEFBS_HasStdExtD, // PseudoFLD = 190
+ CEFBS_HasStdExtF, // PseudoFLW = 191
+ CEFBS_HasStdExtD, // PseudoFSD = 192
+ CEFBS_HasStdExtF, // PseudoFSW = 193
+ CEFBS_None, // PseudoLA = 194
+ CEFBS_None, // PseudoLA_TLS_GD = 195
+ CEFBS_None, // PseudoLA_TLS_IE = 196
+ CEFBS_None, // PseudoLB = 197
+ CEFBS_None, // PseudoLBU = 198
+ CEFBS_IsRV64, // PseudoLD = 199
+ CEFBS_None, // PseudoLH = 200
+ CEFBS_None, // PseudoLHU = 201
+ CEFBS_None, // PseudoLI = 202
+ CEFBS_None, // PseudoLLA = 203
+ CEFBS_None, // PseudoLW = 204
+ CEFBS_IsRV64, // PseudoLWU = 205
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadAdd32 = 206
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadMax32 = 207
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadMin32 = 208
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadNand32 = 209
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadSub32 = 210
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadUMax32 = 211
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicLoadUMin32 = 212
+ CEFBS_HasStdExtA, // PseudoMaskedAtomicSwap32 = 213
+ CEFBS_HasStdExtA, // PseudoMaskedCmpXchg32 = 214
+ CEFBS_None, // PseudoRET = 215
+ CEFBS_None, // PseudoSB = 216
+ CEFBS_IsRV64, // PseudoSD = 217
+ CEFBS_None, // PseudoSH = 218
+ CEFBS_None, // PseudoSW = 219
+ CEFBS_None, // PseudoTAIL = 220
+ CEFBS_None, // PseudoTAILIndirect = 221
+ CEFBS_IsRV32, // ReadCycleWide = 222
+ CEFBS_HasStdExtF, // Select_FPR32_Using_CC_GPR = 223
+ CEFBS_HasStdExtD, // Select_FPR64_Using_CC_GPR = 224
+ CEFBS_None, // Select_GPR_Using_CC_GPR = 225
+ CEFBS_HasStdExtD, // SplitF64Pseudo = 226
+ CEFBS_None, // ADD = 227
+ CEFBS_None, // ADDI = 228
+ CEFBS_IsRV64, // ADDIW = 229
+ CEFBS_IsRV64, // ADDW = 230
+ CEFBS_HasStdExtA_IsRV64, // AMOADD_D = 231
+ CEFBS_HasStdExtA_IsRV64, // AMOADD_D_AQ = 232
+ CEFBS_HasStdExtA_IsRV64, // AMOADD_D_AQ_RL = 233
+ CEFBS_HasStdExtA_IsRV64, // AMOADD_D_RL = 234
+ CEFBS_HasStdExtA, // AMOADD_W = 235
+ CEFBS_HasStdExtA, // AMOADD_W_AQ = 236
+ CEFBS_HasStdExtA, // AMOADD_W_AQ_RL = 237
+ CEFBS_HasStdExtA, // AMOADD_W_RL = 238
+ CEFBS_HasStdExtA_IsRV64, // AMOAND_D = 239
+ CEFBS_HasStdExtA_IsRV64, // AMOAND_D_AQ = 240
+ CEFBS_HasStdExtA_IsRV64, // AMOAND_D_AQ_RL = 241
+ CEFBS_HasStdExtA_IsRV64, // AMOAND_D_RL = 242
+ CEFBS_HasStdExtA, // AMOAND_W = 243
+ CEFBS_HasStdExtA, // AMOAND_W_AQ = 244
+ CEFBS_HasStdExtA, // AMOAND_W_AQ_RL = 245
+ CEFBS_HasStdExtA, // AMOAND_W_RL = 246
+ CEFBS_HasStdExtA_IsRV64, // AMOMAXU_D = 247
+ CEFBS_HasStdExtA_IsRV64, // AMOMAXU_D_AQ = 248
+ CEFBS_HasStdExtA_IsRV64, // AMOMAXU_D_AQ_RL = 249
+ CEFBS_HasStdExtA_IsRV64, // AMOMAXU_D_RL = 250
+ CEFBS_HasStdExtA, // AMOMAXU_W = 251
+ CEFBS_HasStdExtA, // AMOMAXU_W_AQ = 252
+ CEFBS_HasStdExtA, // AMOMAXU_W_AQ_RL = 253
+ CEFBS_HasStdExtA, // AMOMAXU_W_RL = 254
+ CEFBS_HasStdExtA_IsRV64, // AMOMAX_D = 255
+ CEFBS_HasStdExtA_IsRV64, // AMOMAX_D_AQ = 256
+ CEFBS_HasStdExtA_IsRV64, // AMOMAX_D_AQ_RL = 257
+ CEFBS_HasStdExtA_IsRV64, // AMOMAX_D_RL = 258
+ CEFBS_HasStdExtA, // AMOMAX_W = 259
+ CEFBS_HasStdExtA, // AMOMAX_W_AQ = 260
+ CEFBS_HasStdExtA, // AMOMAX_W_AQ_RL = 261
+ CEFBS_HasStdExtA, // AMOMAX_W_RL = 262
+ CEFBS_HasStdExtA_IsRV64, // AMOMINU_D = 263
+ CEFBS_HasStdExtA_IsRV64, // AMOMINU_D_AQ = 264
+ CEFBS_HasStdExtA_IsRV64, // AMOMINU_D_AQ_RL = 265
+ CEFBS_HasStdExtA_IsRV64, // AMOMINU_D_RL = 266
+ CEFBS_HasStdExtA, // AMOMINU_W = 267
+ CEFBS_HasStdExtA, // AMOMINU_W_AQ = 268
+ CEFBS_HasStdExtA, // AMOMINU_W_AQ_RL = 269
+ CEFBS_HasStdExtA, // AMOMINU_W_RL = 270
+ CEFBS_HasStdExtA_IsRV64, // AMOMIN_D = 271
+ CEFBS_HasStdExtA_IsRV64, // AMOMIN_D_AQ = 272
+ CEFBS_HasStdExtA_IsRV64, // AMOMIN_D_AQ_RL = 273
+ CEFBS_HasStdExtA_IsRV64, // AMOMIN_D_RL = 274
+ CEFBS_HasStdExtA, // AMOMIN_W = 275
+ CEFBS_HasStdExtA, // AMOMIN_W_AQ = 276
+ CEFBS_HasStdExtA, // AMOMIN_W_AQ_RL = 277
+ CEFBS_HasStdExtA, // AMOMIN_W_RL = 278
+ CEFBS_HasStdExtA_IsRV64, // AMOOR_D = 279
+ CEFBS_HasStdExtA_IsRV64, // AMOOR_D_AQ = 280
+ CEFBS_HasStdExtA_IsRV64, // AMOOR_D_AQ_RL = 281
+ CEFBS_HasStdExtA_IsRV64, // AMOOR_D_RL = 282
+ CEFBS_HasStdExtA, // AMOOR_W = 283
+ CEFBS_HasStdExtA, // AMOOR_W_AQ = 284
+ CEFBS_HasStdExtA, // AMOOR_W_AQ_RL = 285
+ CEFBS_HasStdExtA, // AMOOR_W_RL = 286
+ CEFBS_HasStdExtA_IsRV64, // AMOSWAP_D = 287
+ CEFBS_HasStdExtA_IsRV64, // AMOSWAP_D_AQ = 288
+ CEFBS_HasStdExtA_IsRV64, // AMOSWAP_D_AQ_RL = 289
+ CEFBS_HasStdExtA_IsRV64, // AMOSWAP_D_RL = 290
+ CEFBS_HasStdExtA, // AMOSWAP_W = 291
+ CEFBS_HasStdExtA, // AMOSWAP_W_AQ = 292
+ CEFBS_HasStdExtA, // AMOSWAP_W_AQ_RL = 293
+ CEFBS_HasStdExtA, // AMOSWAP_W_RL = 294
+ CEFBS_HasStdExtA_IsRV64, // AMOXOR_D = 295
+ CEFBS_HasStdExtA_IsRV64, // AMOXOR_D_AQ = 296
+ CEFBS_HasStdExtA_IsRV64, // AMOXOR_D_AQ_RL = 297
+ CEFBS_HasStdExtA_IsRV64, // AMOXOR_D_RL = 298
+ CEFBS_HasStdExtA, // AMOXOR_W = 299
+ CEFBS_HasStdExtA, // AMOXOR_W_AQ = 300
+ CEFBS_HasStdExtA, // AMOXOR_W_AQ_RL = 301
+ CEFBS_HasStdExtA, // AMOXOR_W_RL = 302
+ CEFBS_None, // AND = 303
+ CEFBS_None, // ANDI = 304
+ CEFBS_None, // AUIPC = 305
+ CEFBS_None, // BEQ = 306
+ CEFBS_None, // BGE = 307
+ CEFBS_None, // BGEU = 308
+ CEFBS_None, // BLT = 309
+ CEFBS_None, // BLTU = 310
+ CEFBS_None, // BNE = 311
+ CEFBS_None, // CSRRC = 312
+ CEFBS_None, // CSRRCI = 313
+ CEFBS_None, // CSRRS = 314
+ CEFBS_None, // CSRRSI = 315
+ CEFBS_None, // CSRRW = 316
+ CEFBS_None, // CSRRWI = 317
+ CEFBS_HasStdExtC, // C_ADD = 318
+ CEFBS_HasStdExtC, // C_ADDI = 319
+ CEFBS_HasStdExtC, // C_ADDI16SP = 320
+ CEFBS_HasStdExtC, // C_ADDI4SPN = 321
+ CEFBS_HasStdExtC_IsRV64, // C_ADDIW = 322
+ CEFBS_HasStdExtC_HasRVCHints, // C_ADDI_HINT_IMM_ZERO = 323
+ CEFBS_HasStdExtC_HasRVCHints, // C_ADDI_HINT_X0 = 324
+ CEFBS_HasStdExtC, // C_ADDI_NOP = 325
+ CEFBS_HasStdExtC_IsRV64, // C_ADDW = 326
+ CEFBS_HasStdExtC_HasRVCHints, // C_ADD_HINT = 327
+ CEFBS_HasStdExtC, // C_AND = 328
+ CEFBS_HasStdExtC, // C_ANDI = 329
+ CEFBS_HasStdExtC, // C_BEQZ = 330
+ CEFBS_HasStdExtC, // C_BNEZ = 331
+ CEFBS_HasStdExtC, // C_EBREAK = 332
+ CEFBS_HasStdExtC_HasStdExtD, // C_FLD = 333
+ CEFBS_HasStdExtC_HasStdExtD, // C_FLDSP = 334
+ CEFBS_HasStdExtC_HasStdExtF_IsRV32, // C_FLW = 335
+ CEFBS_HasStdExtC_HasStdExtF_IsRV32, // C_FLWSP = 336
+ CEFBS_HasStdExtC_HasStdExtD, // C_FSD = 337
+ CEFBS_HasStdExtC_HasStdExtD, // C_FSDSP = 338
+ CEFBS_HasStdExtC_HasStdExtF_IsRV32, // C_FSW = 339
+ CEFBS_HasStdExtC_HasStdExtF_IsRV32, // C_FSWSP = 340
+ CEFBS_HasStdExtC, // C_J = 341
+ CEFBS_HasStdExtC_IsRV32, // C_JAL = 342
+ CEFBS_HasStdExtC, // C_JALR = 343
+ CEFBS_HasStdExtC, // C_JR = 344
+ CEFBS_HasStdExtC_IsRV64, // C_LD = 345
+ CEFBS_HasStdExtC_IsRV64, // C_LDSP = 346
+ CEFBS_HasStdExtC, // C_LI = 347
+ CEFBS_HasStdExtC_HasRVCHints, // C_LI_HINT = 348
+ CEFBS_HasStdExtC, // C_LUI = 349
+ CEFBS_HasStdExtC_HasRVCHints, // C_LUI_HINT = 350
+ CEFBS_HasStdExtC, // C_LW = 351
+ CEFBS_HasStdExtC, // C_LWSP = 352
+ CEFBS_HasStdExtC, // C_MV = 353
+ CEFBS_HasStdExtC_HasRVCHints, // C_MV_HINT = 354
+ CEFBS_HasStdExtC, // C_NOP = 355
+ CEFBS_HasStdExtC_HasRVCHints, // C_NOP_HINT = 356
+ CEFBS_HasStdExtC, // C_OR = 357
+ CEFBS_HasStdExtC_IsRV64, // C_SD = 358
+ CEFBS_HasStdExtC_IsRV64, // C_SDSP = 359
+ CEFBS_HasStdExtC, // C_SLLI = 360
+ CEFBS_HasStdExtC_HasRVCHints, // C_SLLI64_HINT = 361
+ CEFBS_HasStdExtC_HasRVCHints, // C_SLLI_HINT = 362
+ CEFBS_HasStdExtC, // C_SRAI = 363
+ CEFBS_HasStdExtC_HasRVCHints, // C_SRAI64_HINT = 364
+ CEFBS_HasStdExtC, // C_SRLI = 365
+ CEFBS_HasStdExtC_HasRVCHints, // C_SRLI64_HINT = 366
+ CEFBS_HasStdExtC, // C_SUB = 367
+ CEFBS_HasStdExtC_IsRV64, // C_SUBW = 368
+ CEFBS_HasStdExtC, // C_SW = 369
+ CEFBS_HasStdExtC, // C_SWSP = 370
+ CEFBS_HasStdExtC, // C_UNIMP = 371
+ CEFBS_HasStdExtC, // C_XOR = 372
+ CEFBS_HasStdExtM, // DIV = 373
+ CEFBS_HasStdExtM, // DIVU = 374
+ CEFBS_HasStdExtM_IsRV64, // DIVUW = 375
+ CEFBS_HasStdExtM_IsRV64, // DIVW = 376
+ CEFBS_None, // EBREAK = 377
+ CEFBS_None, // ECALL = 378
+ CEFBS_HasStdExtD, // FADD_D = 379
+ CEFBS_HasStdExtF, // FADD_S = 380
+ CEFBS_HasStdExtD, // FCLASS_D = 381
+ CEFBS_HasStdExtF, // FCLASS_S = 382
+ CEFBS_HasStdExtD_IsRV64, // FCVT_D_L = 383
+ CEFBS_HasStdExtD_IsRV64, // FCVT_D_LU = 384
+ CEFBS_HasStdExtD, // FCVT_D_S = 385
+ CEFBS_HasStdExtD, // FCVT_D_W = 386
+ CEFBS_HasStdExtD, // FCVT_D_WU = 387
+ CEFBS_HasStdExtD_IsRV64, // FCVT_LU_D = 388
+ CEFBS_HasStdExtF_IsRV64, // FCVT_LU_S = 389
+ CEFBS_HasStdExtD_IsRV64, // FCVT_L_D = 390
+ CEFBS_HasStdExtF_IsRV64, // FCVT_L_S = 391
+ CEFBS_HasStdExtD, // FCVT_S_D = 392
+ CEFBS_HasStdExtF_IsRV64, // FCVT_S_L = 393
+ CEFBS_HasStdExtF_IsRV64, // FCVT_S_LU = 394
+ CEFBS_HasStdExtF, // FCVT_S_W = 395
+ CEFBS_HasStdExtF, // FCVT_S_WU = 396
+ CEFBS_HasStdExtD, // FCVT_WU_D = 397
+ CEFBS_HasStdExtF, // FCVT_WU_S = 398
+ CEFBS_HasStdExtD, // FCVT_W_D = 399
+ CEFBS_HasStdExtF, // FCVT_W_S = 400
+ CEFBS_HasStdExtD, // FDIV_D = 401
+ CEFBS_HasStdExtF, // FDIV_S = 402
+ CEFBS_None, // FENCE = 403
+ CEFBS_None, // FENCE_I = 404
+ CEFBS_None, // FENCE_TSO = 405
+ CEFBS_HasStdExtD, // FEQ_D = 406
+ CEFBS_HasStdExtF, // FEQ_S = 407
+ CEFBS_HasStdExtD, // FLD = 408
+ CEFBS_HasStdExtD, // FLE_D = 409
+ CEFBS_HasStdExtF, // FLE_S = 410
+ CEFBS_HasStdExtD, // FLT_D = 411
+ CEFBS_HasStdExtF, // FLT_S = 412
+ CEFBS_HasStdExtF, // FLW = 413
+ CEFBS_HasStdExtD, // FMADD_D = 414
+ CEFBS_HasStdExtF, // FMADD_S = 415
+ CEFBS_HasStdExtD, // FMAX_D = 416
+ CEFBS_HasStdExtF, // FMAX_S = 417
+ CEFBS_HasStdExtD, // FMIN_D = 418
+ CEFBS_HasStdExtF, // FMIN_S = 419
+ CEFBS_HasStdExtD, // FMSUB_D = 420
+ CEFBS_HasStdExtF, // FMSUB_S = 421
+ CEFBS_HasStdExtD, // FMUL_D = 422
+ CEFBS_HasStdExtF, // FMUL_S = 423
+ CEFBS_HasStdExtD_IsRV64, // FMV_D_X = 424
+ CEFBS_HasStdExtF, // FMV_W_X = 425
+ CEFBS_HasStdExtD_IsRV64, // FMV_X_D = 426
+ CEFBS_HasStdExtF, // FMV_X_W = 427
+ CEFBS_HasStdExtD, // FNMADD_D = 428
+ CEFBS_HasStdExtF, // FNMADD_S = 429
+ CEFBS_HasStdExtD, // FNMSUB_D = 430
+ CEFBS_HasStdExtF, // FNMSUB_S = 431
+ CEFBS_HasStdExtD, // FSD = 432
+ CEFBS_HasStdExtD, // FSGNJN_D = 433
+ CEFBS_HasStdExtF, // FSGNJN_S = 434
+ CEFBS_HasStdExtD, // FSGNJX_D = 435
+ CEFBS_HasStdExtF, // FSGNJX_S = 436
+ CEFBS_HasStdExtD, // FSGNJ_D = 437
+ CEFBS_HasStdExtF, // FSGNJ_S = 438
+ CEFBS_HasStdExtD, // FSQRT_D = 439
+ CEFBS_HasStdExtF, // FSQRT_S = 440
+ CEFBS_HasStdExtD, // FSUB_D = 441
+ CEFBS_HasStdExtF, // FSUB_S = 442
+ CEFBS_HasStdExtF, // FSW = 443
+ CEFBS_None, // JAL = 444
+ CEFBS_None, // JALR = 445
+ CEFBS_None, // LB = 446
+ CEFBS_None, // LBU = 447
+ CEFBS_IsRV64, // LD = 448
+ CEFBS_None, // LH = 449
+ CEFBS_None, // LHU = 450
+ CEFBS_HasStdExtA_IsRV64, // LR_D = 451
+ CEFBS_HasStdExtA_IsRV64, // LR_D_AQ = 452
+ CEFBS_HasStdExtA_IsRV64, // LR_D_AQ_RL = 453
+ CEFBS_HasStdExtA_IsRV64, // LR_D_RL = 454
+ CEFBS_HasStdExtA, // LR_W = 455
+ CEFBS_HasStdExtA, // LR_W_AQ = 456
+ CEFBS_HasStdExtA, // LR_W_AQ_RL = 457
+ CEFBS_HasStdExtA, // LR_W_RL = 458
+ CEFBS_None, // LUI = 459
+ CEFBS_None, // LW = 460
+ CEFBS_IsRV64, // LWU = 461
+ CEFBS_None, // MRET = 462
+ CEFBS_HasStdExtM, // MUL = 463
+ CEFBS_HasStdExtM, // MULH = 464
+ CEFBS_HasStdExtM, // MULHSU = 465
+ CEFBS_HasStdExtM, // MULHU = 466
+ CEFBS_HasStdExtM_IsRV64, // MULW = 467
+ CEFBS_None, // OR = 468
+ CEFBS_None, // ORI = 469
+ CEFBS_HasStdExtM, // REM = 470
+ CEFBS_HasStdExtM, // REMU = 471
+ CEFBS_HasStdExtM_IsRV64, // REMUW = 472
+ CEFBS_HasStdExtM_IsRV64, // REMW = 473
+ CEFBS_None, // SB = 474
+ CEFBS_HasStdExtA_IsRV64, // SC_D = 475
+ CEFBS_HasStdExtA_IsRV64, // SC_D_AQ = 476
+ CEFBS_HasStdExtA_IsRV64, // SC_D_AQ_RL = 477
+ CEFBS_HasStdExtA_IsRV64, // SC_D_RL = 478
+ CEFBS_HasStdExtA, // SC_W = 479
+ CEFBS_HasStdExtA, // SC_W_AQ = 480
+ CEFBS_HasStdExtA, // SC_W_AQ_RL = 481
+ CEFBS_HasStdExtA, // SC_W_RL = 482
+ CEFBS_IsRV64, // SD = 483
+ CEFBS_None, // SFENCE_VMA = 484
+ CEFBS_None, // SH = 485
+ CEFBS_None, // SLL = 486
+ CEFBS_None, // SLLI = 487
+ CEFBS_IsRV64, // SLLIW = 488
+ CEFBS_IsRV64, // SLLW = 489
+ CEFBS_None, // SLT = 490
+ CEFBS_None, // SLTI = 491
+ CEFBS_None, // SLTIU = 492
+ CEFBS_None, // SLTU = 493
+ CEFBS_None, // SRA = 494
+ CEFBS_None, // SRAI = 495
+ CEFBS_IsRV64, // SRAIW = 496
+ CEFBS_IsRV64, // SRAW = 497
+ CEFBS_None, // SRET = 498
+ CEFBS_None, // SRL = 499
+ CEFBS_None, // SRLI = 500
+ CEFBS_IsRV64, // SRLIW = 501
+ CEFBS_IsRV64, // SRLW = 502
+ CEFBS_None, // SUB = 503
+ CEFBS_IsRV64, // SUBW = 504
+ CEFBS_None, // SW = 505
+ CEFBS_None, // UNIMP = 506
+ CEFBS_None, // URET = 507
+ CEFBS_None, // WFI = 508
+ CEFBS_None, // XOR = 509
+ CEFBS_None, // XORI = 510
+ };
+
+ assert(Inst.getOpcode() < 511);
+ const FeatureBitset &RequiredFeatures = FeatureBitsets[RequiredFeaturesRefs[Inst.getOpcode()]];
+ FeatureBitset MissingFeatures =
+ (AvailableFeatures & RequiredFeatures) ^
+ RequiredFeatures;
+ if (MissingFeatures.any()) {
+ std::ostringstream Msg;
+ Msg << "Attempting to emit " << MCII.getName(Inst.getOpcode()).str()
+ << " instruction but the ";
+ for (unsigned i = 0, e = MissingFeatures.size(); i != e; ++i)
+ if (MissingFeatures.test(i))
+ Msg << SubtargetFeatureNames[i] << " ";
+ Msg << "predicate(s) are not met";
+ report_fatal_error(Msg.str());
+ }
+#else
+// Silence unused variable warning on targets that don't use MCII for other purposes (e.g. BPF).
+(void)MCII;
+#endif // NDEBUG
+}
+#endif
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCPseudoLowering.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCPseudoLowering.inc
new file mode 100644
index 0000000..d98f46f
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenMCPseudoLowering.inc
@@ -0,0 +1,85 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Pseudo-instruction MC lowering Source Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+bool RISCVAsmPrinter::
+emitPseudoExpansionLowering(MCStreamer &OutStreamer,
+ const MachineInstr *MI) {
+ switch (MI->getOpcode()) {
+ default: return false;
+ case RISCV::PseudoBR: {
+ MCInst TmpInst;
+ MCOperand MCOp;
+ TmpInst.setOpcode(RISCV::JAL);
+ // Operand: rd
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: imm20
+ lowerOperand(MI->getOperand(0), MCOp);
+ TmpInst.addOperand(MCOp);
+ EmitToStreamer(OutStreamer, TmpInst);
+ break;
+ }
+ case RISCV::PseudoBRIND: {
+ MCInst TmpInst;
+ MCOperand MCOp;
+ TmpInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs1
+ lowerOperand(MI->getOperand(0), MCOp);
+ TmpInst.addOperand(MCOp);
+ // Operand: imm12
+ lowerOperand(MI->getOperand(1), MCOp);
+ TmpInst.addOperand(MCOp);
+ EmitToStreamer(OutStreamer, TmpInst);
+ break;
+ }
+ case RISCV::PseudoCALLIndirect: {
+ MCInst TmpInst;
+ MCOperand MCOp;
+ TmpInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X1));
+ // Operand: rs1
+ lowerOperand(MI->getOperand(0), MCOp);
+ TmpInst.addOperand(MCOp);
+ // Operand: imm12
+ TmpInst.addOperand(MCOperand::createImm(0));
+ EmitToStreamer(OutStreamer, TmpInst);
+ break;
+ }
+ case RISCV::PseudoRET: {
+ MCInst TmpInst;
+ MCOperand MCOp;
+ TmpInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs1
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X1));
+ // Operand: imm12
+ TmpInst.addOperand(MCOperand::createImm(0));
+ EmitToStreamer(OutStreamer, TmpInst);
+ break;
+ }
+ case RISCV::PseudoTAILIndirect: {
+ MCInst TmpInst;
+ MCOperand MCOp;
+ TmpInst.setOpcode(RISCV::JALR);
+ // Operand: rd
+ TmpInst.addOperand(MCOperand::createReg(RISCV::X0));
+ // Operand: rs1
+ lowerOperand(MI->getOperand(0), MCOp);
+ TmpInst.addOperand(MCOp);
+ // Operand: imm12
+ TmpInst.addOperand(MCOperand::createImm(0));
+ EmitToStreamer(OutStreamer, TmpInst);
+ break;
+ }
+ }
+ return true;
+}
+
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterBank.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterBank.inc
new file mode 100644
index 0000000..3c9c6e7
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterBank.inc
@@ -0,0 +1,65 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Register Bank Source Fragments *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+#ifdef GET_REGBANK_DECLARATIONS
+#undef GET_REGBANK_DECLARATIONS
+namespace llvm {
+namespace RISCV {
+enum {
+ GPRRegBankID,
+ NumRegisterBanks,
+};
+} // end namespace RISCV
+} // end namespace llvm
+#endif // GET_REGBANK_DECLARATIONS
+
+#ifdef GET_TARGET_REGBANK_CLASS
+#undef GET_TARGET_REGBANK_CLASS
+private:
+ static RegisterBank *RegBanks[];
+
+protected:
+ RISCVGenRegisterBankInfo();
+
+#endif // GET_TARGET_REGBANK_CLASS
+
+#ifdef GET_TARGET_REGBANK_IMPL
+#undef GET_TARGET_REGBANK_IMPL
+namespace llvm {
+namespace RISCV {
+const uint32_t GPRRegBankCoverageData[] = {
+ // 0-31
+ (1u << (RISCV::GPRRegClassID - 0)) |
+ (1u << (RISCV::GPRNoX0RegClassID - 0)) |
+ (1u << (RISCV::GPRNoX0X2RegClassID - 0)) |
+ (1u << (RISCV::GPRTCRegClassID - 0)) |
+ (1u << (RISCV::GPRC_and_GPRTCRegClassID - 0)) |
+ (1u << (RISCV::GPRCRegClassID - 0)) |
+ (1u << (RISCV::SPRegClassID - 0)) |
+ (1u << (RISCV::GPRX0RegClassID - 0)) |
+ 0,
+};
+
+RegisterBank GPRRegBank(/* ID */ RISCV::GPRRegBankID, /* Name */ "GPRB", /* Size */ 32, /* CoveredRegClasses */ GPRRegBankCoverageData, /* NumRegClasses */ 12);
+} // end namespace RISCV
+
+RegisterBank *RISCVGenRegisterBankInfo::RegBanks[] = {
+ &RISCV::GPRRegBank,
+};
+
+RISCVGenRegisterBankInfo::RISCVGenRegisterBankInfo()
+ : RegisterBankInfo(RegBanks, RISCV::NumRegisterBanks) {
+ // Assert that RegBank indices match their ID's
+#ifndef NDEBUG
+ unsigned Index = 0;
+ for (const auto &RB : RegBanks)
+ assert(Index++ == RB->getID() && "Index != ID");
+#endif // NDEBUG
+}
+} // end namespace llvm
+#endif // GET_TARGET_REGBANK_IMPL
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterInfo.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterInfo.inc
new file mode 100644
index 0000000..fcaefb1
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenRegisterInfo.inc
@@ -0,0 +1,1911 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Target Register Enum Values *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_REGINFO_ENUM
+#undef GET_REGINFO_ENUM
+
+namespace llvm {
+
+class MCRegisterClass;
+extern const MCRegisterClass RISCVMCRegisterClasses[];
+
+namespace RISCV {
+enum {
+ NoRegister,
+ X0 = 1,
+ X1 = 2,
+ X2 = 3,
+ X3 = 4,
+ X4 = 5,
+ X5 = 6,
+ X6 = 7,
+ X7 = 8,
+ X8 = 9,
+ X9 = 10,
+ X10 = 11,
+ X11 = 12,
+ X12 = 13,
+ X13 = 14,
+ X14 = 15,
+ X15 = 16,
+ X16 = 17,
+ X17 = 18,
+ X18 = 19,
+ X19 = 20,
+ X20 = 21,
+ X21 = 22,
+ X22 = 23,
+ X23 = 24,
+ X24 = 25,
+ X25 = 26,
+ X26 = 27,
+ X27 = 28,
+ X28 = 29,
+ X29 = 30,
+ X30 = 31,
+ X31 = 32,
+ F0_D = 33,
+ F1_D = 34,
+ F2_D = 35,
+ F3_D = 36,
+ F4_D = 37,
+ F5_D = 38,
+ F6_D = 39,
+ F7_D = 40,
+ F8_D = 41,
+ F9_D = 42,
+ F10_D = 43,
+ F11_D = 44,
+ F12_D = 45,
+ F13_D = 46,
+ F14_D = 47,
+ F15_D = 48,
+ F16_D = 49,
+ F17_D = 50,
+ F18_D = 51,
+ F19_D = 52,
+ F20_D = 53,
+ F21_D = 54,
+ F22_D = 55,
+ F23_D = 56,
+ F24_D = 57,
+ F25_D = 58,
+ F26_D = 59,
+ F27_D = 60,
+ F28_D = 61,
+ F29_D = 62,
+ F30_D = 63,
+ F31_D = 64,
+ F0_F = 65,
+ F1_F = 66,
+ F2_F = 67,
+ F3_F = 68,
+ F4_F = 69,
+ F5_F = 70,
+ F6_F = 71,
+ F7_F = 72,
+ F8_F = 73,
+ F9_F = 74,
+ F10_F = 75,
+ F11_F = 76,
+ F12_F = 77,
+ F13_F = 78,
+ F14_F = 79,
+ F15_F = 80,
+ F16_F = 81,
+ F17_F = 82,
+ F18_F = 83,
+ F19_F = 84,
+ F20_F = 85,
+ F21_F = 86,
+ F22_F = 87,
+ F23_F = 88,
+ F24_F = 89,
+ F25_F = 90,
+ F26_F = 91,
+ F27_F = 92,
+ F28_F = 93,
+ F29_F = 94,
+ F30_F = 95,
+ F31_F = 96,
+ NUM_TARGET_REGS // 97
+};
+} // end namespace RISCV
+
+// Register classes
+
+namespace RISCV {
+enum {
+ FPR32RegClassID = 0,
+ GPRRegClassID = 1,
+ GPRNoX0RegClassID = 2,
+ GPRNoX0X2RegClassID = 3,
+ GPRTCRegClassID = 4,
+ FPR32CRegClassID = 5,
+ GPRCRegClassID = 6,
+ GPRC_and_GPRTCRegClassID = 7,
+ GPRX0RegClassID = 8,
+ SPRegClassID = 9,
+ FPR64RegClassID = 10,
+ FPR64CRegClassID = 11,
+
+ };
+} // end namespace RISCV
+
+
+// Register alternate name indices
+
+namespace RISCV {
+enum {
+ ABIRegAltName, // 0
+ NoRegAltName, // 1
+ NUM_TARGET_REG_ALT_NAMES = 2
+};
+} // end namespace RISCV
+
+
+// Subregister indices
+
+namespace RISCV {
+enum {
+ NoSubRegister,
+ sub_32, // 1
+ NUM_TARGET_SUBREGS
+};
+} // end namespace RISCV
+
+} // end namespace llvm
+
+#endif // GET_REGINFO_ENUM
+
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* MC Register Information *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_REGINFO_MC_DESC
+#undef GET_REGINFO_MC_DESC
+
+namespace llvm {
+
+extern const MCPhysReg RISCVRegDiffLists[] = {
+ /* 0 */ 32, 0,
+ /* 2 */ 65503, 0,
+ /* 4 */ 65504, 0,
+ /* 6 */ 65535, 0,
+};
+
+extern const LaneBitmask RISCVLaneMaskLists[] = {
+ /* 0 */ LaneBitmask(0x00000000), LaneBitmask::getAll(),
+ /* 2 */ LaneBitmask(0x00000001), LaneBitmask::getAll(),
+};
+
+extern const uint16_t RISCVSubRegIdxLists[] = {
+ /* 0 */ 1, 0,
+};
+
+extern const MCRegisterInfo::SubRegCoveredBits RISCVSubRegIdxRanges[] = {
+ { 65535, 65535 },
+ { 0, 32 }, // sub_32
+};
+
+extern const char RISCVRegStrings[] = {
+ /* 0 */ 'X', '1', '0', 0,
+ /* 4 */ 'X', '2', '0', 0,
+ /* 8 */ 'X', '3', '0', 0,
+ /* 12 */ 'X', '0', 0,
+ /* 15 */ 'X', '1', '1', 0,
+ /* 19 */ 'X', '2', '1', 0,
+ /* 23 */ 'X', '3', '1', 0,
+ /* 27 */ 'X', '1', 0,
+ /* 30 */ 'X', '1', '2', 0,
+ /* 34 */ 'X', '2', '2', 0,
+ /* 38 */ 'X', '2', 0,
+ /* 41 */ 'X', '1', '3', 0,
+ /* 45 */ 'X', '2', '3', 0,
+ /* 49 */ 'X', '3', 0,
+ /* 52 */ 'X', '1', '4', 0,
+ /* 56 */ 'X', '2', '4', 0,
+ /* 60 */ 'X', '4', 0,
+ /* 63 */ 'X', '1', '5', 0,
+ /* 67 */ 'X', '2', '5', 0,
+ /* 71 */ 'X', '5', 0,
+ /* 74 */ 'X', '1', '6', 0,
+ /* 78 */ 'X', '2', '6', 0,
+ /* 82 */ 'X', '6', 0,
+ /* 85 */ 'X', '1', '7', 0,
+ /* 89 */ 'X', '2', '7', 0,
+ /* 93 */ 'X', '7', 0,
+ /* 96 */ 'X', '1', '8', 0,
+ /* 100 */ 'X', '2', '8', 0,
+ /* 104 */ 'X', '8', 0,
+ /* 107 */ 'X', '1', '9', 0,
+ /* 111 */ 'X', '2', '9', 0,
+ /* 115 */ 'X', '9', 0,
+ /* 118 */ 'F', '1', '0', '_', 'D', 0,
+ /* 124 */ 'F', '2', '0', '_', 'D', 0,
+ /* 130 */ 'F', '3', '0', '_', 'D', 0,
+ /* 136 */ 'F', '0', '_', 'D', 0,
+ /* 141 */ 'F', '1', '1', '_', 'D', 0,
+ /* 147 */ 'F', '2', '1', '_', 'D', 0,
+ /* 153 */ 'F', '3', '1', '_', 'D', 0,
+ /* 159 */ 'F', '1', '_', 'D', 0,
+ /* 164 */ 'F', '1', '2', '_', 'D', 0,
+ /* 170 */ 'F', '2', '2', '_', 'D', 0,
+ /* 176 */ 'F', '2', '_', 'D', 0,
+ /* 181 */ 'F', '1', '3', '_', 'D', 0,
+ /* 187 */ 'F', '2', '3', '_', 'D', 0,
+ /* 193 */ 'F', '3', '_', 'D', 0,
+ /* 198 */ 'F', '1', '4', '_', 'D', 0,
+ /* 204 */ 'F', '2', '4', '_', 'D', 0,
+ /* 210 */ 'F', '4', '_', 'D', 0,
+ /* 215 */ 'F', '1', '5', '_', 'D', 0,
+ /* 221 */ 'F', '2', '5', '_', 'D', 0,
+ /* 227 */ 'F', '5', '_', 'D', 0,
+ /* 232 */ 'F', '1', '6', '_', 'D', 0,
+ /* 238 */ 'F', '2', '6', '_', 'D', 0,
+ /* 244 */ 'F', '6', '_', 'D', 0,
+ /* 249 */ 'F', '1', '7', '_', 'D', 0,
+ /* 255 */ 'F', '2', '7', '_', 'D', 0,
+ /* 261 */ 'F', '7', '_', 'D', 0,
+ /* 266 */ 'F', '1', '8', '_', 'D', 0,
+ /* 272 */ 'F', '2', '8', '_', 'D', 0,
+ /* 278 */ 'F', '8', '_', 'D', 0,
+ /* 283 */ 'F', '1', '9', '_', 'D', 0,
+ /* 289 */ 'F', '2', '9', '_', 'D', 0,
+ /* 295 */ 'F', '9', '_', 'D', 0,
+ /* 300 */ 'F', '1', '0', '_', 'F', 0,
+ /* 306 */ 'F', '2', '0', '_', 'F', 0,
+ /* 312 */ 'F', '3', '0', '_', 'F', 0,
+ /* 318 */ 'F', '0', '_', 'F', 0,
+ /* 323 */ 'F', '1', '1', '_', 'F', 0,
+ /* 329 */ 'F', '2', '1', '_', 'F', 0,
+ /* 335 */ 'F', '3', '1', '_', 'F', 0,
+ /* 341 */ 'F', '1', '_', 'F', 0,
+ /* 346 */ 'F', '1', '2', '_', 'F', 0,
+ /* 352 */ 'F', '2', '2', '_', 'F', 0,
+ /* 358 */ 'F', '2', '_', 'F', 0,
+ /* 363 */ 'F', '1', '3', '_', 'F', 0,
+ /* 369 */ 'F', '2', '3', '_', 'F', 0,
+ /* 375 */ 'F', '3', '_', 'F', 0,
+ /* 380 */ 'F', '1', '4', '_', 'F', 0,
+ /* 386 */ 'F', '2', '4', '_', 'F', 0,
+ /* 392 */ 'F', '4', '_', 'F', 0,
+ /* 397 */ 'F', '1', '5', '_', 'F', 0,
+ /* 403 */ 'F', '2', '5', '_', 'F', 0,
+ /* 409 */ 'F', '5', '_', 'F', 0,
+ /* 414 */ 'F', '1', '6', '_', 'F', 0,
+ /* 420 */ 'F', '2', '6', '_', 'F', 0,
+ /* 426 */ 'F', '6', '_', 'F', 0,
+ /* 431 */ 'F', '1', '7', '_', 'F', 0,
+ /* 437 */ 'F', '2', '7', '_', 'F', 0,
+ /* 443 */ 'F', '7', '_', 'F', 0,
+ /* 448 */ 'F', '1', '8', '_', 'F', 0,
+ /* 454 */ 'F', '2', '8', '_', 'F', 0,
+ /* 460 */ 'F', '8', '_', 'F', 0,
+ /* 465 */ 'F', '1', '9', '_', 'F', 0,
+ /* 471 */ 'F', '2', '9', '_', 'F', 0,
+ /* 477 */ 'F', '9', '_', 'F', 0,
+};
+
+extern const MCRegisterDesc RISCVRegDesc[] = { // Descriptors
+ { 3, 0, 0, 0, 0, 0 },
+ { 12, 1, 1, 1, 97, 0 },
+ { 27, 1, 1, 1, 97, 0 },
+ { 38, 1, 1, 1, 97, 0 },
+ { 49, 1, 1, 1, 97, 0 },
+ { 60, 1, 1, 1, 97, 0 },
+ { 71, 1, 1, 1, 97, 0 },
+ { 82, 1, 1, 1, 97, 0 },
+ { 93, 1, 1, 1, 97, 0 },
+ { 104, 1, 1, 1, 97, 0 },
+ { 115, 1, 1, 1, 97, 0 },
+ { 0, 1, 1, 1, 97, 0 },
+ { 15, 1, 1, 1, 97, 0 },
+ { 30, 1, 1, 1, 97, 0 },
+ { 41, 1, 1, 1, 97, 0 },
+ { 52, 1, 1, 1, 97, 0 },
+ { 63, 1, 1, 1, 97, 0 },
+ { 74, 1, 1, 1, 97, 0 },
+ { 85, 1, 1, 1, 97, 0 },
+ { 96, 1, 1, 1, 97, 0 },
+ { 107, 1, 1, 1, 97, 0 },
+ { 4, 1, 1, 1, 97, 0 },
+ { 19, 1, 1, 1, 97, 0 },
+ { 34, 1, 1, 1, 97, 0 },
+ { 45, 1, 1, 1, 97, 0 },
+ { 56, 1, 1, 1, 97, 0 },
+ { 67, 1, 1, 1, 97, 0 },
+ { 78, 1, 1, 1, 97, 0 },
+ { 89, 1, 1, 1, 97, 0 },
+ { 100, 1, 1, 1, 97, 0 },
+ { 111, 1, 1, 1, 97, 0 },
+ { 8, 1, 1, 1, 97, 0 },
+ { 23, 1, 1, 1, 97, 0 },
+ { 136, 0, 1, 0, 97, 2 },
+ { 159, 0, 1, 0, 97, 2 },
+ { 176, 0, 1, 0, 97, 2 },
+ { 193, 0, 1, 0, 97, 2 },
+ { 210, 0, 1, 0, 97, 2 },
+ { 227, 0, 1, 0, 97, 2 },
+ { 244, 0, 1, 0, 97, 2 },
+ { 261, 0, 1, 0, 97, 2 },
+ { 278, 0, 1, 0, 97, 2 },
+ { 295, 0, 1, 0, 97, 2 },
+ { 118, 0, 1, 0, 97, 2 },
+ { 141, 0, 1, 0, 97, 2 },
+ { 164, 0, 1, 0, 97, 2 },
+ { 181, 0, 1, 0, 97, 2 },
+ { 198, 0, 1, 0, 97, 2 },
+ { 215, 0, 1, 0, 97, 2 },
+ { 232, 0, 1, 0, 97, 2 },
+ { 249, 0, 1, 0, 97, 2 },
+ { 266, 0, 1, 0, 97, 2 },
+ { 283, 0, 1, 0, 97, 2 },
+ { 124, 0, 1, 0, 97, 2 },
+ { 147, 0, 1, 0, 97, 2 },
+ { 170, 0, 1, 0, 97, 2 },
+ { 187, 0, 1, 0, 97, 2 },
+ { 204, 0, 1, 0, 97, 2 },
+ { 221, 0, 1, 0, 97, 2 },
+ { 238, 0, 1, 0, 97, 2 },
+ { 255, 0, 1, 0, 97, 2 },
+ { 272, 0, 1, 0, 97, 2 },
+ { 289, 0, 1, 0, 97, 2 },
+ { 130, 0, 1, 0, 97, 2 },
+ { 153, 0, 1, 0, 97, 2 },
+ { 318, 1, 4, 1, 33, 0 },
+ { 341, 1, 4, 1, 33, 0 },
+ { 358, 1, 4, 1, 33, 0 },
+ { 375, 1, 4, 1, 33, 0 },
+ { 392, 1, 4, 1, 33, 0 },
+ { 409, 1, 4, 1, 33, 0 },
+ { 426, 1, 4, 1, 33, 0 },
+ { 443, 1, 4, 1, 33, 0 },
+ { 460, 1, 4, 1, 33, 0 },
+ { 477, 1, 4, 1, 33, 0 },
+ { 300, 1, 4, 1, 33, 0 },
+ { 323, 1, 4, 1, 33, 0 },
+ { 346, 1, 4, 1, 33, 0 },
+ { 363, 1, 4, 1, 33, 0 },
+ { 380, 1, 4, 1, 33, 0 },
+ { 397, 1, 4, 1, 33, 0 },
+ { 414, 1, 4, 1, 33, 0 },
+ { 431, 1, 4, 1, 33, 0 },
+ { 448, 1, 4, 1, 33, 0 },
+ { 465, 1, 4, 1, 33, 0 },
+ { 306, 1, 4, 1, 33, 0 },
+ { 329, 1, 4, 1, 33, 0 },
+ { 352, 1, 4, 1, 33, 0 },
+ { 369, 1, 4, 1, 33, 0 },
+ { 386, 1, 4, 1, 33, 0 },
+ { 403, 1, 4, 1, 33, 0 },
+ { 420, 1, 4, 1, 33, 0 },
+ { 437, 1, 4, 1, 33, 0 },
+ { 454, 1, 4, 1, 33, 0 },
+ { 471, 1, 4, 1, 33, 0 },
+ { 312, 1, 4, 1, 33, 0 },
+ { 335, 1, 4, 1, 33, 0 },
+};
+
+extern const MCPhysReg RISCVRegUnitRoots[][2] = {
+ { RISCV::X0 },
+ { RISCV::X1 },
+ { RISCV::X2 },
+ { RISCV::X3 },
+ { RISCV::X4 },
+ { RISCV::X5 },
+ { RISCV::X6 },
+ { RISCV::X7 },
+ { RISCV::X8 },
+ { RISCV::X9 },
+ { RISCV::X10 },
+ { RISCV::X11 },
+ { RISCV::X12 },
+ { RISCV::X13 },
+ { RISCV::X14 },
+ { RISCV::X15 },
+ { RISCV::X16 },
+ { RISCV::X17 },
+ { RISCV::X18 },
+ { RISCV::X19 },
+ { RISCV::X20 },
+ { RISCV::X21 },
+ { RISCV::X22 },
+ { RISCV::X23 },
+ { RISCV::X24 },
+ { RISCV::X25 },
+ { RISCV::X26 },
+ { RISCV::X27 },
+ { RISCV::X28 },
+ { RISCV::X29 },
+ { RISCV::X30 },
+ { RISCV::X31 },
+ { RISCV::F0_F },
+ { RISCV::F1_F },
+ { RISCV::F2_F },
+ { RISCV::F3_F },
+ { RISCV::F4_F },
+ { RISCV::F5_F },
+ { RISCV::F6_F },
+ { RISCV::F7_F },
+ { RISCV::F8_F },
+ { RISCV::F9_F },
+ { RISCV::F10_F },
+ { RISCV::F11_F },
+ { RISCV::F12_F },
+ { RISCV::F13_F },
+ { RISCV::F14_F },
+ { RISCV::F15_F },
+ { RISCV::F16_F },
+ { RISCV::F17_F },
+ { RISCV::F18_F },
+ { RISCV::F19_F },
+ { RISCV::F20_F },
+ { RISCV::F21_F },
+ { RISCV::F22_F },
+ { RISCV::F23_F },
+ { RISCV::F24_F },
+ { RISCV::F25_F },
+ { RISCV::F26_F },
+ { RISCV::F27_F },
+ { RISCV::F28_F },
+ { RISCV::F29_F },
+ { RISCV::F30_F },
+ { RISCV::F31_F },
+};
+
+namespace { // Register classes...
+ // FPR32 Register Class...
+ const MCPhysReg FPR32[] = {
+ RISCV::F0_F, RISCV::F1_F, RISCV::F2_F, RISCV::F3_F, RISCV::F4_F, RISCV::F5_F, RISCV::F6_F, RISCV::F7_F, RISCV::F10_F, RISCV::F11_F, RISCV::F12_F, RISCV::F13_F, RISCV::F14_F, RISCV::F15_F, RISCV::F16_F, RISCV::F17_F, RISCV::F28_F, RISCV::F29_F, RISCV::F30_F, RISCV::F31_F, RISCV::F8_F, RISCV::F9_F, RISCV::F18_F, RISCV::F19_F, RISCV::F20_F, RISCV::F21_F, RISCV::F22_F, RISCV::F23_F, RISCV::F24_F, RISCV::F25_F, RISCV::F26_F, RISCV::F27_F,
+ };
+
+ // FPR32 Bit set.
+ const uint8_t FPR32Bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01,
+ };
+
+ // GPR Register Class...
+ const MCPhysReg GPR[] = {
+ RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X0, RISCV::X1, RISCV::X2, RISCV::X3, RISCV::X4,
+ };
+
+ // GPR Bit set.
+ const uint8_t GPRBits[] = {
+ 0xfe, 0xff, 0xff, 0xff, 0x01,
+ };
+
+ // GPRNoX0 Register Class...
+ const MCPhysReg GPRNoX0[] = {
+ RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X1, RISCV::X2, RISCV::X3, RISCV::X4,
+ };
+
+ // GPRNoX0 Bit set.
+ const uint8_t GPRNoX0Bits[] = {
+ 0xfc, 0xff, 0xff, 0xff, 0x01,
+ };
+
+ // GPRNoX0X2 Register Class...
+ const MCPhysReg GPRNoX0X2[] = {
+ RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X1, RISCV::X3, RISCV::X4,
+ };
+
+ // GPRNoX0X2 Bit set.
+ const uint8_t GPRNoX0X2Bits[] = {
+ 0xf4, 0xff, 0xff, 0xff, 0x01,
+ };
+
+ // GPRTC Register Class...
+ const MCPhysReg GPRTC[] = {
+ RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31,
+ };
+
+ // GPRTC Bit set.
+ const uint8_t GPRTCBits[] = {
+ 0xc0, 0xf9, 0x07, 0xe0, 0x01,
+ };
+
+ // FPR32C Register Class...
+ const MCPhysReg FPR32C[] = {
+ RISCV::F10_F, RISCV::F11_F, RISCV::F12_F, RISCV::F13_F, RISCV::F14_F, RISCV::F15_F, RISCV::F8_F, RISCV::F9_F,
+ };
+
+ // FPR32C Bit set.
+ const uint8_t FPR32CBits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01,
+ };
+
+ // GPRC Register Class...
+ const MCPhysReg GPRC[] = {
+ RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X8, RISCV::X9,
+ };
+
+ // GPRC Bit set.
+ const uint8_t GPRCBits[] = {
+ 0x00, 0xfe, 0x01,
+ };
+
+ // GPRC_and_GPRTC Register Class...
+ const MCPhysReg GPRC_and_GPRTC[] = {
+ RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15,
+ };
+
+ // GPRC_and_GPRTC Bit set.
+ const uint8_t GPRC_and_GPRTCBits[] = {
+ 0x00, 0xf8, 0x01,
+ };
+
+ // GPRX0 Register Class...
+ const MCPhysReg GPRX0[] = {
+ RISCV::X0,
+ };
+
+ // GPRX0 Bit set.
+ const uint8_t GPRX0Bits[] = {
+ 0x02,
+ };
+
+ // SP Register Class...
+ const MCPhysReg SP[] = {
+ RISCV::X2,
+ };
+
+ // SP Bit set.
+ const uint8_t SPBits[] = {
+ 0x08,
+ };
+
+ // FPR64 Register Class...
+ const MCPhysReg FPR64[] = {
+ RISCV::F0_D, RISCV::F1_D, RISCV::F2_D, RISCV::F3_D, RISCV::F4_D, RISCV::F5_D, RISCV::F6_D, RISCV::F7_D, RISCV::F10_D, RISCV::F11_D, RISCV::F12_D, RISCV::F13_D, RISCV::F14_D, RISCV::F15_D, RISCV::F16_D, RISCV::F17_D, RISCV::F28_D, RISCV::F29_D, RISCV::F30_D, RISCV::F31_D, RISCV::F8_D, RISCV::F9_D, RISCV::F18_D, RISCV::F19_D, RISCV::F20_D, RISCV::F21_D, RISCV::F22_D, RISCV::F23_D, RISCV::F24_D, RISCV::F25_D, RISCV::F26_D, RISCV::F27_D,
+ };
+
+ // FPR64 Bit set.
+ const uint8_t FPR64Bits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0x01,
+ };
+
+ // FPR64C Register Class...
+ const MCPhysReg FPR64C[] = {
+ RISCV::F10_D, RISCV::F11_D, RISCV::F12_D, RISCV::F13_D, RISCV::F14_D, RISCV::F15_D, RISCV::F8_D, RISCV::F9_D,
+ };
+
+ // FPR64C Bit set.
+ const uint8_t FPR64CBits[] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x01,
+ };
+
+} // end anonymous namespace
+
+extern const char RISCVRegClassStrings[] = {
+ /* 0 */ 'G', 'P', 'R', 'X', '0', 0,
+ /* 6 */ 'G', 'P', 'R', 'N', 'o', 'X', '0', 0,
+ /* 14 */ 'F', 'P', 'R', '3', '2', 0,
+ /* 20 */ 'G', 'P', 'R', 'N', 'o', 'X', '0', 'X', '2', 0,
+ /* 30 */ 'F', 'P', 'R', '6', '4', 0,
+ /* 36 */ 'F', 'P', 'R', '3', '2', 'C', 0,
+ /* 43 */ 'F', 'P', 'R', '6', '4', 'C', 0,
+ /* 50 */ 'G', 'P', 'R', 'C', 0,
+ /* 55 */ 'G', 'P', 'R', 'C', '_', 'a', 'n', 'd', '_', 'G', 'P', 'R', 'T', 'C', 0,
+ /* 70 */ 'S', 'P', 0,
+ /* 73 */ 'G', 'P', 'R', 0,
+};
+
+extern const MCRegisterClass RISCVMCRegisterClasses[] = {
+ { FPR32, FPR32Bits, 14, 32, sizeof(FPR32Bits), RISCV::FPR32RegClassID, 1, true },
+ { GPR, GPRBits, 73, 32, sizeof(GPRBits), RISCV::GPRRegClassID, 1, true },
+ { GPRNoX0, GPRNoX0Bits, 6, 31, sizeof(GPRNoX0Bits), RISCV::GPRNoX0RegClassID, 1, true },
+ { GPRNoX0X2, GPRNoX0X2Bits, 20, 30, sizeof(GPRNoX0X2Bits), RISCV::GPRNoX0X2RegClassID, 1, true },
+ { GPRTC, GPRTCBits, 64, 15, sizeof(GPRTCBits), RISCV::GPRTCRegClassID, 1, true },
+ { FPR32C, FPR32CBits, 36, 8, sizeof(FPR32CBits), RISCV::FPR32CRegClassID, 1, true },
+ { GPRC, GPRCBits, 50, 8, sizeof(GPRCBits), RISCV::GPRCRegClassID, 1, true },
+ { GPRC_and_GPRTC, GPRC_and_GPRTCBits, 55, 6, sizeof(GPRC_and_GPRTCBits), RISCV::GPRC_and_GPRTCRegClassID, 1, true },
+ { GPRX0, GPRX0Bits, 0, 1, sizeof(GPRX0Bits), RISCV::GPRX0RegClassID, 1, true },
+ { SP, SPBits, 70, 1, sizeof(SPBits), RISCV::SPRegClassID, 1, true },
+ { FPR64, FPR64Bits, 30, 32, sizeof(FPR64Bits), RISCV::FPR64RegClassID, 1, true },
+ { FPR64C, FPR64CBits, 43, 8, sizeof(FPR64CBits), RISCV::FPR64CRegClassID, 1, true },
+};
+
+// RISCV Dwarf<->LLVM register mappings.
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVDwarfFlavour0Dwarf2L[] = {
+ { 0U, RISCV::X0 },
+ { 1U, RISCV::X1 },
+ { 2U, RISCV::X2 },
+ { 3U, RISCV::X3 },
+ { 4U, RISCV::X4 },
+ { 5U, RISCV::X5 },
+ { 6U, RISCV::X6 },
+ { 7U, RISCV::X7 },
+ { 8U, RISCV::X8 },
+ { 9U, RISCV::X9 },
+ { 10U, RISCV::X10 },
+ { 11U, RISCV::X11 },
+ { 12U, RISCV::X12 },
+ { 13U, RISCV::X13 },
+ { 14U, RISCV::X14 },
+ { 15U, RISCV::X15 },
+ { 16U, RISCV::X16 },
+ { 17U, RISCV::X17 },
+ { 18U, RISCV::X18 },
+ { 19U, RISCV::X19 },
+ { 20U, RISCV::X20 },
+ { 21U, RISCV::X21 },
+ { 22U, RISCV::X22 },
+ { 23U, RISCV::X23 },
+ { 24U, RISCV::X24 },
+ { 25U, RISCV::X25 },
+ { 26U, RISCV::X26 },
+ { 27U, RISCV::X27 },
+ { 28U, RISCV::X28 },
+ { 29U, RISCV::X29 },
+ { 30U, RISCV::X30 },
+ { 31U, RISCV::X31 },
+ { 32U, RISCV::F0_F },
+ { 33U, RISCV::F1_F },
+ { 34U, RISCV::F2_F },
+ { 35U, RISCV::F3_F },
+ { 36U, RISCV::F4_F },
+ { 37U, RISCV::F5_F },
+ { 38U, RISCV::F6_F },
+ { 39U, RISCV::F7_F },
+ { 40U, RISCV::F8_F },
+ { 41U, RISCV::F9_F },
+ { 42U, RISCV::F10_F },
+ { 43U, RISCV::F11_F },
+ { 44U, RISCV::F12_F },
+ { 45U, RISCV::F13_F },
+ { 46U, RISCV::F14_F },
+ { 47U, RISCV::F15_F },
+ { 48U, RISCV::F16_F },
+ { 49U, RISCV::F17_F },
+ { 50U, RISCV::F18_F },
+ { 51U, RISCV::F19_F },
+ { 52U, RISCV::F20_F },
+ { 53U, RISCV::F21_F },
+ { 54U, RISCV::F22_F },
+ { 55U, RISCV::F23_F },
+ { 56U, RISCV::F24_F },
+ { 57U, RISCV::F25_F },
+ { 58U, RISCV::F26_F },
+ { 59U, RISCV::F27_F },
+ { 60U, RISCV::F28_F },
+ { 61U, RISCV::F29_F },
+ { 62U, RISCV::F30_F },
+ { 63U, RISCV::F31_F },
+};
+extern const unsigned RISCVDwarfFlavour0Dwarf2LSize = array_lengthof(RISCVDwarfFlavour0Dwarf2L);
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVEHFlavour0Dwarf2L[] = {
+ { 0U, RISCV::X0 },
+ { 1U, RISCV::X1 },
+ { 2U, RISCV::X2 },
+ { 3U, RISCV::X3 },
+ { 4U, RISCV::X4 },
+ { 5U, RISCV::X5 },
+ { 6U, RISCV::X6 },
+ { 7U, RISCV::X7 },
+ { 8U, RISCV::X8 },
+ { 9U, RISCV::X9 },
+ { 10U, RISCV::X10 },
+ { 11U, RISCV::X11 },
+ { 12U, RISCV::X12 },
+ { 13U, RISCV::X13 },
+ { 14U, RISCV::X14 },
+ { 15U, RISCV::X15 },
+ { 16U, RISCV::X16 },
+ { 17U, RISCV::X17 },
+ { 18U, RISCV::X18 },
+ { 19U, RISCV::X19 },
+ { 20U, RISCV::X20 },
+ { 21U, RISCV::X21 },
+ { 22U, RISCV::X22 },
+ { 23U, RISCV::X23 },
+ { 24U, RISCV::X24 },
+ { 25U, RISCV::X25 },
+ { 26U, RISCV::X26 },
+ { 27U, RISCV::X27 },
+ { 28U, RISCV::X28 },
+ { 29U, RISCV::X29 },
+ { 30U, RISCV::X30 },
+ { 31U, RISCV::X31 },
+ { 32U, RISCV::F0_F },
+ { 33U, RISCV::F1_F },
+ { 34U, RISCV::F2_F },
+ { 35U, RISCV::F3_F },
+ { 36U, RISCV::F4_F },
+ { 37U, RISCV::F5_F },
+ { 38U, RISCV::F6_F },
+ { 39U, RISCV::F7_F },
+ { 40U, RISCV::F8_F },
+ { 41U, RISCV::F9_F },
+ { 42U, RISCV::F10_F },
+ { 43U, RISCV::F11_F },
+ { 44U, RISCV::F12_F },
+ { 45U, RISCV::F13_F },
+ { 46U, RISCV::F14_F },
+ { 47U, RISCV::F15_F },
+ { 48U, RISCV::F16_F },
+ { 49U, RISCV::F17_F },
+ { 50U, RISCV::F18_F },
+ { 51U, RISCV::F19_F },
+ { 52U, RISCV::F20_F },
+ { 53U, RISCV::F21_F },
+ { 54U, RISCV::F22_F },
+ { 55U, RISCV::F23_F },
+ { 56U, RISCV::F24_F },
+ { 57U, RISCV::F25_F },
+ { 58U, RISCV::F26_F },
+ { 59U, RISCV::F27_F },
+ { 60U, RISCV::F28_F },
+ { 61U, RISCV::F29_F },
+ { 62U, RISCV::F30_F },
+ { 63U, RISCV::F31_F },
+};
+extern const unsigned RISCVEHFlavour0Dwarf2LSize = array_lengthof(RISCVEHFlavour0Dwarf2L);
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVDwarfFlavour0L2Dwarf[] = {
+ { RISCV::X0, 0U },
+ { RISCV::X1, 1U },
+ { RISCV::X2, 2U },
+ { RISCV::X3, 3U },
+ { RISCV::X4, 4U },
+ { RISCV::X5, 5U },
+ { RISCV::X6, 6U },
+ { RISCV::X7, 7U },
+ { RISCV::X8, 8U },
+ { RISCV::X9, 9U },
+ { RISCV::X10, 10U },
+ { RISCV::X11, 11U },
+ { RISCV::X12, 12U },
+ { RISCV::X13, 13U },
+ { RISCV::X14, 14U },
+ { RISCV::X15, 15U },
+ { RISCV::X16, 16U },
+ { RISCV::X17, 17U },
+ { RISCV::X18, 18U },
+ { RISCV::X19, 19U },
+ { RISCV::X20, 20U },
+ { RISCV::X21, 21U },
+ { RISCV::X22, 22U },
+ { RISCV::X23, 23U },
+ { RISCV::X24, 24U },
+ { RISCV::X25, 25U },
+ { RISCV::X26, 26U },
+ { RISCV::X27, 27U },
+ { RISCV::X28, 28U },
+ { RISCV::X29, 29U },
+ { RISCV::X30, 30U },
+ { RISCV::X31, 31U },
+ { RISCV::F0_D, 32U },
+ { RISCV::F1_D, 33U },
+ { RISCV::F2_D, 34U },
+ { RISCV::F3_D, 35U },
+ { RISCV::F4_D, 36U },
+ { RISCV::F5_D, 37U },
+ { RISCV::F6_D, 38U },
+ { RISCV::F7_D, 39U },
+ { RISCV::F8_D, 40U },
+ { RISCV::F9_D, 41U },
+ { RISCV::F10_D, 42U },
+ { RISCV::F11_D, 43U },
+ { RISCV::F12_D, 44U },
+ { RISCV::F13_D, 45U },
+ { RISCV::F14_D, 46U },
+ { RISCV::F15_D, 47U },
+ { RISCV::F16_D, 48U },
+ { RISCV::F17_D, 49U },
+ { RISCV::F18_D, 50U },
+ { RISCV::F19_D, 51U },
+ { RISCV::F20_D, 52U },
+ { RISCV::F21_D, 53U },
+ { RISCV::F22_D, 54U },
+ { RISCV::F23_D, 55U },
+ { RISCV::F24_D, 56U },
+ { RISCV::F25_D, 57U },
+ { RISCV::F26_D, 58U },
+ { RISCV::F27_D, 59U },
+ { RISCV::F28_D, 60U },
+ { RISCV::F29_D, 61U },
+ { RISCV::F30_D, 62U },
+ { RISCV::F31_D, 63U },
+ { RISCV::F0_F, 32U },
+ { RISCV::F1_F, 33U },
+ { RISCV::F2_F, 34U },
+ { RISCV::F3_F, 35U },
+ { RISCV::F4_F, 36U },
+ { RISCV::F5_F, 37U },
+ { RISCV::F6_F, 38U },
+ { RISCV::F7_F, 39U },
+ { RISCV::F8_F, 40U },
+ { RISCV::F9_F, 41U },
+ { RISCV::F10_F, 42U },
+ { RISCV::F11_F, 43U },
+ { RISCV::F12_F, 44U },
+ { RISCV::F13_F, 45U },
+ { RISCV::F14_F, 46U },
+ { RISCV::F15_F, 47U },
+ { RISCV::F16_F, 48U },
+ { RISCV::F17_F, 49U },
+ { RISCV::F18_F, 50U },
+ { RISCV::F19_F, 51U },
+ { RISCV::F20_F, 52U },
+ { RISCV::F21_F, 53U },
+ { RISCV::F22_F, 54U },
+ { RISCV::F23_F, 55U },
+ { RISCV::F24_F, 56U },
+ { RISCV::F25_F, 57U },
+ { RISCV::F26_F, 58U },
+ { RISCV::F27_F, 59U },
+ { RISCV::F28_F, 60U },
+ { RISCV::F29_F, 61U },
+ { RISCV::F30_F, 62U },
+ { RISCV::F31_F, 63U },
+};
+extern const unsigned RISCVDwarfFlavour0L2DwarfSize = array_lengthof(RISCVDwarfFlavour0L2Dwarf);
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVEHFlavour0L2Dwarf[] = {
+ { RISCV::X0, 0U },
+ { RISCV::X1, 1U },
+ { RISCV::X2, 2U },
+ { RISCV::X3, 3U },
+ { RISCV::X4, 4U },
+ { RISCV::X5, 5U },
+ { RISCV::X6, 6U },
+ { RISCV::X7, 7U },
+ { RISCV::X8, 8U },
+ { RISCV::X9, 9U },
+ { RISCV::X10, 10U },
+ { RISCV::X11, 11U },
+ { RISCV::X12, 12U },
+ { RISCV::X13, 13U },
+ { RISCV::X14, 14U },
+ { RISCV::X15, 15U },
+ { RISCV::X16, 16U },
+ { RISCV::X17, 17U },
+ { RISCV::X18, 18U },
+ { RISCV::X19, 19U },
+ { RISCV::X20, 20U },
+ { RISCV::X21, 21U },
+ { RISCV::X22, 22U },
+ { RISCV::X23, 23U },
+ { RISCV::X24, 24U },
+ { RISCV::X25, 25U },
+ { RISCV::X26, 26U },
+ { RISCV::X27, 27U },
+ { RISCV::X28, 28U },
+ { RISCV::X29, 29U },
+ { RISCV::X30, 30U },
+ { RISCV::X31, 31U },
+ { RISCV::F0_D, 32U },
+ { RISCV::F1_D, 33U },
+ { RISCV::F2_D, 34U },
+ { RISCV::F3_D, 35U },
+ { RISCV::F4_D, 36U },
+ { RISCV::F5_D, 37U },
+ { RISCV::F6_D, 38U },
+ { RISCV::F7_D, 39U },
+ { RISCV::F8_D, 40U },
+ { RISCV::F9_D, 41U },
+ { RISCV::F10_D, 42U },
+ { RISCV::F11_D, 43U },
+ { RISCV::F12_D, 44U },
+ { RISCV::F13_D, 45U },
+ { RISCV::F14_D, 46U },
+ { RISCV::F15_D, 47U },
+ { RISCV::F16_D, 48U },
+ { RISCV::F17_D, 49U },
+ { RISCV::F18_D, 50U },
+ { RISCV::F19_D, 51U },
+ { RISCV::F20_D, 52U },
+ { RISCV::F21_D, 53U },
+ { RISCV::F22_D, 54U },
+ { RISCV::F23_D, 55U },
+ { RISCV::F24_D, 56U },
+ { RISCV::F25_D, 57U },
+ { RISCV::F26_D, 58U },
+ { RISCV::F27_D, 59U },
+ { RISCV::F28_D, 60U },
+ { RISCV::F29_D, 61U },
+ { RISCV::F30_D, 62U },
+ { RISCV::F31_D, 63U },
+ { RISCV::F0_F, 32U },
+ { RISCV::F1_F, 33U },
+ { RISCV::F2_F, 34U },
+ { RISCV::F3_F, 35U },
+ { RISCV::F4_F, 36U },
+ { RISCV::F5_F, 37U },
+ { RISCV::F6_F, 38U },
+ { RISCV::F7_F, 39U },
+ { RISCV::F8_F, 40U },
+ { RISCV::F9_F, 41U },
+ { RISCV::F10_F, 42U },
+ { RISCV::F11_F, 43U },
+ { RISCV::F12_F, 44U },
+ { RISCV::F13_F, 45U },
+ { RISCV::F14_F, 46U },
+ { RISCV::F15_F, 47U },
+ { RISCV::F16_F, 48U },
+ { RISCV::F17_F, 49U },
+ { RISCV::F18_F, 50U },
+ { RISCV::F19_F, 51U },
+ { RISCV::F20_F, 52U },
+ { RISCV::F21_F, 53U },
+ { RISCV::F22_F, 54U },
+ { RISCV::F23_F, 55U },
+ { RISCV::F24_F, 56U },
+ { RISCV::F25_F, 57U },
+ { RISCV::F26_F, 58U },
+ { RISCV::F27_F, 59U },
+ { RISCV::F28_F, 60U },
+ { RISCV::F29_F, 61U },
+ { RISCV::F30_F, 62U },
+ { RISCV::F31_F, 63U },
+};
+extern const unsigned RISCVEHFlavour0L2DwarfSize = array_lengthof(RISCVEHFlavour0L2Dwarf);
+
+extern const uint16_t RISCVRegEncodingTable[] = {
+ 0,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 7,
+ 8,
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 15,
+ 16,
+ 17,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+};
+static inline void InitRISCVMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) {
+ RI->InitMCRegisterInfo(RISCVRegDesc, 97, RA, PC, RISCVMCRegisterClasses, 12, RISCVRegUnitRoots, 64, RISCVRegDiffLists, RISCVLaneMaskLists, RISCVRegStrings, RISCVRegClassStrings, RISCVSubRegIdxLists, 2,
+RISCVSubRegIdxRanges, RISCVRegEncodingTable);
+
+ switch (DwarfFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ RI->mapDwarfRegsToLLVMRegs(RISCVDwarfFlavour0Dwarf2L, RISCVDwarfFlavour0Dwarf2LSize, false);
+ break;
+ }
+ switch (EHFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ RI->mapDwarfRegsToLLVMRegs(RISCVEHFlavour0Dwarf2L, RISCVEHFlavour0Dwarf2LSize, true);
+ break;
+ }
+ switch (DwarfFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ RI->mapLLVMRegsToDwarfRegs(RISCVDwarfFlavour0L2Dwarf, RISCVDwarfFlavour0L2DwarfSize, false);
+ break;
+ }
+ switch (EHFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ RI->mapLLVMRegsToDwarfRegs(RISCVEHFlavour0L2Dwarf, RISCVEHFlavour0L2DwarfSize, true);
+ break;
+ }
+}
+
+} // end namespace llvm
+
+#endif // GET_REGINFO_MC_DESC
+
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Register Information Header Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_REGINFO_HEADER
+#undef GET_REGINFO_HEADER
+
+#include "llvm/CodeGen/TargetRegisterInfo.h"
+
+namespace llvm {
+
+class RISCVFrameLowering;
+
+struct RISCVGenRegisterInfo : public TargetRegisterInfo {
+ explicit RISCVGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0,
+ unsigned PC = 0, unsigned HwMode = 0);
+ unsigned composeSubRegIndicesImpl(unsigned, unsigned) const override;
+ LaneBitmask composeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
+ LaneBitmask reverseComposeSubRegIndexLaneMaskImpl(unsigned, LaneBitmask) const override;
+ const TargetRegisterClass *getSubClassWithSubReg(const TargetRegisterClass*, unsigned) const override;
+ const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override;
+ unsigned getRegUnitWeight(unsigned RegUnit) const override;
+ unsigned getNumRegPressureSets() const override;
+ const char *getRegPressureSetName(unsigned Idx) const override;
+ unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override;
+ const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override;
+ const int *getRegUnitPressureSets(unsigned RegUnit) const override;
+ ArrayRef<const char *> getRegMaskNames() const override;
+ ArrayRef<const uint32_t *> getRegMasks() const override;
+ /// Devirtualized TargetFrameLowering.
+ static const RISCVFrameLowering *getFrameLowering(
+ const MachineFunction &MF);
+};
+
+namespace RISCV { // Register classes
+ extern const TargetRegisterClass FPR32RegClass;
+ extern const TargetRegisterClass GPRRegClass;
+ extern const TargetRegisterClass GPRNoX0RegClass;
+ extern const TargetRegisterClass GPRNoX0X2RegClass;
+ extern const TargetRegisterClass GPRTCRegClass;
+ extern const TargetRegisterClass FPR32CRegClass;
+ extern const TargetRegisterClass GPRCRegClass;
+ extern const TargetRegisterClass GPRC_and_GPRTCRegClass;
+ extern const TargetRegisterClass GPRX0RegClass;
+ extern const TargetRegisterClass SPRegClass;
+ extern const TargetRegisterClass FPR64RegClass;
+ extern const TargetRegisterClass FPR64CRegClass;
+} // end namespace RISCV
+
+} // end namespace llvm
+
+#endif // GET_REGINFO_HEADER
+
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Target Register and Register Classes Information *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_REGINFO_TARGET_DESC
+#undef GET_REGINFO_TARGET_DESC
+
+namespace llvm {
+
+extern const MCRegisterClass RISCVMCRegisterClasses[];
+
+static const MVT::SimpleValueType VTLists[] = {
+ /* 0 */ MVT::i32, MVT::Other,
+ /* 2 */ MVT::i64, MVT::Other,
+ /* 4 */ MVT::f32, MVT::Other,
+ /* 6 */ MVT::f64, MVT::Other,
+};
+
+static const char *const SubRegIndexNameTable[] = { "sub_32", "" };
+
+
+static const LaneBitmask SubRegIndexLaneMaskTable[] = {
+ LaneBitmask::getAll(),
+ LaneBitmask(0x00000001), // sub_32
+ };
+
+
+
+static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = {
+ // Mode = 0 (Default)
+ { 32, 32, 32, VTLists+4 }, // FPR32
+ { 32, 32, 32, VTLists+0 }, // GPR
+ { 32, 32, 32, VTLists+0 }, // GPRNoX0
+ { 32, 32, 32, VTLists+0 }, // GPRNoX0X2
+ { 32, 32, 32, VTLists+0 }, // GPRTC
+ { 32, 32, 32, VTLists+4 }, // FPR32C
+ { 32, 32, 32, VTLists+0 }, // GPRC
+ { 32, 32, 32, VTLists+0 }, // GPRC_and_GPRTC
+ { 32, 32, 32, VTLists+0 }, // GPRX0
+ { 32, 32, 32, VTLists+0 }, // SP
+ { 64, 64, 64, VTLists+6 }, // FPR64
+ { 64, 64, 64, VTLists+6 }, // FPR64C
+ // Mode = 1 (RV32)
+ { 32, 32, 32, VTLists+4 }, // FPR32
+ { 32, 32, 32, VTLists+0 }, // GPR
+ { 32, 32, 32, VTLists+0 }, // GPRNoX0
+ { 32, 32, 32, VTLists+0 }, // GPRNoX0X2
+ { 32, 32, 32, VTLists+0 }, // GPRTC
+ { 32, 32, 32, VTLists+4 }, // FPR32C
+ { 32, 32, 32, VTLists+0 }, // GPRC
+ { 32, 32, 32, VTLists+0 }, // GPRC_and_GPRTC
+ { 32, 32, 32, VTLists+0 }, // GPRX0
+ { 32, 32, 32, VTLists+0 }, // SP
+ { 64, 64, 64, VTLists+6 }, // FPR64
+ { 64, 64, 64, VTLists+6 }, // FPR64C
+ // Mode = 2 (RV64)
+ { 32, 32, 32, VTLists+4 }, // FPR32
+ { 64, 64, 64, VTLists+2 }, // GPR
+ { 64, 64, 64, VTLists+2 }, // GPRNoX0
+ { 64, 64, 64, VTLists+2 }, // GPRNoX0X2
+ { 64, 64, 64, VTLists+2 }, // GPRTC
+ { 32, 32, 32, VTLists+4 }, // FPR32C
+ { 64, 64, 64, VTLists+2 }, // GPRC
+ { 64, 64, 64, VTLists+2 }, // GPRC_and_GPRTC
+ { 64, 64, 64, VTLists+2 }, // GPRX0
+ { 64, 64, 64, VTLists+2 }, // SP
+ { 64, 64, 64, VTLists+6 }, // FPR64
+ { 64, 64, 64, VTLists+6 }, // FPR64C
+};
+
+static const TargetRegisterClass *const NullRegClasses[] = { nullptr };
+
+static const uint32_t FPR32SubClassMask[] = {
+ 0x00000021,
+ 0x00000c00, // sub_32
+};
+
+static const uint32_t GPRSubClassMask[] = {
+ 0x000003de,
+};
+
+static const uint32_t GPRNoX0SubClassMask[] = {
+ 0x000002dc,
+};
+
+static const uint32_t GPRNoX0X2SubClassMask[] = {
+ 0x000000d8,
+};
+
+static const uint32_t GPRTCSubClassMask[] = {
+ 0x00000090,
+};
+
+static const uint32_t FPR32CSubClassMask[] = {
+ 0x00000020,
+ 0x00000800, // sub_32
+};
+
+static const uint32_t GPRCSubClassMask[] = {
+ 0x000000c0,
+};
+
+static const uint32_t GPRC_and_GPRTCSubClassMask[] = {
+ 0x00000080,
+};
+
+static const uint32_t GPRX0SubClassMask[] = {
+ 0x00000100,
+};
+
+static const uint32_t SPSubClassMask[] = {
+ 0x00000200,
+};
+
+static const uint32_t FPR64SubClassMask[] = {
+ 0x00000c00,
+};
+
+static const uint32_t FPR64CSubClassMask[] = {
+ 0x00000800,
+};
+
+static const uint16_t SuperRegIdxSeqs[] = {
+ /* 0 */ 1, 0,
+};
+
+static const TargetRegisterClass *const GPRNoX0Superclasses[] = {
+ &RISCV::GPRRegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const GPRNoX0X2Superclasses[] = {
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const GPRTCSuperclasses[] = {
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ &RISCV::GPRNoX0X2RegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const FPR32CSuperclasses[] = {
+ &RISCV::FPR32RegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const GPRCSuperclasses[] = {
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ &RISCV::GPRNoX0X2RegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const GPRC_and_GPRTCSuperclasses[] = {
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ &RISCV::GPRNoX0X2RegClass,
+ &RISCV::GPRTCRegClass,
+ &RISCV::GPRCRegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const GPRX0Superclasses[] = {
+ &RISCV::GPRRegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const SPSuperclasses[] = {
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ nullptr
+};
+
+static const TargetRegisterClass *const FPR64CSuperclasses[] = {
+ &RISCV::FPR64RegClass,
+ nullptr
+};
+
+
+namespace RISCV { // Register class instances
+ extern const TargetRegisterClass FPR32RegClass = {
+ &RISCVMCRegisterClasses[FPR32RegClassID],
+ FPR32SubClassMask,
+ SuperRegIdxSeqs + 0,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ NullRegClasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRRegClass = {
+ &RISCVMCRegisterClasses[GPRRegClassID],
+ GPRSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ NullRegClasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRNoX0RegClass = {
+ &RISCVMCRegisterClasses[GPRNoX0RegClassID],
+ GPRNoX0SubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRNoX0Superclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRNoX0X2RegClass = {
+ &RISCVMCRegisterClasses[GPRNoX0X2RegClassID],
+ GPRNoX0X2SubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRNoX0X2Superclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRTCRegClass = {
+ &RISCVMCRegisterClasses[GPRTCRegClassID],
+ GPRTCSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRTCSuperclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass FPR32CRegClass = {
+ &RISCVMCRegisterClasses[FPR32CRegClassID],
+ FPR32CSubClassMask,
+ SuperRegIdxSeqs + 0,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ FPR32CSuperclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRCRegClass = {
+ &RISCVMCRegisterClasses[GPRCRegClassID],
+ GPRCSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRCSuperclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRC_and_GPRTCRegClass = {
+ &RISCVMCRegisterClasses[GPRC_and_GPRTCRegClassID],
+ GPRC_and_GPRTCSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRC_and_GPRTCSuperclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass GPRX0RegClass = {
+ &RISCVMCRegisterClasses[GPRX0RegClassID],
+ GPRX0SubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ GPRX0Superclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass SPRegClass = {
+ &RISCVMCRegisterClasses[SPRegClassID],
+ SPSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ SPSuperclasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass FPR64RegClass = {
+ &RISCVMCRegisterClasses[FPR64RegClassID],
+ FPR64SubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ NullRegClasses,
+ nullptr
+ };
+
+ extern const TargetRegisterClass FPR64CRegClass = {
+ &RISCVMCRegisterClasses[FPR64CRegClassID],
+ FPR64CSubClassMask,
+ SuperRegIdxSeqs + 1,
+ LaneBitmask(0x00000001),
+ 0,
+ false, /* HasDisjunctSubRegs */
+ false, /* CoveredBySubRegs */
+ FPR64CSuperclasses,
+ nullptr
+ };
+
+} // end namespace RISCV
+
+namespace {
+ const TargetRegisterClass* const RegisterClasses[] = {
+ &RISCV::FPR32RegClass,
+ &RISCV::GPRRegClass,
+ &RISCV::GPRNoX0RegClass,
+ &RISCV::GPRNoX0X2RegClass,
+ &RISCV::GPRTCRegClass,
+ &RISCV::FPR32CRegClass,
+ &RISCV::GPRCRegClass,
+ &RISCV::GPRC_and_GPRTCRegClass,
+ &RISCV::GPRX0RegClass,
+ &RISCV::SPRegClass,
+ &RISCV::FPR64RegClass,
+ &RISCV::FPR64CRegClass,
+ };
+} // end anonymous namespace
+
+static const TargetRegisterInfoDesc RISCVRegInfoDesc[] = { // Extra Descriptors
+ { 0, false },
+ { 0, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 1, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+ { 0, true },
+};
+unsigned RISCVGenRegisterInfo::composeSubRegIndicesImpl(unsigned IdxA, unsigned IdxB) const {
+ static const uint8_t Rows[1][1] = {
+ { 0, },
+ };
+
+ --IdxA; assert(IdxA < 1);
+ --IdxB; assert(IdxB < 1);
+ return Rows[0][IdxB];
+}
+
+ struct MaskRolOp {
+ LaneBitmask Mask;
+ uint8_t RotateLeft;
+ };
+ static const MaskRolOp LaneMaskComposeSequences[] = {
+ { LaneBitmask(0xFFFFFFFF), 0 }, { LaneBitmask::getNone(), 0 } // Sequence 0
+ };
+ static const MaskRolOp *const CompositeSequences[] = {
+ &LaneMaskComposeSequences[0] // to sub_32
+ };
+
+LaneBitmask RISCVGenRegisterInfo::composeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
+ --IdxA; assert(IdxA < 1 && "Subregister index out of bounds");
+ LaneBitmask Result;
+ for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
+ LaneBitmask::Type M = LaneMask.getAsInteger() & Ops->Mask.getAsInteger();
+ if (unsigned S = Ops->RotateLeft)
+ Result |= LaneBitmask((M << S) | (M >> (LaneBitmask::BitWidth - S)));
+ else
+ Result |= LaneBitmask(M);
+ }
+ return Result;
+}
+
+LaneBitmask RISCVGenRegisterInfo::reverseComposeSubRegIndexLaneMaskImpl(unsigned IdxA, LaneBitmask LaneMask) const {
+ LaneMask &= getSubRegIndexLaneMask(IdxA);
+ --IdxA; assert(IdxA < 1 && "Subregister index out of bounds");
+ LaneBitmask Result;
+ for (const MaskRolOp *Ops = CompositeSequences[IdxA]; Ops->Mask.any(); ++Ops) {
+ LaneBitmask::Type M = LaneMask.getAsInteger();
+ if (unsigned S = Ops->RotateLeft)
+ Result |= LaneBitmask((M >> S) | (M << (LaneBitmask::BitWidth - S)));
+ else
+ Result |= LaneBitmask(M);
+ }
+ return Result;
+}
+
+const TargetRegisterClass *RISCVGenRegisterInfo::getSubClassWithSubReg(const TargetRegisterClass *RC, unsigned Idx) const {
+ static const uint8_t Table[12][1] = {
+ { // FPR32
+ 0, // sub_32
+ },
+ { // GPR
+ 0, // sub_32
+ },
+ { // GPRNoX0
+ 0, // sub_32
+ },
+ { // GPRNoX0X2
+ 0, // sub_32
+ },
+ { // GPRTC
+ 0, // sub_32
+ },
+ { // FPR32C
+ 0, // sub_32
+ },
+ { // GPRC
+ 0, // sub_32
+ },
+ { // GPRC_and_GPRTC
+ 0, // sub_32
+ },
+ { // GPRX0
+ 0, // sub_32
+ },
+ { // SP
+ 0, // sub_32
+ },
+ { // FPR64
+ 11, // sub_32 -> FPR64
+ },
+ { // FPR64C
+ 12, // sub_32 -> FPR64C
+ },
+ };
+ assert(RC && "Missing regclass");
+ if (!Idx) return RC;
+ --Idx;
+ assert(Idx < 1 && "Bad subreg");
+ unsigned TV = Table[RC->getID()][Idx];
+ return TV ? getRegClass(TV - 1) : nullptr;
+}
+
+/// Get the weight in units of pressure for this register class.
+const RegClassWeight &RISCVGenRegisterInfo::
+getRegClassWeight(const TargetRegisterClass *RC) const {
+ static const RegClassWeight RCWeightTable[] = {
+ {1, 32}, // FPR32
+ {1, 32}, // GPR
+ {1, 31}, // GPRNoX0
+ {1, 30}, // GPRNoX0X2
+ {1, 15}, // GPRTC
+ {1, 8}, // FPR32C
+ {1, 8}, // GPRC
+ {1, 6}, // GPRC_and_GPRTC
+ {1, 1}, // GPRX0
+ {1, 1}, // SP
+ {1, 32}, // FPR64
+ {1, 8}, // FPR64C
+ };
+ return RCWeightTable[RC->getID()];
+}
+
+/// Get the weight in units of pressure for this register unit.
+unsigned RISCVGenRegisterInfo::
+getRegUnitWeight(unsigned RegUnit) const {
+ assert(RegUnit < 64 && "invalid register unit");
+ // All register units have unit weight.
+ return 1;
+}
+
+
+// Get the number of dimensions of register pressure.
+unsigned RISCVGenRegisterInfo::getNumRegPressureSets() const {
+ return 7;
+}
+
+// Get the name of this register unit pressure set.
+const char *RISCVGenRegisterInfo::
+getRegPressureSetName(unsigned Idx) const {
+ static const char *const PressureNameTable[] = {
+ "GPRX0",
+ "SP",
+ "FPR32C",
+ "GPRC",
+ "GPRTC",
+ "FPR32",
+ "GPR",
+ };
+ return PressureNameTable[Idx];
+}
+
+// Get the register unit pressure limit for this dimension.
+// This limit must be adjusted dynamically for reserved registers.
+unsigned RISCVGenRegisterInfo::
+getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const {
+ static const uint8_t PressureLimitTable[] = {
+ 1, // 0: GPRX0
+ 1, // 1: SP
+ 8, // 2: FPR32C
+ 8, // 3: GPRC
+ 17, // 4: GPRTC
+ 32, // 5: FPR32
+ 32, // 6: GPR
+ };
+ return PressureLimitTable[Idx];
+}
+
+/// Table of pressure sets per register class or unit.
+static const int RCSetsTable[] = {
+ /* 0 */ 2, 5, -1,
+ /* 3 */ 0, 6, -1,
+ /* 6 */ 1, 6, -1,
+ /* 9 */ 3, 4, 6, -1,
+};
+
+/// Get the dimensions of register pressure impacted by this register class.
+/// Returns a -1 terminated array of pressure set IDs
+const int* RISCVGenRegisterInfo::
+getRegClassPressureSets(const TargetRegisterClass *RC) const {
+ static const uint8_t RCSetStartTable[] = {
+ 1,4,4,4,10,0,9,9,3,6,1,0,};
+ return &RCSetsTable[RCSetStartTable[RC->getID()]];
+}
+
+/// Get the dimensions of register pressure impacted by this register unit.
+/// Returns a -1 terminated array of pressure set IDs
+const int* RISCVGenRegisterInfo::
+getRegUnitPressureSets(unsigned RegUnit) const {
+ assert(RegUnit < 64 && "invalid register unit");
+ static const uint8_t RUSetStartTable[] = {
+ 3,4,6,4,4,10,10,10,9,9,9,9,9,9,9,9,10,10,4,4,4,4,4,4,4,4,4,4,10,10,10,10,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,};
+ return &RCSetsTable[RUSetStartTable[RegUnit]];
+}
+
+extern const MCRegisterDesc RISCVRegDesc[];
+extern const MCPhysReg RISCVRegDiffLists[];
+extern const LaneBitmask RISCVLaneMaskLists[];
+extern const char RISCVRegStrings[];
+extern const char RISCVRegClassStrings[];
+extern const MCPhysReg RISCVRegUnitRoots[][2];
+extern const uint16_t RISCVSubRegIdxLists[];
+extern const MCRegisterInfo::SubRegCoveredBits RISCVSubRegIdxRanges[];
+extern const uint16_t RISCVRegEncodingTable[];
+// RISCV Dwarf<->LLVM register mappings.
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVDwarfFlavour0Dwarf2L[];
+extern const unsigned RISCVDwarfFlavour0Dwarf2LSize;
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVEHFlavour0Dwarf2L[];
+extern const unsigned RISCVEHFlavour0Dwarf2LSize;
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVDwarfFlavour0L2Dwarf[];
+extern const unsigned RISCVDwarfFlavour0L2DwarfSize;
+
+extern const MCRegisterInfo::DwarfLLVMRegPair RISCVEHFlavour0L2Dwarf[];
+extern const unsigned RISCVEHFlavour0L2DwarfSize;
+
+RISCVGenRegisterInfo::
+RISCVGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour,
+ unsigned PC, unsigned HwMode)
+ : TargetRegisterInfo(RISCVRegInfoDesc, RegisterClasses, RegisterClasses+12,
+ SubRegIndexNameTable, SubRegIndexLaneMaskTable,
+ LaneBitmask(0xFFFFFFFE), RegClassInfos, HwMode) {
+ InitMCRegisterInfo(RISCVRegDesc, 97, RA, PC,
+ RISCVMCRegisterClasses, 12,
+ RISCVRegUnitRoots,
+ 64,
+ RISCVRegDiffLists,
+ RISCVLaneMaskLists,
+ RISCVRegStrings,
+ RISCVRegClassStrings,
+ RISCVSubRegIdxLists,
+ 2,
+ RISCVSubRegIdxRanges,
+ RISCVRegEncodingTable);
+
+ switch (DwarfFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ mapDwarfRegsToLLVMRegs(RISCVDwarfFlavour0Dwarf2L, RISCVDwarfFlavour0Dwarf2LSize, false);
+ break;
+ }
+ switch (EHFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ mapDwarfRegsToLLVMRegs(RISCVEHFlavour0Dwarf2L, RISCVEHFlavour0Dwarf2LSize, true);
+ break;
+ }
+ switch (DwarfFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ mapLLVMRegsToDwarfRegs(RISCVDwarfFlavour0L2Dwarf, RISCVDwarfFlavour0L2DwarfSize, false);
+ break;
+ }
+ switch (EHFlavour) {
+ default:
+ llvm_unreachable("Unknown DWARF flavour");
+ case 0:
+ mapLLVMRegsToDwarfRegs(RISCVEHFlavour0L2Dwarf, RISCVEHFlavour0L2DwarfSize, true);
+ break;
+ }
+}
+
+static const MCPhysReg CSR_ILP32D_LP64D_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::F8_D, RISCV::F9_D, RISCV::F18_D, RISCV::F19_D, RISCV::F20_D, RISCV::F21_D, RISCV::F22_D, RISCV::F23_D, RISCV::F24_D, RISCV::F25_D, RISCV::F26_D, RISCV::F27_D, 0 };
+static const uint32_t CSR_ILP32D_LP64D_RegMask[] = { 0x1ff80634, 0x1ff80600, 0x1ff80600, 0x00000000, };
+static const MCPhysReg CSR_ILP32F_LP64F_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::F8_F, RISCV::F9_F, RISCV::F18_F, RISCV::F19_F, RISCV::F20_F, RISCV::F21_F, RISCV::F22_F, RISCV::F23_F, RISCV::F24_F, RISCV::F25_F, RISCV::F26_F, RISCV::F27_F, 0 };
+static const uint32_t CSR_ILP32F_LP64F_RegMask[] = { 0x1ff80634, 0x00000000, 0x1ff80600, 0x00000000, };
+static const MCPhysReg CSR_ILP32_LP64_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X8, RISCV::X9, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, 0 };
+static const uint32_t CSR_ILP32_LP64_RegMask[] = { 0x1ff80634, 0x00000000, 0x00000000, 0x00000000, };
+static const MCPhysReg CSR_Interrupt_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X8, RISCV::X9, RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, 0 };
+static const uint32_t CSR_Interrupt_RegMask[] = { 0xfffffff4, 0x00000001, 0x00000000, 0x00000000, };
+static const MCPhysReg CSR_NoRegs_SaveList[] = { 0 };
+static const uint32_t CSR_NoRegs_RegMask[] = { 0x00000000, 0x00000000, 0x00000000, 0x00000000, };
+static const MCPhysReg CSR_XLEN_F32_Interrupt_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X8, RISCV::X9, RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, RISCV::F0_F, RISCV::F1_F, RISCV::F2_F, RISCV::F3_F, RISCV::F4_F, RISCV::F5_F, RISCV::F6_F, RISCV::F7_F, RISCV::F10_F, RISCV::F11_F, RISCV::F12_F, RISCV::F13_F, RISCV::F14_F, RISCV::F15_F, RISCV::F16_F, RISCV::F17_F, RISCV::F28_F, RISCV::F29_F, RISCV::F30_F, RISCV::F31_F, RISCV::F8_F, RISCV::F9_F, RISCV::F18_F, RISCV::F19_F, RISCV::F20_F, RISCV::F21_F, RISCV::F22_F, RISCV::F23_F, RISCV::F24_F, RISCV::F25_F, RISCV::F26_F, RISCV::F27_F, 0 };
+static const uint32_t CSR_XLEN_F32_Interrupt_RegMask[] = { 0xfffffff4, 0x00000001, 0xfffffffe, 0x00000001, };
+static const MCPhysReg CSR_XLEN_F64_Interrupt_SaveList[] = { RISCV::X1, RISCV::X3, RISCV::X4, RISCV::X5, RISCV::X6, RISCV::X7, RISCV::X8, RISCV::X9, RISCV::X10, RISCV::X11, RISCV::X12, RISCV::X13, RISCV::X14, RISCV::X15, RISCV::X16, RISCV::X17, RISCV::X18, RISCV::X19, RISCV::X20, RISCV::X21, RISCV::X22, RISCV::X23, RISCV::X24, RISCV::X25, RISCV::X26, RISCV::X27, RISCV::X28, RISCV::X29, RISCV::X30, RISCV::X31, RISCV::F0_D, RISCV::F1_D, RISCV::F2_D, RISCV::F3_D, RISCV::F4_D, RISCV::F5_D, RISCV::F6_D, RISCV::F7_D, RISCV::F10_D, RISCV::F11_D, RISCV::F12_D, RISCV::F13_D, RISCV::F14_D, RISCV::F15_D, RISCV::F16_D, RISCV::F17_D, RISCV::F28_D, RISCV::F29_D, RISCV::F30_D, RISCV::F31_D, RISCV::F8_D, RISCV::F9_D, RISCV::F18_D, RISCV::F19_D, RISCV::F20_D, RISCV::F21_D, RISCV::F22_D, RISCV::F23_D, RISCV::F24_D, RISCV::F25_D, RISCV::F26_D, RISCV::F27_D, 0 };
+static const uint32_t CSR_XLEN_F64_Interrupt_RegMask[] = { 0xfffffff4, 0xffffffff, 0xffffffff, 0x00000001, };
+
+
+ArrayRef<const uint32_t *> RISCVGenRegisterInfo::getRegMasks() const {
+ static const uint32_t *const Masks[] = {
+ CSR_ILP32D_LP64D_RegMask,
+ CSR_ILP32F_LP64F_RegMask,
+ CSR_ILP32_LP64_RegMask,
+ CSR_Interrupt_RegMask,
+ CSR_NoRegs_RegMask,
+ CSR_XLEN_F32_Interrupt_RegMask,
+ CSR_XLEN_F64_Interrupt_RegMask,
+ };
+ return makeArrayRef(Masks);
+}
+
+ArrayRef<const char *> RISCVGenRegisterInfo::getRegMaskNames() const {
+ static const char *const Names[] = {
+ "CSR_ILP32D_LP64D",
+ "CSR_ILP32F_LP64F",
+ "CSR_ILP32_LP64",
+ "CSR_Interrupt",
+ "CSR_NoRegs",
+ "CSR_XLEN_F32_Interrupt",
+ "CSR_XLEN_F64_Interrupt",
+ };
+ return makeArrayRef(Names);
+}
+
+const RISCVFrameLowering *
+RISCVGenRegisterInfo::getFrameLowering(const MachineFunction &MF) {
+ return static_cast<const RISCVFrameLowering *>(
+ MF.getSubtarget().getFrameLowering());
+}
+
+} // end namespace llvm
+
+#endif // GET_REGINFO_TARGET_DESC
+
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSubtargetInfo.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSubtargetInfo.inc
new file mode 100644
index 0000000..76ef363
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSubtargetInfo.inc
@@ -0,0 +1,567 @@
+/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
+|* *|
+|* Subtarget Enumeration Source Fragment *|
+|* *|
+|* Automatically generated file, do not edit! *|
+|* *|
+\*===----------------------------------------------------------------------===*/
+
+
+#ifdef GET_SUBTARGETINFO_ENUM
+#undef GET_SUBTARGETINFO_ENUM
+
+namespace llvm {
+namespace RISCV {
+enum {
+ Feature64Bit = 0,
+ FeatureRV32E = 1,
+ FeatureRVCHints = 2,
+ FeatureRelax = 3,
+ FeatureReserveX1 = 4,
+ FeatureReserveX2 = 5,
+ FeatureReserveX3 = 6,
+ FeatureReserveX4 = 7,
+ FeatureReserveX5 = 8,
+ FeatureReserveX6 = 9,
+ FeatureReserveX7 = 10,
+ FeatureReserveX8 = 11,
+ FeatureReserveX9 = 12,
+ FeatureReserveX10 = 13,
+ FeatureReserveX11 = 14,
+ FeatureReserveX12 = 15,
+ FeatureReserveX13 = 16,
+ FeatureReserveX14 = 17,
+ FeatureReserveX15 = 18,
+ FeatureReserveX16 = 19,
+ FeatureReserveX17 = 20,
+ FeatureReserveX18 = 21,
+ FeatureReserveX19 = 22,
+ FeatureReserveX20 = 23,
+ FeatureReserveX21 = 24,
+ FeatureReserveX22 = 25,
+ FeatureReserveX23 = 26,
+ FeatureReserveX24 = 27,
+ FeatureReserveX25 = 28,
+ FeatureReserveX26 = 29,
+ FeatureReserveX27 = 30,
+ FeatureReserveX28 = 31,
+ FeatureReserveX29 = 32,
+ FeatureReserveX30 = 33,
+ FeatureReserveX31 = 34,
+ FeatureStdExtA = 35,
+ FeatureStdExtC = 36,
+ FeatureStdExtD = 37,
+ FeatureStdExtF = 38,
+ FeatureStdExtM = 39,
+ NumSubtargetFeatures = 40
+};
+} // end namespace RISCV
+} // end namespace llvm
+
+#endif // GET_SUBTARGETINFO_ENUM
+
+
+#ifdef GET_SUBTARGETINFO_MC_DESC
+#undef GET_SUBTARGETINFO_MC_DESC
+
+namespace llvm {
+// Sorted (by key) array of values for CPU features.
+extern const llvm::SubtargetFeatureKV RISCVFeatureKV[] = {
+ { "64bit", "Implements RV64", RISCV::Feature64Bit, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "a", "'A' (Atomic Instructions)", RISCV::FeatureStdExtA, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "c", "'C' (Compressed Instructions)", RISCV::FeatureStdExtC, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "d", "'D' (Double-Precision Floating-Point)", RISCV::FeatureStdExtD, { { { 0x4000000000ULL, 0x0ULL, 0x0ULL, } } } },
+ { "e", "Implements RV32E (provides 16 rather than 32 GPRs)", RISCV::FeatureRV32E, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "f", "'F' (Single-Precision Floating-Point)", RISCV::FeatureStdExtF, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "m", "'M' (Integer Multiplication and Division)", RISCV::FeatureStdExtM, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "relax", "Enable Linker relaxation.", RISCV::FeatureRelax, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x1", "Reserve X1", RISCV::FeatureReserveX1, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x10", "Reserve X10", RISCV::FeatureReserveX10, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x11", "Reserve X11", RISCV::FeatureReserveX11, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x12", "Reserve X12", RISCV::FeatureReserveX12, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x13", "Reserve X13", RISCV::FeatureReserveX13, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x14", "Reserve X14", RISCV::FeatureReserveX14, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x15", "Reserve X15", RISCV::FeatureReserveX15, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x16", "Reserve X16", RISCV::FeatureReserveX16, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x17", "Reserve X17", RISCV::FeatureReserveX17, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x18", "Reserve X18", RISCV::FeatureReserveX18, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x19", "Reserve X19", RISCV::FeatureReserveX19, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x2", "Reserve X2", RISCV::FeatureReserveX2, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x20", "Reserve X20", RISCV::FeatureReserveX20, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x21", "Reserve X21", RISCV::FeatureReserveX21, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x22", "Reserve X22", RISCV::FeatureReserveX22, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x23", "Reserve X23", RISCV::FeatureReserveX23, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x24", "Reserve X24", RISCV::FeatureReserveX24, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x25", "Reserve X25", RISCV::FeatureReserveX25, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x26", "Reserve X26", RISCV::FeatureReserveX26, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x27", "Reserve X27", RISCV::FeatureReserveX27, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x28", "Reserve X28", RISCV::FeatureReserveX28, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x29", "Reserve X29", RISCV::FeatureReserveX29, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x3", "Reserve X3", RISCV::FeatureReserveX3, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x30", "Reserve X30", RISCV::FeatureReserveX30, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x31", "Reserve X31", RISCV::FeatureReserveX31, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x4", "Reserve X4", RISCV::FeatureReserveX4, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x5", "Reserve X5", RISCV::FeatureReserveX5, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x6", "Reserve X6", RISCV::FeatureReserveX6, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x7", "Reserve X7", RISCV::FeatureReserveX7, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x8", "Reserve X8", RISCV::FeatureReserveX8, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "reserve-x9", "Reserve X9", RISCV::FeatureReserveX9, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+ { "rvc-hints", "Enable RVC Hint Instructions.", RISCV::FeatureRVCHints, { { { 0x0ULL, 0x0ULL, 0x0ULL, } } } },
+};
+
+#ifdef DBGFIELD
+#error "<target>GenSubtargetInfo.inc requires a DBGFIELD macro"
+#endif
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+#define DBGFIELD(x) x,
+#else
+#define DBGFIELD(x)
+#endif
+
+// ===============================================================
+// Data tables for the new per-operand machine model.
+
+// {ProcResourceIdx, Cycles}
+extern const llvm::MCWriteProcResEntry RISCVWriteProcResTable[] = {
+ { 0, 0}, // Invalid
+ { 1, 1}, // #1
+ { 7, 1}, // #2
+ { 2, 1}, // #3
+ { 5, 34}, // #4
+ { 3, 1}, // #5
+ { 4, 20}, // #6
+ { 6, 1}, // #7
+ { 8, 1}, // #8
+ { 6, 33}, // #9
+ { 6, 34}, // #10
+ { 4, 1}, // #11
+ { 5, 20} // #12
+}; // RISCVWriteProcResTable
+
+// {Cycles, WriteResourceID}
+extern const llvm::MCWriteLatencyEntry RISCVWriteLatencyTable[] = {
+ { 0, 0}, // Invalid
+ { 1, 0}, // #1 WriteIALU_WriteJmp_WriteFST64_WriteFST32_WriteJal_WriteJalr_WriteJmpReg_WriteNop_WriteShift_WriteSTW_WriteSTB_WriteAtomicSTW_WriteSTH_WriteIALU32_WriteSTD_WriteAtomicSTD_WriteShift32
+ { 2, 0}, // #2 WriteAtomicW_WriteFLD64_WriteFLD32_WriteLDW_WriteFClass64_WriteFClass32_WriteFCvtF32ToF64_WriteFCvtI32ToF64_WriteFCvtF64ToF32_WriteFCvtI32ToF32_WriteFCvtF64ToI32_WriteFCvtF32ToI32_WriteFCmp64_WriteFCmp32_WriteFMovI32ToF32_WriteFMovF32ToI32_WriteAtomicLDW_WriteAtomicD_WriteLDD_WriteFCvtI64ToF64_WriteFCvtF64ToI64_WriteFCvtF32ToI64_WriteFCvtI64ToF32_WriteFMovI64ToF64_WriteFMovF64ToI64_WriteAtomicLDD_WriteLDWU
+ { 3, 0}, // #3 WriteCSR_WriteLDB_WriteLDH
+ {34, 0}, // #4 WriteIDiv_WriteIDiv32
+ { 6, 0}, // #5 WriteFALU64
+ { 4, 0}, // #6 WriteFALU32_WriteIMul_WriteIMul32
+ {20, 0}, // #7 WriteFDiv32_WriteFSqrt32
+ { 7, 0}, // #8 WriteFMulAdd64_WriteFMulSub64
+ { 5, 0}, // #9 WriteFMulAdd32_WriteFMulSub32_WriteFMul32
+ {33, 0} // #10 WriteIDiv
+}; // RISCVWriteLatencyTable
+
+// {UseIdx, WriteResourceID, Cycles}
+extern const llvm::MCReadAdvanceEntry RISCVReadAdvanceTable[] = {
+ {0, 0, 0}, // Invalid
+ {0, 0, 0}, // #1
+ {1, 0, 0}, // #2
+ {0, 0, 0}, // #3
+ {1, 0, 0}, // #4
+ {2, 0, 0} // #5
+}; // RISCVReadAdvanceTable
+
+// {Name, NumMicroOps, BeginGroup, EndGroup, WriteProcResIdx,#, WriteLatencyIdx,#, ReadAdvanceIdx,#}
+static const llvm::MCSchedClassDesc Rocket32ModelSchedClasses[] = {
+ {DBGFIELD("InvalidSchedClass") 16383, false, false, 0, 0, 0, 0, 0, 0},
+ {DBGFIELD("WriteIALU_ReadIALU_ReadIALU") 1, false, false, 1, 1, 1, 1, 1, 2}, // #1
+ {DBGFIELD("WriteIALU_ReadIALU") 1, false, false, 1, 1, 1, 1, 0, 1}, // #2
+ {DBGFIELD("WriteIALU32_ReadIALU32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #3
+ {DBGFIELD("WriteIALU32_ReadIALU32_ReadIALU32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #4
+ {DBGFIELD("WriteAtomicD_ReadAtomicDA_ReadAtomicDD") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #5
+ {DBGFIELD("WriteAtomicW_ReadAtomicWA_ReadAtomicWD") 1, false, false, 2, 1, 2, 1, 1, 2}, // #6
+ {DBGFIELD("WriteIALU") 1, false, false, 1, 1, 1, 1, 0, 0}, // #7
+ {DBGFIELD("WriteJmp") 1, false, false, 3, 1, 1, 1, 0, 0}, // #8
+ {DBGFIELD("WriteCSR_ReadCSR") 1, false, false, 1, 1, 3, 1, 0, 1}, // #9
+ {DBGFIELD("WriteCSR") 1, false, false, 1, 1, 3, 1, 0, 0}, // #10
+ {DBGFIELD("WriteFLD64_ReadMemBase") 1, false, false, 2, 1, 2, 1, 0, 1}, // #11
+ {DBGFIELD("WriteFLD32_ReadMemBase") 1, false, false, 2, 1, 2, 1, 0, 1}, // #12
+ {DBGFIELD("WriteFST64_ReadStoreData_ReadMemBase") 1, false, false, 2, 1, 1, 1, 1, 2}, // #13
+ {DBGFIELD("WriteFST32_ReadStoreData_ReadMemBase") 1, false, false, 2, 1, 1, 1, 1, 2}, // #14
+ {DBGFIELD("WriteJal") 1, false, false, 3, 1, 1, 1, 0, 0}, // #15
+ {DBGFIELD("WriteJalr_ReadJalr") 1, false, false, 3, 1, 1, 1, 0, 1}, // #16
+ {DBGFIELD("WriteJmpReg") 1, false, false, 3, 1, 1, 1, 0, 0}, // #17
+ {DBGFIELD("WriteLDD_ReadMemBase") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #18
+ {DBGFIELD("WriteLDW_ReadMemBase") 1, false, false, 2, 1, 2, 1, 0, 1}, // #19
+ {DBGFIELD("WriteNop") 1, false, false, 0, 0, 1, 1, 0, 0}, // #20
+ {DBGFIELD("WriteSTD_ReadStoreData_ReadMemBase") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #21
+ {DBGFIELD("WriteShift_ReadShift") 1, false, false, 1, 1, 1, 1, 0, 1}, // #22
+ {DBGFIELD("WriteSTW_ReadStoreData_ReadMemBase") 1, false, false, 2, 1, 1, 1, 1, 2}, // #23
+ {DBGFIELD("WriteIDiv_ReadIDiv_ReadIDiv") 1, false, false, 4, 1, 4, 1, 1, 2}, // #24
+ {DBGFIELD("WriteIDiv32_ReadIDiv32_ReadIDiv32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #25
+ {DBGFIELD("WriteFALU64_ReadFALU64_ReadFALU64") 1, false, false, 5, 1, 5, 1, 1, 2}, // #26
+ {DBGFIELD("WriteFALU32_ReadFALU32_ReadFALU32") 1, false, false, 5, 1, 6, 1, 1, 2}, // #27
+ {DBGFIELD("WriteFClass64_ReadFClass64") 1, false, false, 5, 1, 2, 1, 0, 1}, // #28
+ {DBGFIELD("WriteFClass32_ReadFClass32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #29
+ {DBGFIELD("WriteFCvtI64ToF64_ReadFCvtI64ToF64") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #30
+ {DBGFIELD("WriteFCvtF32ToF64_ReadFCvtF32ToF64") 1, false, false, 5, 1, 2, 1, 0, 1}, // #31
+ {DBGFIELD("WriteFCvtI32ToF64_ReadFCvtI32ToF64") 1, false, false, 5, 1, 2, 1, 0, 1}, // #32
+ {DBGFIELD("WriteFCvtF64ToI64_ReadFCvtF64ToI64") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #33
+ {DBGFIELD("WriteFCvtF32ToI64_ReadFCvtF32ToI64") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #34
+ {DBGFIELD("WriteFCvtF64ToF32_ReadFCvtF64ToF32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #35
+ {DBGFIELD("WriteFCvtI64ToF32_ReadFCvtI64ToF32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #36
+ {DBGFIELD("WriteFCvtI32ToF32_ReadFCvtI32ToF32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #37
+ {DBGFIELD("WriteFCvtF64ToI32_ReadFCvtF64ToI32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #38
+ {DBGFIELD("WriteFCvtF32ToI32_ReadFCvtF32ToI32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #39
+ {DBGFIELD("WriteFDiv32_ReadFDiv32_ReadFDiv32") 1, false, false, 6, 1, 7, 1, 1, 2}, // #40
+ {DBGFIELD("WriteFCmp64_ReadFCmp64_ReadFCmp64") 1, false, false, 5, 1, 2, 1, 1, 2}, // #41
+ {DBGFIELD("WriteFCmp32_ReadFCmp32_ReadFCmp32") 1, false, false, 5, 1, 2, 1, 1, 2}, // #42
+ {DBGFIELD("WriteFMulAdd64_ReadFMulAdd64_ReadFMulAdd64_ReadFMulAdd64") 1, false, false, 5, 1, 8, 1, 3, 3}, // #43
+ {DBGFIELD("WriteFMulAdd32_ReadFMulAdd32_ReadFMulAdd32_ReadFMulAdd32") 1, false, false, 5, 1, 9, 1, 3, 3}, // #44
+ {DBGFIELD("WriteFMulSub64_ReadFMulSub64_ReadFMulSub64_ReadFMulSub64") 1, false, false, 5, 1, 8, 1, 3, 3}, // #45
+ {DBGFIELD("WriteFMulSub32_ReadFMulSub32_ReadFMulSub32_ReadFMulSub32") 1, false, false, 5, 1, 9, 1, 3, 3}, // #46
+ {DBGFIELD("WriteFMul32_ReadFMul32_ReadFMul32") 1, false, false, 5, 1, 9, 1, 1, 2}, // #47
+ {DBGFIELD("WriteFMovI64ToF64_ReadFMovI64ToF64") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #48
+ {DBGFIELD("WriteFMovI32ToF32_ReadFMovI32ToF32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #49
+ {DBGFIELD("WriteFMovF64ToI64_ReadFMovF64ToI64") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #50
+ {DBGFIELD("WriteFMovF32ToI32_ReadFMovF32ToI32") 1, false, false, 5, 1, 2, 1, 0, 1}, // #51
+ {DBGFIELD("WriteFSqrt32_ReadFSqrt32") 1, false, false, 6, 1, 7, 1, 0, 1}, // #52
+ {DBGFIELD("WriteLDB_ReadMemBase") 1, false, false, 2, 1, 3, 1, 0, 1}, // #53
+ {DBGFIELD("WriteLDH_ReadMemBase") 1, false, false, 2, 1, 3, 1, 0, 1}, // #54
+ {DBGFIELD("WriteAtomicLDD_ReadAtomicLDD") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #55
+ {DBGFIELD("WriteAtomicLDW_ReadAtomicLDW") 1, false, false, 2, 1, 2, 1, 0, 1}, // #56
+ {DBGFIELD("WriteLDWU_ReadMemBase") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #57
+ {DBGFIELD("WriteIMul_ReadIMul_ReadIMul") 1, false, false, 7, 1, 6, 1, 1, 2}, // #58
+ {DBGFIELD("WriteIMul32_ReadIMul32_ReadIMul32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #59
+ {DBGFIELD("WriteSTB_ReadStoreData_ReadMemBase") 1, false, false, 2, 1, 1, 1, 1, 2}, // #60
+ {DBGFIELD("WriteAtomicSTD_ReadAtomicSTD_ReadAtomicSTD") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #61
+ {DBGFIELD("WriteAtomicSTW_ReadAtomicSTW_ReadAtomicSTW") 1, false, false, 2, 1, 1, 1, 1, 2}, // #62
+ {DBGFIELD("WriteSTH_ReadStoreData_ReadMemBase") 1, false, false, 2, 1, 1, 1, 1, 2}, // #63
+ {DBGFIELD("WriteShift32_ReadShift32") 16383, false, false, 0, 0, 0, 0, 0, 0}, // #64
+ {DBGFIELD("COPY") 1, false, false, 1, 1, 1, 1, 0, 0}, // #65
+}; // Rocket32ModelSchedClasses
+
+// {Name, NumMicroOps, BeginGroup, EndGroup, WriteProcResIdx,#, WriteLatencyIdx,#, ReadAdvanceIdx,#}
+static const llvm::MCSchedClassDesc Rocket64ModelSchedClasses[] = {
+ {DBGFIELD("InvalidSchedClass") 16383, false, false, 0, 0, 0, 0, 0, 0},
+ {DBGFIELD("WriteIALU_ReadIALU_ReadIALU") 1, false, false, 3, 1, 1, 1, 1, 2}, // #1
+ {DBGFIELD("WriteIALU_ReadIALU") 1, false, false, 3, 1, 1, 1, 0, 1}, // #2
+ {DBGFIELD("WriteIALU32_ReadIALU32") 1, false, false, 3, 1, 1, 1, 0, 1}, // #3
+ {DBGFIELD("WriteIALU32_ReadIALU32_ReadIALU32") 1, false, false, 3, 1, 1, 1, 1, 2}, // #4
+ {DBGFIELD("WriteAtomicD_ReadAtomicDA_ReadAtomicDD") 1, false, false, 8, 1, 2, 1, 1, 2}, // #5
+ {DBGFIELD("WriteAtomicW_ReadAtomicWA_ReadAtomicWD") 1, false, false, 8, 1, 2, 1, 1, 2}, // #6
+ {DBGFIELD("WriteIALU") 1, false, false, 3, 1, 1, 1, 0, 0}, // #7
+ {DBGFIELD("WriteJmp") 1, false, false, 5, 1, 1, 1, 0, 0}, // #8
+ {DBGFIELD("WriteCSR_ReadCSR") 1, false, false, 3, 1, 3, 1, 0, 1}, // #9
+ {DBGFIELD("WriteCSR") 1, false, false, 3, 1, 3, 1, 0, 0}, // #10
+ {DBGFIELD("WriteFLD64_ReadMemBase") 1, false, false, 8, 1, 2, 1, 0, 1}, // #11
+ {DBGFIELD("WriteFLD32_ReadMemBase") 1, false, false, 8, 1, 2, 1, 0, 1}, // #12
+ {DBGFIELD("WriteFST64_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #13
+ {DBGFIELD("WriteFST32_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #14
+ {DBGFIELD("WriteJal") 1, false, false, 5, 1, 1, 1, 0, 0}, // #15
+ {DBGFIELD("WriteJalr_ReadJalr") 1, false, false, 5, 1, 1, 1, 0, 1}, // #16
+ {DBGFIELD("WriteJmpReg") 1, false, false, 5, 1, 1, 1, 0, 0}, // #17
+ {DBGFIELD("WriteLDD_ReadMemBase") 1, false, false, 8, 1, 2, 1, 0, 1}, // #18
+ {DBGFIELD("WriteLDW_ReadMemBase") 1, false, false, 8, 1, 2, 1, 0, 1}, // #19
+ {DBGFIELD("WriteNop") 1, false, false, 0, 0, 1, 1, 0, 0}, // #20
+ {DBGFIELD("WriteSTD_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #21
+ {DBGFIELD("WriteShift_ReadShift") 1, false, false, 3, 1, 1, 1, 0, 1}, // #22
+ {DBGFIELD("WriteSTW_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #23
+ {DBGFIELD("WriteIDiv_ReadIDiv_ReadIDiv") 1, false, false, 9, 1, 10, 1, 1, 2}, // #24
+ {DBGFIELD("WriteIDiv32_ReadIDiv32_ReadIDiv32") 1, false, false, 10, 1, 4, 1, 1, 2}, // #25
+ {DBGFIELD("WriteFALU64_ReadFALU64_ReadFALU64") 1, false, false, 11, 1, 5, 1, 1, 2}, // #26
+ {DBGFIELD("WriteFALU32_ReadFALU32_ReadFALU32") 1, false, false, 11, 1, 6, 1, 1, 2}, // #27
+ {DBGFIELD("WriteFClass64_ReadFClass64") 1, false, false, 11, 1, 2, 1, 0, 1}, // #28
+ {DBGFIELD("WriteFClass32_ReadFClass32") 1, false, false, 11, 1, 2, 1, 0, 1}, // #29
+ {DBGFIELD("WriteFCvtI64ToF64_ReadFCvtI64ToF64") 1, false, false, 1, 1, 2, 1, 0, 1}, // #30
+ {DBGFIELD("WriteFCvtF32ToF64_ReadFCvtF32ToF64") 1, false, false, 1, 1, 2, 1, 0, 1}, // #31
+ {DBGFIELD("WriteFCvtI32ToF64_ReadFCvtI32ToF64") 1, false, false, 1, 1, 2, 1, 0, 1}, // #32
+ {DBGFIELD("WriteFCvtF64ToI64_ReadFCvtF64ToI64") 1, false, false, 1, 1, 2, 1, 0, 1}, // #33
+ {DBGFIELD("WriteFCvtF32ToI64_ReadFCvtF32ToI64") 1, false, false, 1, 1, 2, 1, 0, 1}, // #34
+ {DBGFIELD("WriteFCvtF64ToF32_ReadFCvtF64ToF32") 1, false, false, 1, 1, 2, 1, 0, 1}, // #35
+ {DBGFIELD("WriteFCvtI64ToF32_ReadFCvtI64ToF32") 1, false, false, 1, 1, 2, 1, 0, 1}, // #36
+ {DBGFIELD("WriteFCvtI32ToF32_ReadFCvtI32ToF32") 1, false, false, 1, 1, 2, 1, 0, 1}, // #37
+ {DBGFIELD("WriteFCvtF64ToI32_ReadFCvtF64ToI32") 1, false, false, 1, 1, 2, 1, 0, 1}, // #38
+ {DBGFIELD("WriteFCvtF32ToI32_ReadFCvtF32ToI32") 1, false, false, 1, 1, 2, 1, 0, 1}, // #39
+ {DBGFIELD("WriteFDiv32_ReadFDiv32_ReadFDiv32") 1, false, false, 12, 1, 7, 1, 1, 2}, // #40
+ {DBGFIELD("WriteFCmp64_ReadFCmp64_ReadFCmp64") 1, false, false, 11, 1, 2, 1, 1, 2}, // #41
+ {DBGFIELD("WriteFCmp32_ReadFCmp32_ReadFCmp32") 1, false, false, 11, 1, 2, 1, 1, 2}, // #42
+ {DBGFIELD("WriteFMulAdd64_ReadFMulAdd64_ReadFMulAdd64_ReadFMulAdd64") 1, false, false, 11, 1, 8, 1, 3, 3}, // #43
+ {DBGFIELD("WriteFMulAdd32_ReadFMulAdd32_ReadFMulAdd32_ReadFMulAdd32") 1, false, false, 11, 1, 9, 1, 3, 3}, // #44
+ {DBGFIELD("WriteFMulSub64_ReadFMulSub64_ReadFMulSub64_ReadFMulSub64") 1, false, false, 11, 1, 8, 1, 3, 3}, // #45
+ {DBGFIELD("WriteFMulSub32_ReadFMulSub32_ReadFMulSub32_ReadFMulSub32") 1, false, false, 11, 1, 9, 1, 3, 3}, // #46
+ {DBGFIELD("WriteFMul32_ReadFMul32_ReadFMul32") 1, false, false, 11, 1, 9, 1, 1, 2}, // #47
+ {DBGFIELD("WriteFMovI64ToF64_ReadFMovI64ToF64") 1, false, false, 11, 1, 2, 1, 0, 1}, // #48
+ {DBGFIELD("WriteFMovI32ToF32_ReadFMovI32ToF32") 1, false, false, 11, 1, 2, 1, 0, 1}, // #49
+ {DBGFIELD("WriteFMovF64ToI64_ReadFMovF64ToI64") 1, false, false, 11, 1, 2, 1, 0, 1}, // #50
+ {DBGFIELD("WriteFMovF32ToI32_ReadFMovF32ToI32") 1, false, false, 11, 1, 2, 1, 0, 1}, // #51
+ {DBGFIELD("WriteFSqrt32_ReadFSqrt32") 1, false, false, 12, 1, 7, 1, 0, 1}, // #52
+ {DBGFIELD("WriteLDB_ReadMemBase") 1, false, false, 8, 1, 3, 1, 0, 1}, // #53
+ {DBGFIELD("WriteLDH_ReadMemBase") 1, false, false, 8, 1, 3, 1, 0, 1}, // #54
+ {DBGFIELD("WriteAtomicLDD_ReadAtomicLDD") 1, false, false, 8, 1, 2, 1, 0, 1}, // #55
+ {DBGFIELD("WriteAtomicLDW_ReadAtomicLDW") 1, false, false, 8, 1, 2, 1, 0, 1}, // #56
+ {DBGFIELD("WriteLDWU_ReadMemBase") 1, false, false, 8, 1, 2, 1, 0, 1}, // #57
+ {DBGFIELD("WriteIMul_ReadIMul_ReadIMul") 1, false, false, 2, 1, 6, 1, 1, 2}, // #58
+ {DBGFIELD("WriteIMul32_ReadIMul32_ReadIMul32") 1, false, false, 2, 1, 6, 1, 1, 2}, // #59
+ {DBGFIELD("WriteSTB_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #60
+ {DBGFIELD("WriteAtomicSTD_ReadAtomicSTD_ReadAtomicSTD") 1, false, false, 8, 1, 1, 1, 1, 2}, // #61
+ {DBGFIELD("WriteAtomicSTW_ReadAtomicSTW_ReadAtomicSTW") 1, false, false, 8, 1, 1, 1, 1, 2}, // #62
+ {DBGFIELD("WriteSTH_ReadStoreData_ReadMemBase") 1, false, false, 8, 1, 1, 1, 1, 2}, // #63
+ {DBGFIELD("WriteShift32_ReadShift32") 1, false, false, 3, 1, 1, 1, 0, 1}, // #64
+ {DBGFIELD("COPY") 1, false, false, 3, 1, 1, 1, 0, 0}, // #65
+}; // Rocket64ModelSchedClasses
+
+#undef DBGFIELD
+
+static const llvm::MCSchedModel NoSchedModel = {
+ MCSchedModel::DefaultIssueWidth,
+ MCSchedModel::DefaultMicroOpBufferSize,
+ MCSchedModel::DefaultLoopMicroOpBufferSize,
+ MCSchedModel::DefaultLoadLatency,
+ MCSchedModel::DefaultHighLatency,
+ MCSchedModel::DefaultMispredictPenalty,
+ false, // PostRAScheduler
+ false, // CompleteModel
+ 0, // Processor ID
+ nullptr, nullptr, 0, 0, // No instruction-level machine model.
+ nullptr, // No Itinerary
+ nullptr // No extra processor descriptor
+};
+
+static const unsigned Rocket32ModelProcResourceSubUnits[] = {
+ 0, // Invalid
+};
+
+// {Name, NumUnits, SuperIdx, BufferSize, SubUnitsIdxBegin}
+static const llvm::MCProcResourceDesc Rocket32ModelProcResources[] = {
+ {"InvalidUnit", 0, 0, 0, 0},
+ {"Rocket32UnitALU", 1, 0, 0, nullptr}, // #1
+ {"Rocket32UnitB", 1, 0, 0, nullptr}, // #2
+ {"Rocket32UnitFPALU", 1, 0, 0, nullptr}, // #3
+ {"Rocket32UnitFPDivSqrt", 1, 0, 1, nullptr}, // #4
+ {"Rocket32UnitIDiv", 1, 0, 1, nullptr}, // #5
+ {"Rocket32UnitIMul", 1, 0, 0, nullptr}, // #6
+ {"Rocket32UnitMem", 1, 0, 0, nullptr}, // #7
+};
+
+static const llvm::MCSchedModel Rocket32Model = {
+ 1, // IssueWidth
+ 0, // MicroOpBufferSize
+ MCSchedModel::DefaultLoopMicroOpBufferSize,
+ 3, // LoadLatency
+ MCSchedModel::DefaultHighLatency,
+ 3, // MispredictPenalty
+ false, // PostRAScheduler
+ true, // CompleteModel
+ 1, // Processor ID
+ Rocket32ModelProcResources,
+ Rocket32ModelSchedClasses,
+ 8,
+ 66,
+ nullptr, // No Itinerary
+ nullptr // No extra processor descriptor
+};
+
+static const unsigned Rocket64ModelProcResourceSubUnits[] = {
+ 0, // Invalid
+};
+
+// {Name, NumUnits, SuperIdx, BufferSize, SubUnitsIdxBegin}
+static const llvm::MCProcResourceDesc Rocket64ModelProcResources[] = {
+ {"InvalidUnit", 0, 0, 0, 0},
+ {"Rocket32UnitFPALU", 1, 0, 0, nullptr}, // #1
+ {"Rocket64UnitALU", 1, 0, 0, nullptr}, // #2
+ {"Rocket64UnitB", 1, 0, 0, nullptr}, // #3
+ {"Rocket64UnitFPALU", 1, 0, 0, nullptr}, // #4
+ {"Rocket64UnitFPDivSqrt", 1, 0, 1, nullptr}, // #5
+ {"Rocket64UnitIDiv", 1, 0, 1, nullptr}, // #6
+ {"Rocket64UnitIMul", 1, 0, 0, nullptr}, // #7
+ {"Rocket64UnitMem", 1, 0, 0, nullptr}, // #8
+};
+
+static const llvm::MCSchedModel Rocket64Model = {
+ 1, // IssueWidth
+ 0, // MicroOpBufferSize
+ MCSchedModel::DefaultLoopMicroOpBufferSize,
+ 3, // LoadLatency
+ MCSchedModel::DefaultHighLatency,
+ 3, // MispredictPenalty
+ false, // PostRAScheduler
+ true, // CompleteModel
+ 2, // Processor ID
+ Rocket64ModelProcResources,
+ Rocket64ModelSchedClasses,
+ 9,
+ 66,
+ nullptr, // No Itinerary
+ nullptr // No extra processor descriptor
+};
+
+// Sorted (by key) array of values for CPU subtype.
+extern const llvm::SubtargetSubTypeKV RISCVSubTypeKV[] = {
+ { "generic-rv32", { { { 0x4ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
+ { "generic-rv64", { { { 0x5ULL, 0x0ULL, 0x0ULL, } } }, &NoSchedModel },
+ { "rocket-rv32", { { { 0x4ULL, 0x0ULL, 0x0ULL, } } }, &Rocket32Model },
+ { "rocket-rv64", { { { 0x5ULL, 0x0ULL, 0x0ULL, } } }, &Rocket64Model },
+};
+
+namespace RISCV_MC {
+unsigned resolveVariantSchedClassImpl(unsigned SchedClass,
+ const MCInst *MI, unsigned CPUID) {
+ // Don't know how to resolve this scheduling class.
+ return 0;
+}
+} // end namespace RISCV_MC
+
+struct RISCVGenMCSubtargetInfo : public MCSubtargetInfo {
+ RISCVGenMCSubtargetInfo(const Triple &TT,
+ StringRef CPU, StringRef FS, ArrayRef<SubtargetFeatureKV> PF,
+ ArrayRef<SubtargetSubTypeKV> PD,
+ const MCWriteProcResEntry *WPR,
+ const MCWriteLatencyEntry *WL,
+ const MCReadAdvanceEntry *RA, const InstrStage *IS,
+ const unsigned *OC, const unsigned *FP) :
+ MCSubtargetInfo(TT, CPU, FS, PF, PD,
+ WPR, WL, RA, IS, OC, FP) { }
+
+ unsigned resolveVariantSchedClass(unsigned SchedClass,
+ const MCInst *MI, unsigned CPUID) const override {
+ return RISCV_MC::resolveVariantSchedClassImpl(SchedClass, MI, CPUID);
+ }
+ unsigned getHwMode() const override;
+};
+unsigned RISCVGenMCSubtargetInfo::getHwMode() const {
+ if (checkFeatures("-64bit")) return 1;
+ if (checkFeatures("+64bit")) return 2;
+ return 0;
+}
+
+static inline MCSubtargetInfo *createRISCVMCSubtargetInfoImpl(const Triple &TT, StringRef CPU, StringRef FS) {
+ return new RISCVGenMCSubtargetInfo(TT, CPU, FS, RISCVFeatureKV, RISCVSubTypeKV,
+ RISCVWriteProcResTable, RISCVWriteLatencyTable, RISCVReadAdvanceTable,
+ nullptr, nullptr, nullptr);
+}
+
+} // end namespace llvm
+
+#endif // GET_SUBTARGETINFO_MC_DESC
+
+
+#ifdef GET_SUBTARGETINFO_TARGET_DESC
+#undef GET_SUBTARGETINFO_TARGET_DESC
+
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/raw_ostream.h"
+
+// ParseSubtargetFeatures - Parses features string setting specified
+// subtarget options.
+void llvm::RISCVSubtarget::ParseSubtargetFeatures(StringRef CPU, StringRef FS) {
+ LLVM_DEBUG(dbgs() << "\nFeatures:" << FS);
+ LLVM_DEBUG(dbgs() << "\nCPU:" << CPU << "\n\n");
+ InitMCProcessorInfo(CPU, FS);
+ const FeatureBitset& Bits = getFeatureBits();
+ if (Bits[RISCV::Feature64Bit]) HasRV64 = true;
+ if (Bits[RISCV::FeatureRV32E]) IsRV32E = true;
+ if (Bits[RISCV::FeatureRVCHints]) EnableRVCHintInstrs = true;
+ if (Bits[RISCV::FeatureRelax]) EnableLinkerRelax = true;
+ if (Bits[RISCV::FeatureReserveX1]) UserReservedRegister[RISCV::X1] = true;
+ if (Bits[RISCV::FeatureReserveX2]) UserReservedRegister[RISCV::X2] = true;
+ if (Bits[RISCV::FeatureReserveX3]) UserReservedRegister[RISCV::X3] = true;
+ if (Bits[RISCV::FeatureReserveX4]) UserReservedRegister[RISCV::X4] = true;
+ if (Bits[RISCV::FeatureReserveX5]) UserReservedRegister[RISCV::X5] = true;
+ if (Bits[RISCV::FeatureReserveX6]) UserReservedRegister[RISCV::X6] = true;
+ if (Bits[RISCV::FeatureReserveX7]) UserReservedRegister[RISCV::X7] = true;
+ if (Bits[RISCV::FeatureReserveX8]) UserReservedRegister[RISCV::X8] = true;
+ if (Bits[RISCV::FeatureReserveX9]) UserReservedRegister[RISCV::X9] = true;
+ if (Bits[RISCV::FeatureReserveX10]) UserReservedRegister[RISCV::X10] = true;
+ if (Bits[RISCV::FeatureReserveX11]) UserReservedRegister[RISCV::X11] = true;
+ if (Bits[RISCV::FeatureReserveX12]) UserReservedRegister[RISCV::X12] = true;
+ if (Bits[RISCV::FeatureReserveX13]) UserReservedRegister[RISCV::X13] = true;
+ if (Bits[RISCV::FeatureReserveX14]) UserReservedRegister[RISCV::X14] = true;
+ if (Bits[RISCV::FeatureReserveX15]) UserReservedRegister[RISCV::X15] = true;
+ if (Bits[RISCV::FeatureReserveX16]) UserReservedRegister[RISCV::X16] = true;
+ if (Bits[RISCV::FeatureReserveX17]) UserReservedRegister[RISCV::X17] = true;
+ if (Bits[RISCV::FeatureReserveX18]) UserReservedRegister[RISCV::X18] = true;
+ if (Bits[RISCV::FeatureReserveX19]) UserReservedRegister[RISCV::X19] = true;
+ if (Bits[RISCV::FeatureReserveX20]) UserReservedRegister[RISCV::X20] = true;
+ if (Bits[RISCV::FeatureReserveX21]) UserReservedRegister[RISCV::X21] = true;
+ if (Bits[RISCV::FeatureReserveX22]) UserReservedRegister[RISCV::X22] = true;
+ if (Bits[RISCV::FeatureReserveX23]) UserReservedRegister[RISCV::X23] = true;
+ if (Bits[RISCV::FeatureReserveX24]) UserReservedRegister[RISCV::X24] = true;
+ if (Bits[RISCV::FeatureReserveX25]) UserReservedRegister[RISCV::X25] = true;
+ if (Bits[RISCV::FeatureReserveX26]) UserReservedRegister[RISCV::X26] = true;
+ if (Bits[RISCV::FeatureReserveX27]) UserReservedRegister[RISCV::X27] = true;
+ if (Bits[RISCV::FeatureReserveX28]) UserReservedRegister[RISCV::X28] = true;
+ if (Bits[RISCV::FeatureReserveX29]) UserReservedRegister[RISCV::X29] = true;
+ if (Bits[RISCV::FeatureReserveX30]) UserReservedRegister[RISCV::X30] = true;
+ if (Bits[RISCV::FeatureReserveX31]) UserReservedRegister[RISCV::X31] = true;
+ if (Bits[RISCV::FeatureStdExtA]) HasStdExtA = true;
+ if (Bits[RISCV::FeatureStdExtC]) HasStdExtC = true;
+ if (Bits[RISCV::FeatureStdExtD]) HasStdExtD = true;
+ if (Bits[RISCV::FeatureStdExtF]) HasStdExtF = true;
+ if (Bits[RISCV::FeatureStdExtM]) HasStdExtM = true;
+}
+#endif // GET_SUBTARGETINFO_TARGET_DESC
+
+
+#ifdef GET_SUBTARGETINFO_HEADER
+#undef GET_SUBTARGETINFO_HEADER
+
+namespace llvm {
+class DFAPacketizer;
+namespace RISCV_MC {
+unsigned resolveVariantSchedClassImpl(unsigned SchedClass, const MCInst *MI, unsigned CPUID);
+} // end namespace RISCV_MC
+
+struct RISCVGenSubtargetInfo : public TargetSubtargetInfo {
+ explicit RISCVGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS);
+public:
+ unsigned resolveSchedClass(unsigned SchedClass, const MachineInstr *DefMI, const TargetSchedModel *SchedModel) const override;
+ unsigned resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, unsigned CPUID) const override;
+ DFAPacketizer *createDFAPacketizer(const InstrItineraryData *IID) const;
+ unsigned getHwMode() const override;
+};
+} // end namespace llvm
+
+#endif // GET_SUBTARGETINFO_HEADER
+
+
+#ifdef GET_SUBTARGETINFO_CTOR
+#undef GET_SUBTARGETINFO_CTOR
+
+#include "llvm/CodeGen/TargetSchedule.h"
+
+namespace llvm {
+extern const llvm::SubtargetFeatureKV RISCVFeatureKV[];
+extern const llvm::SubtargetSubTypeKV RISCVSubTypeKV[];
+extern const llvm::MCWriteProcResEntry RISCVWriteProcResTable[];
+extern const llvm::MCWriteLatencyEntry RISCVWriteLatencyTable[];
+extern const llvm::MCReadAdvanceEntry RISCVReadAdvanceTable[];
+RISCVGenSubtargetInfo::RISCVGenSubtargetInfo(const Triple &TT, StringRef CPU, StringRef FS)
+ : TargetSubtargetInfo(TT, CPU, FS, makeArrayRef(RISCVFeatureKV, 40), makeArrayRef(RISCVSubTypeKV, 4),
+ RISCVWriteProcResTable, RISCVWriteLatencyTable, RISCVReadAdvanceTable,
+ nullptr, nullptr, nullptr) {}
+
+unsigned RISCVGenSubtargetInfo
+::resolveSchedClass(unsigned SchedClass, const MachineInstr *MI, const TargetSchedModel *SchedModel) const {
+ report_fatal_error("Expected a variant SchedClass");
+} // RISCVGenSubtargetInfo::resolveSchedClass
+
+unsigned RISCVGenSubtargetInfo
+::resolveVariantSchedClass(unsigned SchedClass, const MCInst *MI, unsigned CPUID) const {
+ return RISCV_MC::resolveVariantSchedClassImpl(SchedClass, MI, CPUID);
+} // RISCVGenSubtargetInfo::resolveVariantSchedClass
+
+unsigned RISCVGenSubtargetInfo::getHwMode() const {
+ if (checkFeatures("-64bit")) return 1;
+ if (checkFeatures("+64bit")) return 2;
+ return 0;
+}
+} // end namespace llvm
+
+#endif // GET_SUBTARGETINFO_CTOR
+
+
+#ifdef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
+#undef GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
+
+#endif // GET_STIPREDICATE_DECLS_FOR_MC_ANALYSIS
+
+
+#ifdef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
+#undef GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
+
+#endif // GET_STIPREDICATE_DEFS_FOR_MC_ANALYSIS
+
diff --git a/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSystemOperands.inc b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSystemOperands.inc
new file mode 100644
index 0000000..eec53d1
--- /dev/null
+++ b/third_party/llvm-10.0/configs/common/lib/Target/RISCV/RISCVGenSystemOperands.inc
@@ -0,0 +1,502 @@
+#ifdef GET_SysRegsList_DECL
+const SysReg *lookupSysRegByEncoding(uint16_t Encoding);
+const SysReg *lookupSysRegByName(StringRef Name);
+#endif
+
+#ifdef GET_SysRegsList_IMPL
+constexpr SysReg SysRegsList[] = {
+ { "ustatus", 0x0, {} , false }, // 0
+ { "fflags", 0x1, {} , false }, // 1
+ { "frm", 0x2, {} , false }, // 2
+ { "fcsr", 0x3, {} , false }, // 3
+ { "uie", 0x4, {} , false }, // 4
+ { "utvec", 0x5, {} , false }, // 5
+ { "uscratch", 0x40, {} , false }, // 6
+ { "uepc", 0x41, {} , false }, // 7
+ { "ucause", 0x42, {} , false }, // 8
+ { "utval", 0x43, {} , false }, // 9
+ { "uip", 0x44, {} , false }, // 10
+ { "sstatus", 0x100, {} , false }, // 11
+ { "sedeleg", 0x102, {} , false }, // 12
+ { "sideleg", 0x103, {} , false }, // 13
+ { "sie", 0x104, {} , false }, // 14
+ { "stvec", 0x105, {} , false }, // 15
+ { "scounteren", 0x106, {} , false }, // 16
+ { "sscratch", 0x140, {} , false }, // 17
+ { "sepc", 0x141, {} , false }, // 18
+ { "scause", 0x142, {} , false }, // 19
+ { "stval", 0x143, {} , false }, // 20
+ { "sip", 0x144, {} , false }, // 21
+ { "satp", 0x180, {} , false }, // 22
+ { "mstatus", 0x300, {} , false }, // 23
+ { "misa", 0x301, {} , false }, // 24
+ { "medeleg", 0x302, {} , false }, // 25
+ { "mideleg", 0x303, {} , false }, // 26
+ { "mie", 0x304, {} , false }, // 27
+ { "mtvec", 0x305, {} , false }, // 28
+ { "mcounteren", 0x306, {} , false }, // 29
+ { "mhpmevent3", 0x323, {} , false }, // 30
+ { "mhpmevent4", 0x324, {} , false }, // 31
+ { "mhpmevent5", 0x325, {} , false }, // 32
+ { "mhpmevent6", 0x326, {} , false }, // 33
+ { "mhpmevent7", 0x327, {} , false }, // 34
+ { "mhpmevent8", 0x328, {} , false }, // 35
+ { "mhpmevent9", 0x329, {} , false }, // 36
+ { "mhpmevent10", 0x32A, {} , false }, // 37
+ { "mhpmevent11", 0x32B, {} , false }, // 38
+ { "mhpmevent12", 0x32C, {} , false }, // 39
+ { "mhpmevent13", 0x32D, {} , false }, // 40
+ { "mhpmevent14", 0x32E, {} , false }, // 41
+ { "mhpmevent15", 0x32F, {} , false }, // 42
+ { "mhpmevent16", 0x330, {} , false }, // 43
+ { "mhpmevent17", 0x331, {} , false }, // 44
+ { "mhpmevent18", 0x332, {} , false }, // 45
+ { "mhpmevent19", 0x333, {} , false }, // 46
+ { "mhpmevent20", 0x334, {} , false }, // 47
+ { "mhpmevent21", 0x335, {} , false }, // 48
+ { "mhpmevent22", 0x336, {} , false }, // 49
+ { "mhpmevent23", 0x337, {} , false }, // 50
+ { "mhpmevent24", 0x338, {} , false }, // 51
+ { "mhpmevent25", 0x339, {} , false }, // 52
+ { "mhpmevent26", 0x33A, {} , false }, // 53
+ { "mhpmevent27", 0x33B, {} , false }, // 54
+ { "mhpmevent28", 0x33C, {} , false }, // 55
+ { "mhpmevent29", 0x33D, {} , false }, // 56
+ { "mhpmevent30", 0x33E, {} , false }, // 57
+ { "mhpmevent31", 0x33F, {} , false }, // 58
+ { "mscratch", 0x340, {} , false }, // 59
+ { "mepc", 0x341, {} , false }, // 60
+ { "mcause", 0x342, {} , false }, // 61
+ { "mtval", 0x343, {} , false }, // 62
+ { "mip", 0x344, {} , false }, // 63
+ { "pmpcfg0", 0x3A0, {} , false }, // 64
+ { "pmpcfg1", 0x3A1, {} , true }, // 65
+ { "pmpcfg2", 0x3A2, {} , false }, // 66
+ { "pmpcfg3", 0x3A3, {} , true }, // 67
+ { "pmpaddr0", 0x3B0, {} , false }, // 68
+ { "pmpaddr1", 0x3B1, {} , false }, // 69
+ { "pmpaddr2", 0x3B2, {} , false }, // 70
+ { "pmpaddr3", 0x3B3, {} , false }, // 71
+ { "pmpaddr4", 0x3B4, {} , false }, // 72
+ { "pmpaddr5", 0x3B5, {} , false }, // 73
+ { "pmpaddr6", 0x3B6, {} , false }, // 74
+ { "pmpaddr7", 0x3B7, {} , false }, // 75
+ { "pmpaddr8", 0x3B8, {} , false }, // 76
+ { "pmpaddr9", 0x3B9, {} , false }, // 77
+ { "pmpaddr10", 0x3BA, {} , false }, // 78
+ { "pmpaddr11", 0x3BB, {} , false }, // 79
+ { "pmpaddr12", 0x3BC, {} , false }, // 80
+ { "pmpaddr13", 0x3BD, {} , false }, // 81
+ { "pmpaddr14", 0x3BE, {} , false }, // 82
+ { "pmpaddr15", 0x3BF, {} , false }, // 83
+ { "tselect", 0x7A0, {} , false }, // 84
+ { "tdata1", 0x7A1, {} , false }, // 85
+ { "tdata2", 0x7A2, {} , false }, // 86
+ { "tdata3", 0x7A3, {} , false }, // 87
+ { "dcsr", 0x7B0, {} , false }, // 88
+ { "dpc", 0x7B1, {} , false }, // 89
+ { "dscratch", 0x7B2, {} , false }, // 90
+ { "mcycle", 0xB00, {} , false }, // 91
+ { "minstret", 0xB02, {} , false }, // 92
+ { "mhpmcounter3", 0xB03, {} , false }, // 93
+ { "mhpmcounter4", 0xB04, {} , false }, // 94
+ { "mhpmcounter5", 0xB05, {} , false }, // 95
+ { "mhpmcounter6", 0xB06, {} , false }, // 96
+ { "mhpmcounter7", 0xB07, {} , false }, // 97
+ { "mhpmcounter8", 0xB08, {} , false }, // 98
+ { "mhpmcounter9", 0xB09, {} , false }, // 99
+ { "mhpmcounter10", 0xB0A, {} , false }, // 100
+ { "mhpmcounter11", 0xB0B, {} , false }, // 101
+ { "mhpmcounter12", 0xB0C, {} , false }, // 102
+ { "mhpmcounter13", 0xB0D, {} , false }, // 103
+ { "mhpmcounter14", 0xB0E, {} , false }, // 104
+ { "mhpmcounter15", 0xB0F, {} , false }, // 105
+ { "mhpmcounter16", 0xB10, {} , false }, // 106
+ { "mhpmcounter17", 0xB11, {} , false }, // 107
+ { "mhpmcounter18", 0xB12, {} , false }, // 108
+ { "mhpmcounter19", 0xB13, {} , false }, // 109
+ { "mhpmcounter20", 0xB14, {} , false }, // 110
+ { "mhpmcounter21", 0xB15, {} , false }, // 111
+ { "mhpmcounter22", 0xB16, {} , false }, // 112
+ { "mhpmcounter23", 0xB17, {} , false }, // 113
+ { "mhpmcounter24", 0xB18, {} , false }, // 114
+ { "mhpmcounter25", 0xB19, {} , false }, // 115
+ { "mhpmcounter26", 0xB1A, {} , false }, // 116
+ { "mhpmcounter27", 0xB1B, {} , false }, // 117
+ { "mhpmcounter28", 0xB1C, {} , false }, // 118
+ { "mhpmcounter29", 0xB1D, {} , false }, // 119
+ { "mhpmcounter30", 0xB1E, {} , false }, // 120
+ { "mhpmcounter31", 0xB1F, {} , false }, // 121
+ { "mcycleh", 0xB80, {} , true }, // 122
+ { "minstreth", 0xB82, {} , true }, // 123
+ { "mhpmcounter3h", 0xB83, {} , true }, // 124
+ { "mhpmcounter4h", 0xB84, {} , true }, // 125
+ { "mhpmcounter5h", 0xB85, {} , true }, // 126
+ { "mhpmcounter6h", 0xB86, {} , true }, // 127
+ { "mhpmcounter7h", 0xB87, {} , true }, // 128
+ { "mhpmcounter8h", 0xB88, {} , true }, // 129
+ { "mhpmcounter9h", 0xB89, {} , true }, // 130
+ { "mhpmcounter10h", 0xB8A, {} , true }, // 131
+ { "mhpmcounter11h", 0xB8B, {} , true }, // 132
+ { "mhpmcounter12h", 0xB8C, {} , true }, // 133
+ { "mhpmcounter13h", 0xB8D, {} , true }, // 134
+ { "mhpmcounter14h", 0xB8E, {} , true }, // 135
+ { "mhpmcounter15h", 0xB8F, {} , true }, // 136
+ { "mhpmcounter16h", 0xB90, {} , true }, // 137
+ { "mhpmcounter17h", 0xB91, {} , true }, // 138
+ { "mhpmcounter18h", 0xB92, {} , true }, // 139
+ { "mhpmcounter19h", 0xB93, {} , true }, // 140
+ { "mhpmcounter20h", 0xB94, {} , true }, // 141
+ { "mhpmcounter21h", 0xB95, {} , true }, // 142
+ { "mhpmcounter22h", 0xB96, {} , true }, // 143
+ { "mhpmcounter23h", 0xB97, {} , true }, // 144
+ { "mhpmcounter24h", 0xB98, {} , true }, // 145
+ { "mhpmcounter25h", 0xB99, {} , true }, // 146
+ { "mhpmcounter26h", 0xB9A, {} , true }, // 147
+ { "mhpmcounter27h", 0xB9B, {} , true }, // 148
+ { "mhpmcounter28h", 0xB9C, {} , true }, // 149
+ { "mhpmcounter29h", 0xB9D, {} , true }, // 150
+ { "mhpmcounter30h", 0xB9E, {} , true }, // 151
+ { "mhpmcounter31h", 0xB9F, {} , true }, // 152
+ { "cycle", 0xC00, {} , false }, // 153
+ { "time", 0xC01, {} , false }, // 154
+ { "instret", 0xC02, {} , false }, // 155
+ { "hpmcounter3", 0xC03, {} , false }, // 156
+ { "hpmcounter4", 0xC04, {} , false }, // 157
+ { "hpmcounter5", 0xC05, {} , false }, // 158
+ { "hpmcounter6", 0xC06, {} , false }, // 159
+ { "hpmcounter7", 0xC07, {} , false }, // 160
+ { "hpmcounter8", 0xC08, {} , false }, // 161
+ { "hpmcounter9", 0xC09, {} , false }, // 162
+ { "hpmcounter10", 0xC0A, {} , false }, // 163
+ { "hpmcounter11", 0xC0B, {} , false }, // 164
+ { "hpmcounter12", 0xC0C, {} , false }, // 165
+ { "hpmcounter13", 0xC0D, {} , false }, // 166
+ { "hpmcounter14", 0xC0E, {} , false }, // 167
+ { "hpmcounter15", 0xC0F, {} , false }, // 168
+ { "hpmcounter16", 0xC10, {} , false }, // 169
+ { "hpmcounter17", 0xC11, {} , false }, // 170
+ { "hpmcounter18", 0xC12, {} , false }, // 171
+ { "hpmcounter19", 0xC13, {} , false }, // 172
+ { "hpmcounter20", 0xC14, {} , false }, // 173
+ { "hpmcounter21", 0xC15, {} , false }, // 174
+ { "hpmcounter22", 0xC16, {} , false }, // 175
+ { "hpmcounter23", 0xC17, {} , false }, // 176
+ { "hpmcounter24", 0xC18, {} , false }, // 177
+ { "hpmcounter25", 0xC19, {} , false }, // 178
+ { "hpmcounter26", 0xC1A, {} , false }, // 179
+ { "hpmcounter27", 0xC1B, {} , false }, // 180
+ { "hpmcounter28", 0xC1C, {} , false }, // 181
+ { "hpmcounter29", 0xC1D, {} , false }, // 182
+ { "hpmcounter30", 0xC1E, {} , false }, // 183
+ { "hpmcounter31", 0xC1F, {} , false }, // 184
+ { "cycleh", 0xC80, {} , true }, // 185
+ { "timeh", 0xC81, {} , true }, // 186
+ { "instreth", 0xC82, {} , true }, // 187
+ { "hpmcounter3h", 0xC83, {} , true }, // 188
+ { "hpmcounter4h", 0xC84, {} , true }, // 189
+ { "hpmcounter5h", 0xC85, {} , true }, // 190
+ { "hpmcounter6h", 0xC86, {} , true }, // 191
+ { "hpmcounter7h", 0xC87, {} , true }, // 192
+ { "hpmcounter8h", 0xC88, {} , true }, // 193
+ { "hpmcounter9h", 0xC89, {} , true }, // 194
+ { "hpmcounter10h", 0xC8A, {} , true }, // 195
+ { "hpmcounter11h", 0xC8B, {} , true }, // 196
+ { "hpmcounter12h", 0xC8C, {} , true }, // 197
+ { "hpmcounter13h", 0xC8D, {} , true }, // 198
+ { "hpmcounter14h", 0xC8E, {} , true }, // 199
+ { "hpmcounter15h", 0xC8F, {} , true }, // 200
+ { "hpmcounter16h", 0xC90, {} , true }, // 201
+ { "hpmcounter17h", 0xC91, {} , true }, // 202
+ { "hpmcounter18h", 0xC92, {} , true }, // 203
+ { "hpmcounter19h", 0xC93, {} , true }, // 204
+ { "hpmcounter20h", 0xC94, {} , true }, // 205
+ { "hpmcounter21h", 0xC95, {} , true }, // 206
+ { "hpmcounter22h", 0xC96, {} , true }, // 207
+ { "hpmcounter23h", 0xC97, {} , true }, // 208
+ { "hpmcounter24h", 0xC98, {} , true }, // 209
+ { "hpmcounter25h", 0xC99, {} , true }, // 210
+ { "hpmcounter26h", 0xC9A, {} , true }, // 211
+ { "hpmcounter27h", 0xC9B, {} , true }, // 212
+ { "hpmcounter28h", 0xC9C, {} , true }, // 213
+ { "hpmcounter29h", 0xC9D, {} , true }, // 214
+ { "hpmcounter30h", 0xC9E, {} , true }, // 215
+ { "hpmcounter31h", 0xC9F, {} , true }, // 216
+ { "mvendorid", 0xF11, {} , false }, // 217
+ { "marchid", 0xF12, {} , false }, // 218
+ { "mimpid", 0xF13, {} , false }, // 219
+ { "mhartid", 0xF14, {} , false }, // 220
+ };
+
+const SysReg *lookupSysRegByEncoding(uint16_t Encoding) {
+ struct KeyType {
+ uint16_t Encoding;
+ };
+ KeyType Key = { Encoding };
+ auto Table = makeArrayRef(SysRegsList);
+ auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
+ [](const SysReg &LHS, const KeyType &RHS) {
+ if (LHS.Encoding < RHS.Encoding)
+ return true;
+ if (LHS.Encoding > RHS.Encoding)
+ return false;
+ return false;
+ });
+
+ if (Idx == Table.end() ||
+ Key.Encoding != Idx->Encoding)
+ return nullptr;
+ return &*Idx;
+}
+
+const SysReg *lookupSysRegByName(StringRef Name) {
+ struct IndexType {
+ const char * Name;
+ unsigned _index;
+ };
+ static const struct IndexType Index[] = {
+ { "CYCLE", 153 },
+ { "CYCLEH", 185 },
+ { "DCSR", 88 },
+ { "DPC", 89 },
+ { "DSCRATCH", 90 },
+ { "FCSR", 3 },
+ { "FFLAGS", 1 },
+ { "FRM", 2 },
+ { "HPMCOUNTER10", 163 },
+ { "HPMCOUNTER10H", 195 },
+ { "HPMCOUNTER11", 164 },
+ { "HPMCOUNTER11H", 196 },
+ { "HPMCOUNTER12", 165 },
+ { "HPMCOUNTER12H", 197 },
+ { "HPMCOUNTER13", 166 },
+ { "HPMCOUNTER13H", 198 },
+ { "HPMCOUNTER14", 167 },
+ { "HPMCOUNTER14H", 199 },
+ { "HPMCOUNTER15", 168 },
+ { "HPMCOUNTER15H", 200 },
+ { "HPMCOUNTER16", 169 },
+ { "HPMCOUNTER16H", 201 },
+ { "HPMCOUNTER17", 170 },
+ { "HPMCOUNTER17H", 202 },
+ { "HPMCOUNTER18", 171 },
+ { "HPMCOUNTER18H", 203 },
+ { "HPMCOUNTER19", 172 },
+ { "HPMCOUNTER19H", 204 },
+ { "HPMCOUNTER20", 173 },
+ { "HPMCOUNTER20H", 205 },
+ { "HPMCOUNTER21", 174 },
+ { "HPMCOUNTER21H", 206 },
+ { "HPMCOUNTER22", 175 },
+ { "HPMCOUNTER22H", 207 },
+ { "HPMCOUNTER23", 176 },
+ { "HPMCOUNTER23H", 208 },
+ { "HPMCOUNTER24", 177 },
+ { "HPMCOUNTER24H", 209 },
+ { "HPMCOUNTER25", 178 },
+ { "HPMCOUNTER25H", 210 },
+ { "HPMCOUNTER26", 179 },
+ { "HPMCOUNTER26H", 211 },
+ { "HPMCOUNTER27", 180 },
+ { "HPMCOUNTER27H", 212 },
+ { "HPMCOUNTER28", 181 },
+ { "HPMCOUNTER28H", 213 },
+ { "HPMCOUNTER29", 182 },
+ { "HPMCOUNTER29H", 214 },
+ { "HPMCOUNTER3", 156 },
+ { "HPMCOUNTER30", 183 },
+ { "HPMCOUNTER30H", 215 },
+ { "HPMCOUNTER31", 184 },
+ { "HPMCOUNTER31H", 216 },
+ { "HPMCOUNTER3H", 188 },
+ { "HPMCOUNTER4", 157 },
+ { "HPMCOUNTER4H", 189 },
+ { "HPMCOUNTER5", 158 },
+ { "HPMCOUNTER5H", 190 },
+ { "HPMCOUNTER6", 159 },
+ { "HPMCOUNTER6H", 191 },
+ { "HPMCOUNTER7", 160 },
+ { "HPMCOUNTER7H", 192 },
+ { "HPMCOUNTER8", 161 },
+ { "HPMCOUNTER8H", 193 },
+ { "HPMCOUNTER9", 162 },
+ { "HPMCOUNTER9H", 194 },
+ { "INSTRET", 155 },
+ { "INSTRETH", 187 },
+ { "MARCHID", 218 },
+ { "MCAUSE", 61 },
+ { "MCOUNTEREN", 29 },
+ { "MCYCLE", 91 },
+ { "MCYCLEH", 122 },
+ { "MEDELEG", 25 },
+ { "MEPC", 60 },
+ { "MHARTID", 220 },
+ { "MHPMCOUNTER10", 100 },
+ { "MHPMCOUNTER10H", 131 },
+ { "MHPMCOUNTER11", 101 },
+ { "MHPMCOUNTER11H", 132 },
+ { "MHPMCOUNTER12", 102 },
+ { "MHPMCOUNTER12H", 133 },
+ { "MHPMCOUNTER13", 103 },
+ { "MHPMCOUNTER13H", 134 },
+ { "MHPMCOUNTER14", 104 },
+ { "MHPMCOUNTER14H", 135 },
+ { "MHPMCOUNTER15", 105 },
+ { "MHPMCOUNTER15H", 136 },
+ { "MHPMCOUNTER16", 106 },
+ { "MHPMCOUNTER16H", 137 },
+ { "MHPMCOUNTER17", 107 },
+ { "MHPMCOUNTER17H", 138 },
+ { "MHPMCOUNTER18", 108 },
+ { "MHPMCOUNTER18H", 139 },
+ { "MHPMCOUNTER19", 109 },
+ { "MHPMCOUNTER19H", 140 },
+ { "MHPMCOUNTER20", 110 },
+ { "MHPMCOUNTER20H", 141 },
+ { "MHPMCOUNTER21", 111 },
+ { "MHPMCOUNTER21H", 142 },
+ { "MHPMCOUNTER22", 112 },
+ { "MHPMCOUNTER22H", 143 },
+ { "MHPMCOUNTER23", 113 },
+ { "MHPMCOUNTER23H", 144 },
+ { "MHPMCOUNTER24", 114 },
+ { "MHPMCOUNTER24H", 145 },
+ { "MHPMCOUNTER25", 115 },
+ { "MHPMCOUNTER25H", 146 },
+ { "MHPMCOUNTER26", 116 },
+ { "MHPMCOUNTER26H", 147 },
+ { "MHPMCOUNTER27", 117 },
+ { "MHPMCOUNTER27H", 148 },
+ { "MHPMCOUNTER28", 118 },
+ { "MHPMCOUNTER28H", 149 },
+ { "MHPMCOUNTER29", 119 },
+ { "MHPMCOUNTER29H", 150 },
+ { "MHPMCOUNTER3", 93 },
+ { "MHPMCOUNTER30", 120 },
+ { "MHPMCOUNTER30H", 151 },
+ { "MHPMCOUNTER31", 121 },
+ { "MHPMCOUNTER31H", 152 },
+ { "MHPMCOUNTER3H", 124 },
+ { "MHPMCOUNTER4", 94 },
+ { "MHPMCOUNTER4H", 125 },
+ { "MHPMCOUNTER5", 95 },
+ { "MHPMCOUNTER5H", 126 },
+ { "MHPMCOUNTER6", 96 },
+ { "MHPMCOUNTER6H", 127 },
+ { "MHPMCOUNTER7", 97 },
+ { "MHPMCOUNTER7H", 128 },
+ { "MHPMCOUNTER8", 98 },
+ { "MHPMCOUNTER8H", 129 },
+ { "MHPMCOUNTER9", 99 },
+ { "MHPMCOUNTER9H", 130 },
+ { "MHPMEVENT10", 37 },
+ { "MHPMEVENT11", 38 },
+ { "MHPMEVENT12", 39 },
+ { "MHPMEVENT13", 40 },
+ { "MHPMEVENT14", 41 },
+ { "MHPMEVENT15", 42 },
+ { "MHPMEVENT16", 43 },
+ { "MHPMEVENT17", 44 },
+ { "MHPMEVENT18", 45 },
+ { "MHPMEVENT19", 46 },
+ { "MHPMEVENT20", 47 },
+ { "MHPMEVENT21", 48 },
+ { "MHPMEVENT22", 49 },
+ { "MHPMEVENT23", 50 },
+ { "MHPMEVENT24", 51 },
+ { "MHPMEVENT25", 52 },
+ { "MHPMEVENT26", 53 },
+ { "MHPMEVENT27", 54 },
+ { "MHPMEVENT28", 55 },
+ { "MHPMEVENT29", 56 },
+ { "MHPMEVENT3", 30 },
+ { "MHPMEVENT30", 57 },
+ { "MHPMEVENT31", 58 },
+ { "MHPMEVENT4", 31 },
+ { "MHPMEVENT5", 32 },
+ { "MHPMEVENT6", 33 },
+ { "MHPMEVENT7", 34 },
+ { "MHPMEVENT8", 35 },
+ { "MHPMEVENT9", 36 },
+ { "MIDELEG", 26 },
+ { "MIE", 27 },
+ { "MIMPID", 219 },
+ { "MINSTRET", 92 },
+ { "MINSTRETH", 123 },
+ { "MIP", 63 },
+ { "MISA", 24 },
+ { "MSCRATCH", 59 },
+ { "MSTATUS", 23 },
+ { "MTVAL", 62 },
+ { "MTVEC", 28 },
+ { "MVENDORID", 217 },
+ { "PMPADDR0", 68 },
+ { "PMPADDR1", 69 },
+ { "PMPADDR10", 78 },
+ { "PMPADDR11", 79 },
+ { "PMPADDR12", 80 },
+ { "PMPADDR13", 81 },
+ { "PMPADDR14", 82 },
+ { "PMPADDR15", 83 },
+ { "PMPADDR2", 70 },
+ { "PMPADDR3", 71 },
+ { "PMPADDR4", 72 },
+ { "PMPADDR5", 73 },
+ { "PMPADDR6", 74 },
+ { "PMPADDR7", 75 },
+ { "PMPADDR8", 76 },
+ { "PMPADDR9", 77 },
+ { "PMPCFG0", 64 },
+ { "PMPCFG1", 65 },
+ { "PMPCFG2", 66 },
+ { "PMPCFG3", 67 },
+ { "SATP", 22 },
+ { "SCAUSE", 19 },
+ { "SCOUNTEREN", 16 },
+ { "SEDELEG", 12 },
+ { "SEPC", 18 },
+ { "SIDELEG", 13 },
+ { "SIE", 14 },
+ { "SIP", 21 },
+ { "SSCRATCH", 17 },
+ { "SSTATUS", 11 },
+ { "STVAL", 20 },
+ { "STVEC", 15 },
+ { "TDATA1", 85 },
+ { "TDATA2", 86 },
+ { "TDATA3", 87 },
+ { "TIME", 154 },
+ { "TIMEH", 186 },
+ { "TSELECT", 84 },
+ { "UCAUSE", 8 },
+ { "UEPC", 7 },
+ { "UIE", 4 },
+ { "UIP", 10 },
+ { "USCRATCH", 6 },
+ { "USTATUS", 0 },
+ { "UTVAL", 9 },
+ { "UTVEC", 5 },
+ };
+
+ struct KeyType {
+ std::string Name;
+ };
+ KeyType Key = { Name.upper() };
+ auto Table = makeArrayRef(Index);
+ auto Idx = std::lower_bound(Table.begin(), Table.end(), Key,
+ [](const IndexType &LHS, const KeyType &RHS) {
+ int CmpName = StringRef(LHS.Name).compare(RHS.Name);
+ if (CmpName < 0) return true;
+ if (CmpName > 0) return false;
+ return false;
+ });
+
+ if (Idx == Table.end() ||
+ Key.Name != Idx->Name)
+ return nullptr;
+ return &SysRegsList[Idx->_index];
+}
+#endif
+
+#undef GET_SysRegsList_DECL
+#undef GET_SysRegsList_IMPL
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def b/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def
index bce0713..9893c66 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmParsers.def
@@ -39,6 +39,9 @@
#if defined(__powerpc64__)
LLVM_ASM_PARSER(PowerPC)
#endif
+#if defined(__riscv)
+LLVM_ASM_PARSER(RISCV)
+#endif
#undef LLVM_ASM_PARSER
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def b/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def
index 112b1a4..523ee3b 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/AsmPrinters.def
@@ -39,6 +39,9 @@
#if defined(__powerpc64__)
LLVM_ASM_PRINTER(PowerPC)
#endif
+#if defined(__riscv)
+LLVM_ASM_PRINTER(RISCV)
+#endif
#undef LLVM_ASM_PRINTER
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def b/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def
index 850983c..4f61495 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/Disassemblers.def
@@ -39,6 +39,9 @@
#if defined(__powerpc64__)
LLVM_DISASSEMBLER(PowerPC)
#endif
+#if defined(__riscv)
+LLVM_DISASSEMBLER(RISCV)
+#endif
#undef LLVM_DISASSEMBLER
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def b/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def
index 103d30a..0e68b41 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/Targets.def
@@ -38,6 +38,9 @@
#if defined(__powerpc64__)
LLVM_TARGET(PowerPC)
#endif
+#if defined(__riscv)
+LLVM_TARGET(RISCV)
+#endif
#undef LLVM_TARGET
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/abi-breaking.h b/third_party/llvm-10.0/configs/linux/include/llvm/Config/abi-breaking.h
index de80383..fd32bf3 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/abi-breaking.h
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/abi-breaking.h
@@ -13,11 +13,7 @@
#define LLVM_ABI_BREAKING_CHECKS_H
/* Define to enable checks that alter the LLVM C++ ABI */
-#if defined(NDEBUG)
#define LLVM_ENABLE_ABI_BREAKING_CHECKS 0
-#else
-#define LLVM_ENABLE_ABI_BREAKING_CHECKS 1
-#endif
/* Define to enable reverse iteration of unordered llvm containers */
#define LLVM_ENABLE_REVERSE_ITERATION 0
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h b/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
index 24bdc67..7392898 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h
@@ -4,9 +4,6 @@
/* Exported configuration */
#include "llvm/Config/llvm-config.h"
-/* For detecting __GLIBC__ usage */
-#include <features.h>
-
/* Bug report URL. */
#define BUG_REPORT_URL "https://bugs.llvm.org/"
@@ -130,12 +127,6 @@
/* Define to 1 if you have the `mallinfo' function. */
#define HAVE_MALLINFO 1
-/* Some projects using SwiftShader bypass cmake (eg Chromium via gn) */
-/* so we need to check glibc version for the new API to be safe */
-#if defined(__GLIBC__) && __GLIBC_MINOR__ >= 33
-#define HAVE_MALLINFO2 1
-#endif
-
/* Define to 1 if you have the <malloc/malloc.h> header file. */
/* #undef HAVE_MALLOC_MALLOC_H */
@@ -317,6 +308,8 @@
#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64"
#elif defined(__powerpc64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu"
+#elif defined(__riscv) && __riscv_xlen == 64
+#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu"
#else
#error "unknown architecture"
#endif
diff --git a/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h b/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h
index 6b26751..b709faa 100644
--- a/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h
+++ b/third_party/llvm-10.0/configs/linux/include/llvm/Config/llvm-config.h
@@ -42,6 +42,8 @@
#define LLVM_DEFAULT_TARGET_TRIPLE "mips64el-linux-gnuabi64"
#elif defined(__powerpc64__)
#define LLVM_DEFAULT_TARGET_TRIPLE "powerpc64le-unknown-linux-gnu"
+#elif defined(__riscv) && __riscv_xlen == 64
+#define LLVM_DEFAULT_TARGET_TRIPLE "riscv64-unknown-linux-gnu"
#else
#error "unknown architecture"
#endif
@@ -67,6 +69,8 @@
#define LLVM_HOST_TRIPLE "mips64el-linux-gnuabi64"
#elif defined(__powerpc64__)
#define LLVM_HOST_TRIPLE "powerpc64le-unknown-linux-gnu"
+#elif defined(__riscv) && __riscv_xlen == 64
+#define LLVM_HOST_TRIPLE "riscv64-unknown-linux-gnu"
#else
#error "unknown architecture"
#endif
@@ -82,6 +86,8 @@
#define LLVM_NATIVE_ARCH Mips
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ARCH PowerPC
+#elif defined(__riscv)
+#define LLVM_NATIVE_ARCH RISCV
#else
#error "unknown architecture"
#endif
@@ -97,6 +103,8 @@
#define LLVM_NATIVE_ASMPARSER LLVMInitializeMipsAsmParser
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ASMPARSER LLVMInitializePowerPCAsmParser
+#elif defined(__riscv)
+#define LLVM_NATIVE_ASMPARSER LLVMInitializeRISCVAsmParser
#else
#error "unknown architecture"
#endif
@@ -112,6 +120,8 @@
#define LLVM_NATIVE_ASMPRINTER LLVMInitializeMipsAsmPrinter
#elif defined(__powerpc64__)
#define LLVM_NATIVE_ASMPRINTER LLVMInitializePowerPCAsmPrinter
+#elif defined(__riscv)
+#define LLVM_NATIVE_ASMPRINTER LLVMInitializeRISCVAsmPrinter
#else
#error "unknown architecture"
#endif
@@ -127,6 +137,8 @@
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeMipsDisassembler
#elif defined(__powerpc64__)
#define LLVM_NATIVE_DISASSEMBLER LLVMInitializePowerPCDisassembler
+#elif defined(__riscv)
+#define LLVM_NATIVE_DISASSEMBLER LLVMInitializeRISCVDisassembler
#else
#error "unknown architecture"
#endif
@@ -142,6 +154,8 @@
#define LLVM_NATIVE_TARGET LLVMInitializeMipsTarget
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGET LLVMInitializePowerPCTarget
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGET LLVMInitializeRISCVTarget
#else
#error "unknown architecture"
#endif
@@ -157,6 +171,8 @@
#define LLVM_NATIVE_TARGETINFO LLVMInitializeMipsTargetInfo
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGETINFO LLVMInitializePowerPCTargetInfo
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGETINFO LLVMInitializeRISCVTargetInfo
#else
#error "unknown architecture"
#endif
@@ -172,6 +188,8 @@
#define LLVM_NATIVE_TARGETMC LLVMInitializeMipsTargetMC
#elif defined(__powerpc64__)
#define LLVM_NATIVE_TARGETMC LLVMInitializePowerPCTargetMC
+#elif defined(__riscv)
+#define LLVM_NATIVE_TARGETMC LLVMInitializeRISCVTargetMC
#else
#error "unknown architecture"
#endif