[llvm] [AMDGPU] Prevent folding of flat_scr_base_hi into a 64-bit SALU (PR #170373)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 2 16:51:26 PST 2025


================
@@ -6256,6 +6256,17 @@ bool SIInstrInfo::isLegalRegOperand(const MachineInstr &MI, unsigned OpIdx,
       (int)OpIdx == AMDGPU::getNamedOperandIdx(Opc, AMDGPU::OpName::src0) &&
       RI.isSGPRReg(MRI, MO.getReg()))
     return false;
+
+  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)
----------------
arsenm wrote:

We do and should cover missed cases. The operand legality is primarily a verification function 

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


More information about the llvm-commits mailing list