[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