diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-15 01:14:58 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-15 01:14:58 +0800 |
| commit | dc6ea141a331774f2ac3e10152cb690d6d3d3ca7 (patch) | |
| tree | 7f814a542f5ae4484fd58c398528bb12095ba3e5 /backend/include | |
| parent | 3d51594aaf40f5d9f2b948cb78ea4900c6e154fb (diff) | |
| download | rcc-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')
| -rw-r--r-- | backend/include/rcc/CodeGen/GlobalISel/LegalizerHelper.h | 2 |
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); |
