THURSDAY, SEPTEMBER 17, 2026
amdgcn
amdgcn: Handle XNACK in pre-split mov instructions
Ensures load instructions on AMD GPUs handle XNACK correctly even before splitting.
This commit addresses a latent bug in the AMD GCN (Graphics Core Next) backend by ensuring that load instructions are restartable and marked as no-clobber when XNACK is enabled. This is necessary even for instructions that will be split later, guaranteeing correct behavior in the presence of XNACK acknowledgments.
In Details
Adds XNACK alternatives for mov<mode>_exec and mov<mode>_sgprbase in config/gcn/gcn-valu.md. This ensures that loads, even those split later by the VLIW/SIMD packer, are correctly marked as no-clobber and restartable when XNACK is enabled, preventing potential data corruption.
For Context
- amdgcn
- The GCC backend for AMD's Graphics Core Next (GCN) GPU architecture.
- XNACK
- An acknowledgment mechanism used in some hardware (like AMD GPUs) to signal that a memory transaction has completed or requires retries.
- mov instructions
- Instructions that move data between registers or between registers and memory.
- no-clobber
- An instruction property indicating that it does not modify the destination operand, allowing for more optimization opportunities.
- config/gcn/gcn-valu.md
- The GCC machine description file for AMD GCN VALUE instructions.