From dc6ea141a331774f2ac3e10152cb690d6d3d3ca7 Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Sat, 15 Aug 2026 01:14:58 +0800 Subject: [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. --- backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'backend/include/rcc/CodeGen') 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 narrowScalarExt(MachineInstr &Instruction, std::size_t TypeIndex, LowLevelType NarrowType); + [[nodiscard]] Expected narrowScalarSelect(MachineInstr &Instruction, std::size_t TypeIndex, + LowLevelType NarrowType); [[nodiscard]] Expected widenScalarAddSubOverflow(MachineInstr &Instruction, std::size_t TypeIndex, LowLevelType WideType); -- cgit v1.2.3