[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