[llvm] [AMDGPU] Delete redundant s_or32 (PR #165261)
via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 27 09:09:54 PDT 2025
================
@@ -10663,25 +10687,32 @@ bool SIInstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
if (!setsSCCifResultIsNonZero(*Def) && !foldableSelect(Def))
return false;
- MachineInstr *KillsSCC = nullptr;
- for (MachineInstr &MI :
- make_range(std::next(Def->getIterator()), CmpInstr.getIterator())) {
- if (MI.modifiesRegister(AMDGPU::SCC, &RI))
- return false;
- if (MI.killsRegister(AMDGPU::SCC, &RI))
- KillsSCC = &MI;
- }
+ if (!optimizeSCC(Def, &CmpInstr))
+ return false;
- if (MachineOperand *SccDef =
- Def->findRegisterDefOperand(AMDGPU::SCC, /*TRI=*/nullptr))
- SccDef->setIsDead(false);
- if (KillsSCC)
- KillsSCC->clearRegisterKills(AMDGPU::SCC, /*TRI=*/nullptr);
- CmpInstr.eraseFromParent();
+ // If s_or_32 result is unused (i.e. it is effectively a 64-bit s_cmp_lg of
----------------
LU-JOHN wrote:
Fixed comment.
https://github.com/llvm/llvm-project/pull/165261
More information about the llvm-commits
mailing list