aboutsummaryrefslogtreecommitdiff
path: root/backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-15 01:14:58 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-15 01:14:58 +0800
commitdc6ea141a331774f2ac3e10152cb690d6d3d3ca7 (patch)
tree7f814a542f5ae4484fd58c398528bb12095ba3e5 /backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h
parent3d51594aaf40f5d9f2b948cb78ea4900c6e154fb (diff)
downloadrcc-project-dc6ea141a331774f2ac3e10152cb690d6d3d3ca7.tar.gz
rcc-project-dc6ea141a331774f2ac3e10152cb690d6d3d3ca7.tar.xz
[GlobalISel] Narrow scalar selects
Match LLVM's narrowScalarSelect lowering for wide scalar values. Build widened sources from LLT destinations so CSE hits reuse the actual result register instead of introducing copies.
Diffstat (limited to 'backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h')
-rw-r--r--backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h b/backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h
index 4376f62..993690e 100644
--- a/backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h
+++ b/backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h
@@ -72,6 +72,8 @@ private:
LowLevelType NarrowType);
[[nodiscard]] Expected<void> narrowScalarExt(MachineInstr &Instruction, std::size_t TypeIndex,
LowLevelType NarrowType);
+ [[nodiscard]] Expected<void> narrowScalarSelect(MachineInstr &Instruction, std::size_t TypeIndex,
+ LowLevelType NarrowType);
[[nodiscard]] Expected<void> widenScalarAddSubOverflow(MachineInstr &Instruction,
std::size_t TypeIndex,
LowLevelType WideType);