[llvm] [AArch64][PeepholeOpt] Use correct register class for subreg uses fro… (PR #226595)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 2 00:13:06 PDT 2026
================
@@ -922,17 +922,23 @@ bool PeepholeOptimizer::optimizeExtInstr(
// %6:gprc_and_gprc_nor0 = COPY %1.sub_32:g8rc_and_g8rc_nox0
// %3:gprc_and_gprc_nor0 = COPY %6:gprc_and_gprc_nor0
//
- if (UseSrcSubIdx)
- RC = MRI->getRegClass(UseMI->getOperand(0).getReg());
+ if (UseSrcSubIdx) {
+ RC = MRI->getRegClass(UseMO->getReg());
+ if (UseMO->getSubReg())
+ RC = TRI->getSubRegisterClass(RC, UseMO->getSubReg());
+ }
Register NewVR = MRI->createVirtualRegister(RC);
- BuildMI(*UseMBB, UseMI, UseMI->getDebugLoc(),
- TII->get(TargetOpcode::COPY), NewVR)
- .addReg(DstReg, {}, SubIdx);
+ [[maybe_unused]] auto Copy = BuildMI(*UseMBB, UseMI, UseMI->getDebugLoc(),
+ TII->get(TargetOpcode::COPY), NewVR)
+ .addReg(DstReg, {}, SubIdx);
+ LLVM_DEBUG(dbgs() << " Build new copy: " << *Copy);
+ LLVM_DEBUG(dbgs() << " Changing: " << *UseMI);
----------------
arsenm wrote:
```suggestion
LLVM_DEBUG(dbgs() << " Build new copy: " << *Copy << " Changing: " << *UseMI);
```
https://github.com/llvm/llvm-project/pull/226595
More information about the llvm-commits
mailing list