[AMDGPU] Live-range split copies placed before the Flow block's exec restore run under the wrong exec mask: lanes from the else arm read never-written AGPRs
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
The reproducers for this are sadly massive and I couldn't minimize them too much specially since they come from XLA. I tried using robots and llvm-reduce and friends but didn't have much success.
But in essence some writes to AGPRs got lifted to before the exec restore instruction causing the following code to read garbage values in those AGPRs. In the original reproducer those values are pointers which leads to a crash.
For more details sadly the robot is more capable than I so this Claude slop thing is the best I can do.
https://github.com/gbaraldi/reactant3246-amdgpu-ra-repro/blob/main/ANALYSIS.md
They are in this repo with scripts to actually do them
https://github.com/gbaraldi/reactant3246-amdgpu-ra-repro
Found in
https://github.com/EnzymeAD/Reactant.jl/issues/3246
Opening here for visibility @arsenm
Contributor guide
Assessment
This issue has not been assessed yet.