[llvm] [AMDGPU] Handle AV classes when legalizing PHI nodes (PR #175995)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 14 09:18:02 PST 2026


https://github.com/jayfoad created https://github.com/llvm/llvm-project/pull/175995

None

>From e235594d36efcf349183b14f925e5a3f5ee66123 Mon Sep 17 00:00:00 2001
From: Jay Foad <jay.foad at amd.com>
Date: Wed, 14 Jan 2026 17:13:27 +0000
Subject: [PATCH] [AMDGPU] Handle AV classes when legalizing PHI nodes

---
 llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index 90383f689b55c..5ab1eec138f49 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -7303,11 +7303,15 @@ SIInstrInfo::legalizeOperands(MachineInstr &MI,
         if (getOpRegClass(MI, 0) == &AMDGPU::VReg_1RegClass) {
           VRC = &AMDGPU::VReg_1RegClass;
         } else
-          VRC = RI.isAGPRClass(getOpRegClass(MI, 0))
+          VRC = RI.isVectorSuperClass(getOpRegClass(MI, 0))
+                    ? RI.getEquivalentAVClass(SRC)
+                : RI.isAGPRClass(getOpRegClass(MI, 0))
                     ? RI.getEquivalentAGPRClass(SRC)
                     : RI.getEquivalentVGPRClass(SRC);
       } else {
-        VRC = RI.isAGPRClass(getOpRegClass(MI, 0))
+        VRC = RI.isVectorSuperClass(getOpRegClass(MI, 0))
+                  ? RI.getEquivalentAVClass(VRC)
+              : RI.isAGPRClass(getOpRegClass(MI, 0))
                   ? RI.getEquivalentAGPRClass(VRC)
                   : RI.getEquivalentVGPRClass(VRC);
       }



More information about the llvm-commits mailing list