Added separate pseudo and real instruction for GFX9 SDWA instructions.
Currently supports only in assembler.
Depends D32493
Details
Diff Detail
- Build Status
Buildable 6512 Build 6512: arc lint + arc unit
Event Timeline
include/llvm/Target/Target.td | ||
---|---|---|
683–686 ↗ | (On Diff #98776) | These generic code changes should be split into a separate patch |
lib/Target/AMDGPU/SIDefines.h | ||
121–124 | SDWA9 isn't a clear description. Can you add a comment somewhere describing the difference in SDWA encodings? I'm not sure what changed that requires all of this hassle | |
test/MC/AMDGPU/vop_sdwa.s | ||
2 | The convention I've been using so far for the VI+GFX9 has been GFX89, but it doesn't really matter |
lib/Target/AMDGPU/SIDefines.h | ||
---|---|---|
121–124 | In particular it would be greatly preferable if we could have a single set of SDWA instructions for codegen purposes and have encoding pseudos for emission similar to the SI vs. VI handling currently |
Rebased on top of master.
Renamed VI9 tests to GFX89.
Added commentary for SDWA on GFX9.
lib/Target/AMDGPU/SIDefines.h | ||
---|---|---|
121–124 | I wanted to combine pseudo instructions for VI and GFX9 but there are problems with that: VI and GFX9 SDWA instructions have different operands. E.g. GFX9 supports omod. Also on GFX9 there is no clamp for VOPC SDWA instructions. |
It seems that have been done for Gfx9 only. Any reason for this? Perhaps it is worth to add a comment.
This was done only for this changes. It was done because it is not supported for SDWA on GFX9.
SDWA9 isn't a clear description.
Can you add a comment somewhere describing the difference in SDWA encodings? I'm not sure what changed that requires all of this hassle