From d53149886f39884efe3da5cae67653f9f86132d6 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Tue, 11 Aug 2026 20:15:09 +0800 Subject: [RISCV] Derive the generated instruction count in tests --- backend/unittests/Target/RISCVTargetTest.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'backend/unittests/Target/RISCVTargetTest.cpp') diff --git a/backend/unittests/Target/RISCVTargetTest.cpp b/backend/unittests/Target/RISCVTargetTest.cpp index 6203461..e0ef604 100644 --- a/backend/unittests/Target/RISCVTargetTest.cpp +++ b/backend/unittests/Target/RISCVTargetTest.cpp @@ -5,6 +5,7 @@ #include "rcc/CodeGen/GenericOpcodes.h" #include +#include #include #include #include @@ -121,6 +122,9 @@ void testABIAndDebugFacts(TestContext &Context) { } void testInstructionFacts(TestContext &Context) { + constexpr std::size_t TargetInstructionCount = + static_cast(rcc::riscv::InstructionOpcode::G_SLLW) - + static_cast(rcc::riscv::InstructionOpcode::LUI) + 1U; auto Target = rcc::riscv::createTargetDescription(); Context.expect(Target.has_value(), "RV64GC target description must be structurally valid"); if (!Target) { @@ -149,7 +153,7 @@ void testInstructionFacts(TestContext &Context) { rcc::Opcode::fromValue(static_cast(rcc::riscv::InstructionOpcode::FENCE_I))); Context.expect( Target->instructions().descriptors().size() == - 204 + rcc::genericInstructionDescriptors().size() && + TargetInstructionCount + rcc::genericInstructionDescriptors().size() && Addi != nullptr && Addi->Name == "ADDI" && Addi->NumExplicitDefs == 1 && Addi->Operands.size() == 3 && Addi->Operands.back().ImmediatePredicate && Load != nullptr && Load->Flags.has(rcc::InstructionFlag::MayLoad) && -- cgit v1.2.3