[llvm] [AMDGPU] Fix for GFX11 VOPD interlock hazard (PR #220348)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 13 05:39:11 PDT 2026


================
@@ -223,9 +223,14 @@ bool llvm::checkVOPDRegConstraints(const SIInstrInfo &TII,
                  MIX.getOpcode() == AMDGPU::V_MOV_B32_e32 &&
                  MIY.getOpcode() == AMDGPU::V_MOV_B32_e32;
 
+  // GFX11 destination-buffer forwarding can lose the interlock when the X/Y
+  // operands of SRC0 or SRC1 are distinct VGPRs with the same parity. Require
+  // opposite parity instead of merely different banks when forming the pair.
+  bool RequireDifferentSrcParity = AMDGPU::isGFX11(ST);
----------------
arsenm wrote:

Don't use AMDGPU::is* predicates, use ST->something. And ideally this wouldn't be a generation check 

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


More information about the llvm-commits mailing list