[llvm] X86: Use hasOneNonDBGUse instead of kill flag for cascaded select (PR #228939)
via llvm-commits
llvm-commits at lists.llvm.org
Sun Oct 4 14:04:42 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-x86
Author: Matt Arsenault (arsenm)
<details>
<summary>Changes</summary>
The cascaded CMOV lowering requires the first select's result to only be
used by the second select. Avoid relying on the kill flag in preparation
for not setting it.
Co-authored-by: Claude Opus 5.5 <noreply@<!-- -->anthropic.com>
---
Full diff: https://github.com/llvm/llvm-project/pull/228939.diff
1 Files Affected:
- (modified) llvm/lib/Target/X86/X86ISelLowering.cpp (+2-1)
``````````diff
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index c29b09ae846bb..b8edb2dc6f13d 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -37704,7 +37704,8 @@ X86TargetLowering::EmitLoweredSelect(MachineInstr &MI,
NextMIIt->getOpcode() == MI.getOpcode() &&
NextMIIt->getOperand(2).getReg() == MI.getOperand(2).getReg() &&
NextMIIt->getOperand(1).getReg() == MI.getOperand(0).getReg() &&
- NextMIIt->getOperand(1).isKill()) {
+ ThisMBB->getParent()->getRegInfo().hasOneNonDBGUse(
+ MI.getOperand(0).getReg())) {
return EmitLoweredCascadedSelect(MI, *NextMIIt, ThisMBB);
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/228939
More information about the llvm-commits
mailing list