[llvm] 83ab875 - [AMDGPU] Handle phys regs in flat_scratch_base_hi operand check (#170395)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 2 17:22:11 PST 2025
Author: Stanislav Mekhanoshin
Date: 2025-12-02T17:22:07-08:00
New Revision: 83ab875b8337aad5970fb8f519fec91a43dce906
URL: https://github.com/llvm/llvm-project/commit/83ab875b8337aad5970fb8f519fec91a43dce906
DIFF: https://github.com/llvm/llvm-project/commit/83ab875b8337aad5970fb8f519fec91a43dce906.diff
LOG: [AMDGPU] Handle phys regs in flat_scratch_base_hi operand check (#170395)
Added:
Modified:
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
llvm/test/CodeGen/AMDGPU/hazard-gfx1250-flat-scr-hi.mir
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index 50860a9a8e4c1..088533306c79b 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -6260,7 +6260,8 @@ bool SIInstrInfo::isLegalRegOperand(const MachineInstr &MI, unsigned OpIdx,
if (ST.hasFlatScratchHiInB64InstHazard() &&
MO.getReg() == AMDGPU::SRC_FLAT_SCRATCH_BASE_HI && isSALU(MI)) {
if (const MachineOperand *Dst = getNamedOperand(MI, AMDGPU::OpName::sdst)) {
- if (AMDGPU::getRegBitWidth(*MRI.getRegClass(Dst->getReg())) == 64)
+ if (AMDGPU::getRegBitWidth(*RI.getRegClassForReg(MRI, Dst->getReg())) ==
+ 64)
return false;
}
if (Opc == AMDGPU::S_BITCMP0_B64 || Opc == AMDGPU::S_BITCMP1_B64)
diff --git a/llvm/test/CodeGen/AMDGPU/hazard-gfx1250-flat-scr-hi.mir b/llvm/test/CodeGen/AMDGPU/hazard-gfx1250-flat-scr-hi.mir
index e661b6859e09d..e3b28c5518695 100644
--- a/llvm/test/CodeGen/AMDGPU/hazard-gfx1250-flat-scr-hi.mir
+++ b/llvm/test/CodeGen/AMDGPU/hazard-gfx1250-flat-scr-hi.mir
@@ -143,3 +143,16 @@ body: |
%0:sreg_32 = COPY $src_flat_scratch_base_hi
%1:sreg_64 = S_BITSET1_B64 %0, undef %1:sreg_64, implicit-def $scc
...
+
+---
+name: s_ashr_i64_phys_dst
+tracksRegLiveness: true
+body: |
+ bb.0:
+
+ ; GCN-LABEL: name: s_ashr_i64_phys_dst
+ ; GCN: [[COPY:%[0-9]+]]:sreg_32 = COPY $src_flat_scratch_base_hi
+ ; GCN-NEXT: $sgpr0_sgpr1 = S_ASHR_I64 undef %1:sreg_64, [[COPY]], implicit-def $scc
+ %0:sreg_32 = COPY $src_flat_scratch_base_hi
+ $sgpr0_sgpr1 = S_ASHR_I64 undef %1:sreg_64, %0, implicit-def $scc
+...
More information about the llvm-commits
mailing list