[llvm] 325e759 - [RISCV] Use template PredicateMethod for ImmAsmOperand when suffix is empty. NFC (#224098)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 16 13:59:07 PDT 2026
Author: Craig Topper
Date: 2026-09-16T13:59:01-07:00
New Revision: 325e759c6d95dca65c4312cc24056a6ef4872c22
URL: https://github.com/llvm/llvm-project/commit/325e759c6d95dca65c4312cc24056a6ef4872c22
DIFF: https://github.com/llvm/llvm-project/commit/325e759c6d95dca65c4312cc24056a6ef4872c22.diff
LOG: [RISCV] Use template PredicateMethod for ImmAsmOperand when suffix is empty. NFC (#224098)
This allows us to remove forwarding wrappers from RISCVAsmParser.cpp.
Assisted-by: Claude
Added:
Modified:
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
llvm/lib/Target/RISCV/RISCVInstrInfo.td
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
index c4f5e05e76a84..ec61a03b5b3e7 100644
--- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
@@ -706,7 +706,7 @@ struct RISCVOperand final : public MCParsedAsmOperand {
/// Return true if the operand is a valid fli.s floating-point immediate.
bool isLoadFPImm() const {
if (isExpr())
- return isUImm5();
+ return isUImm<5>();
if (Kind != KindTy::FPImmediate)
return false;
int Idx = RISCVLoadFPImm::getLoadFPImm(
@@ -780,23 +780,6 @@ struct RISCVOperand final : public MCParsedAsmOperand {
return isUImm<4>();
}
- bool isUImm1() const { return isUImm<1>(); }
- bool isUImm2() const { return isUImm<2>(); }
- bool isUImm3() const { return isUImm<3>(); }
- bool isUImm4() const { return isUImm<4>(); }
- bool isUImm5() const { return isUImm<5>(); }
- bool isUImm6() const { return isUImm<6>(); }
- bool isUImm7() const { return isUImm<7>(); }
- bool isUImm8() const { return isUImm<8>(); }
- bool isUImm9() const { return isUImm<9>(); }
- bool isUImm10() const { return isUImm<10>(); }
- bool isUImm11() const { return isUImm<11>(); }
- bool isUImm16() const { return isUImm<16>(); }
- bool isUImm20() const { return isUImm<20>(); }
- bool isUImm32() const { return isUImm<32>(); }
- bool isUImm48() const { return isUImm<48>(); }
- bool isUImm64() const { return isUImm<64>(); }
-
bool isUImm5NonZero() const {
return isUImmPred([](int64_t Imm) { return Imm != 0 && isUInt<5>(Imm); });
}
@@ -886,15 +869,6 @@ struct RISCVOperand final : public MCParsedAsmOperand {
return IsConstantImm && p(fixImmediateForRV32(Imm, isRV64Expr()));
}
- bool isSImm5() const { return isSImm<5>(); }
- bool isSImm6() const { return isSImm<6>(); }
- bool isSImm10() const { return isSImm<10>(); }
- bool isSImm11() const { return isSImm<11>(); }
- bool isSImm12() const { return isSImm<12>(); }
- bool isSImm16() const { return isSImm<16>(); }
- bool isSImm18() const { return isSImm<18>(); }
- bool isSImm26() const { return isSImm<26>(); }
-
bool isSImm5NonZero() const {
return isSImmPred([](int64_t Imm) { return Imm != 0 && isInt<5>(Imm); });
}
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
index 10d43acea0329..cd18f5544e925 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td
@@ -206,7 +206,9 @@ class ImmXLenAsmOperand<string prefix, string suffix = ""> : AsmOperandClass {
class ImmAsmOperand<string prefix, int width, string suffix> : AsmOperandClass {
let Name = prefix # "Imm" # width # suffix;
- let PredicateMethod = "is" # prefix # "Imm" # width # suffix;
+ let PredicateMethod = !if(!eq(suffix, ""),
+ "is" # prefix # "Imm<" # width # ">",
+ "is" # prefix # "Imm" # width # suffix);
let RenderMethod = "addImmOperands";
let DiagnosticType = !strconcat("Invalid", Name);
}
More information about the llvm-commits
mailing list