[llvm] [AMDGPU] GCNRewritePartialRegUses - missing superreg (PR #208718)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 14 06:10:41 PDT 2026


jayfoad wrote:

Could you try this instead? 96-bit SGPR subregs have to be 128-bit aligned.
```diff
diff --git a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
index de1cae51db1b..b2ce3bb2ff3a 100644
--- a/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp
@@ -4304,7 +4304,7 @@ SIRegisterInfo::getSubRegAlignmentNumBits(const TargetRegisterClass *RC,
                                           unsigned SubReg) const {
   switch (RC->TSFlags & SIRCFlags::RegKindMask) {
   case SIRCFlags::HasSGPR:
-    return std::min(128u, getSubRegIdxSize(SubReg));
+    return std::min(128u, bit_ceil(getSubRegIdxSize(SubReg)));
   case SIRCFlags::HasAGPR:
   case SIRCFlags::HasVGPR:
   case SIRCFlags::HasVGPR | SIRCFlags::HasAGPR:
```

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


More information about the llvm-commits mailing list