aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 20:15:09 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 20:15:09 +0800
commitd53149886f39884efe3da5cae67653f9f86132d6 (patch)
tree77fd54c77cda2d227e4298ebd4c70c4879f61cf4
parent551f0b3fcd6f797ed6dca90f39123b0359396dcb (diff)
downloadrcc-project-d53149886f39884efe3da5cae67653f9f86132d6.tar.gz
rcc-project-d53149886f39884efe3da5cae67653f9f86132d6.tar.xz
[RISCV] Derive the generated instruction count in tests
-rw-r--r--backend/unittests/Target/RISCVTargetTest.cpp6
1 files changed, 5 insertions, 1 deletions
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 <algorithm>
+#include <cstddef>
#include <cstdint>
#include <iostream>
#include <ranges>
@@ -121,6 +122,9 @@ void testABIAndDebugFacts(TestContext &Context) {
}
void testInstructionFacts(TestContext &Context) {
+ constexpr std::size_t TargetInstructionCount =
+ static_cast<std::uint32_t>(rcc::riscv::InstructionOpcode::G_SLLW) -
+ static_cast<std::uint32_t>(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<std::uint32_t>(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) &&