[llvm] [AMDGPU] Preserve old MSBs when handling SETREG (PR #191352)
Stanislav Mekhanoshin via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 10 11:49:37 PDT 2026
https://github.com/rampitec updated https://github.com/llvm/llvm-project/pull/191352
>From 2ac04cdef309e2e2594907f8e825f476474816fb Mon Sep 17 00:00:00 2001
From: Stanislav Mekhanoshin <Stanislav.Mekhanoshin at amd.com>
Date: Fri, 10 Apr 2026 00:33:42 -0700
Subject: [PATCH] [AMDGPU] Preserve old MSBs when handling SETREG
---
llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp | 2 +-
llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp
index d8754babce1c3..d770e783b4544 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.cpp
@@ -564,7 +564,7 @@ bool AMDGPULowerVGPREncoding::handleSetregMode(MachineInstr &MI) {
BuildMI(*MBB, InsertPt, MI.getDebugLoc(), TII->get(AMDGPU::S_NOP)).addImm(0);
MostRecentModeSet = BuildMI(*MBB, InsertPt, MI.getDebugLoc(),
TII->get(AMDGPU::S_SET_VGPR_MSB))
- .addImm(ModeValue);
+ .addImm(ModeValue | (ModeValue << ModeWidth));
LLVM_DEBUG(dbgs() << " -> inserted S_SET_VGPR_MSB after setreg: "
<< *MostRecentModeSet);
return true;
diff --git a/llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir b/llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir
index ba3c247b07da4..690db2e0302f6 100644
--- a/llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir
+++ b/llvm/test/CodeGen/AMDGPU/vgpr-setreg-mode-swar.mir
@@ -173,7 +173,7 @@ body: |
; CHECK-NEXT: $vgpr256 = V_MOV_B32_e32 $vgpr257, implicit $exec
; CHECK-NEXT: S_SETREG_IMM32_B32 146108, 30785, implicit-def $mode, implicit $mode
; CHECK-NEXT: S_NOP 0
- ; CHECK-NEXT: S_SET_VGPR_MSB 65, implicit-def $mode
+ ; CHECK-NEXT: S_SET_VGPR_MSB 16705, implicit-def $mode
; CHECK-NEXT: S_ENDPGM 0
$vgpr256 = V_MOV_B32_e32 $vgpr257, implicit $exec
; size=16, offset=1, hwreg=MODE: simm16 = 0x7841 = 30785
More information about the llvm-commits
mailing list