[llvm] [AMDGPU][AArch64][GlobalISel] Guard against use of disallowed sub-registers (PR #188781)

Igor Wodiany via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 27 06:30:26 PDT 2026


================
@@ -243,13 +243,16 @@ bool InstructionSelect::selectMachineFunction(MachineFunction &MF) {
         continue;
       Register SrcReg = MI.getOperand(1).getReg();
       Register DstReg = MI.getOperand(0).getReg();
-      if (SrcReg.isVirtual() && DstReg.isVirtual()) {
-        auto SrcRC = MRI.getRegClass(SrcReg);
-        auto DstRC = MRI.getRegClass(DstReg);
-        if (SrcRC == DstRC) {
-          MRI.replaceRegWith(DstReg, SrcReg);
-          MI.eraseFromParent();
-        }
+      unsigned SrcSubIdx = MI.getOperand(1).getSubReg();
+      unsigned DstSubIdx = MI.getOperand(0).getSubReg();
----------------
IgWod wrote:

Does it mean we don't have to check for `DstSubIdx` since as it's a def it should never be a sub-register?

https://github.com/llvm/llvm-project/pull/188781


More information about the llvm-commits mailing list