[llvm] [AMDGPU] Fix eliminateFrameIndex clobbering a scavenged register (PR #217470)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 20 03:41:14 PDT 2026


================
@@ -3372,6 +3372,20 @@ bool SIRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator MI,
                  : RS->scavengeRegisterBackwards(*RC, MI, false, 0);
 
       int64_t Offset = FrameInfo.getObjectOffset(Index);
+
+      // The carry-out lane of Add is unused, so it is safe to write with
+      // S_MOV_B32 even into a VGPR.
+      auto MaterializeCarryOutOffset = [&](MachineInstrBuilder &Add) {
+        Register ConstOffsetReg;
+        if (!isWave32)
+          ConstOffsetReg = getSubReg(Add.getReg(1), AMDGPU::sub0);
+        else
+          ConstOffsetReg = Add.getReg(1);
----------------
arsenm wrote:

Assign from ternary operator 

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


More information about the llvm-commits mailing list