diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index 13d05ee54d7b3..9b364fdab5fd4 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -3773,7 +3773,7 @@ bool SIInstrInfo::foldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, MachineInstr *Def = MRI->getUniqueVRegDef(Src0->getReg()); if (Def && Def->isMoveImmediate() && isInlineConstant(Def->getOperand(1)) && - MRI->hasOneUse(Src0->getReg())) { + MRI->hasOneNonDBGUse(Src0->getReg())) { Src0->ChangeToImmediate(Def->getOperand(1).getImm()); Src0Inlined = true; } else if (ST.getConstantBusLimit(Opc) <= 1 && @@ -3788,7 +3788,7 @@ bool SIInstrInfo::foldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, MachineInstr *Def = MRI->getUniqueVRegDef(Src1->getReg()); if (Def && Def->isMoveImmediate() && isInlineConstant(Def->getOperand(1)) && - MRI->hasOneUse(Src1->getReg()) && commuteInstruction(UseMI)) + MRI->hasOneNonDBGUse(Src1->getReg()) && commuteInstruction(UseMI)) Src0->ChangeToImmediate(Def->getOperand(1).getImm()); else if (RI.isSGPRReg(*MRI, Src1->getReg())) return false; diff --git a/llvm/test/CodeGen/AMDGPU/madak-inline-constant.mir b/llvm/test/CodeGen/AMDGPU/madak-inline-constant.mir index 1ab3cf60a1c97..6e7f5b5492148 100644 --- a/llvm/test/CodeGen/AMDGPU/madak-inline-constant.mir +++ b/llvm/test/CodeGen/AMDGPU/madak-inline-constant.mir @@ -1,5 +1,5 @@ # RUN: llc -mtriple=amdgcn -run-pass peephole-opt -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s - +# RUN: llc -mtriple=amdgcn -run-pass peephole-opt -verify-machineinstrs -o - %s -debugify-and-strip-all-safe | FileCheck -check-prefix=GCN %s # GCN-LABEL: bb.0: # GCN: S_MOV_B32 1082130432