[llvm-branch-commits] [llvm] PeepholeOpt: Fix losing subregister indexes on full copies (PR #161310)
Jay Foad via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Sep 30 03:10:28 PDT 2025
================
@@ -1905,7 +1905,28 @@ ValueTrackerResult ValueTracker::getNextSourceFromCopy() {
const MachineOperand &Src = Def->getOperand(1);
if (Src.isUndef())
return ValueTrackerResult();
- return ValueTrackerResult(Src.getReg(), Src.getSubReg());
+
+ Register SrcReg = Src.getReg();
+ unsigned SubReg = Src.getSubReg();
+ if (DefSubReg) {
+ const TargetRegisterInfo *TRI = MRI.getTargetRegisterInfo();
+ SubReg = TRI->composeSubRegIndices(SubReg, DefSubReg);
+ if (SubReg) {
----------------
jayfoad wrote:
I don't think SubReg can ever be 0 here, since you previously checked that DefSubReg is not 0.
https://github.com/llvm/llvm-project/pull/161310
More information about the llvm-branch-commits
mailing list