From 128a7dbac4cdb1594b3dac9144cf044695ef2ad9 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Wed, 12 Aug 2026 00:43:40 +0800 Subject: [RISCV] Describe the GPR select pseudo --- backend/lib/Target/RISCV/RISCV.rccdesc | 15 +++++++++++++++ backend/unittests/Target/RISCVTargetTest.cpp | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'backend') diff --git a/backend/lib/Target/RISCV/RISCV.rccdesc b/backend/lib/Target/RISCV/RISCV.rccdesc index 9950b79..9943724 100644 --- a/backend/lib/Target/RISCV/RISCV.rccdesc +++ b/backend/lib/Target/RISCV/RISCV.rccdesc @@ -3504,6 +3504,21 @@ instructions: flags: [generic, pseudo, allowed_pre_legalizer] owner: instruction_select deadline: selected + - + id: 1244 + symbol: Select_GPR_Using_CC_GPR + name: Select_GPR_Using_CC_GPR + operands: + - { kinds: [register], role: def, register_class: GPR, register_bank: GPR } + - { kinds: [register], role: use, register_class: GPR, register_bank: GPR } + - { kinds: [register], role: use, register_class: GPR, register_bank: GPR } + - { kinds: [immediate] } + - { kinds: [register], role: use, register_class: GPR, register_bank: GPR } + - { kinds: [register], role: use, register_class: GPR, register_bank: GPR } + num_explicit_defs: 1 + flags: [pseudo, produces_code, allowed_pre_legalizer] + owner: instruction_select + deadline: selected - id: 1216 symbol: PseudoCC_COPY diff --git a/backend/unittests/Target/RISCVTargetTest.cpp b/backend/unittests/Target/RISCVTargetTest.cpp index 6fa3d40..680d606 100644 --- a/backend/unittests/Target/RISCVTargetTest.cpp +++ b/backend/unittests/Target/RISCVTargetTest.cpp @@ -149,7 +149,7 @@ void testABIAndDebugFacts(TestContext &Context) { void testInstructionFacts(TestContext &Context) { constexpr std::size_t TargetInstructionCount = - static_cast(rcc::riscv::InstructionOpcode::G_CLSW) - + static_cast(rcc::riscv::InstructionOpcode::Select_GPR_Using_CC_GPR) - static_cast(rcc::riscv::InstructionOpcode::LUI) + 1U; auto Target = rcc::riscv::createTargetDescription(); Context.expect(Target.has_value(), "RV64GC target description must be structurally valid"); -- cgit v1.2.3