[llvm] [AMDGPU] Reland "Remove redundant s_cmp_lg_* sX, 0" (PR #164201)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Oct 21 08:08:52 PDT 2025
================
@@ -10626,6 +10626,59 @@ bool SIInstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
if (SrcReg2 && !getFoldableImm(SrcReg2, *MRI, CmpValue))
return false;
+ const auto optimizeCmpSelect = [&CmpInstr, SrcReg, CmpValue, MRI,
+ this]() -> bool {
+ if (CmpValue != 0)
+ return false;
+
+ MachineInstr *Def = MRI->getUniqueVRegDef(SrcReg);
+ if (!Def || Def->getParent() != CmpInstr.getParent())
+ return false;
+
+ bool CanOptimize = false;
+
+ // For S_OP that set SCC = DST!=0, do the transformation
+ //
+ // s_cmp_lg_* (S_OP ...), 0 => (S_OP ...)
+ if (setsSCCifResultIsNonZero(*Def))
+ CanOptimize = true;
----------------
LU-JOHN wrote:
Streamlined code. Removed CanOptimize.
https://github.com/llvm/llvm-project/pull/164201
More information about the llvm-commits
mailing list