- Disable DPP encoding for instructions that do not support it:
- VOP1:
- v_readfirstlane_b32
- v_clrexcp
- v_movreld_b32
- v_movrels_b32
- v_movrelsd_b32
- VOP2:
- v_madmk_f16/32
- v_madak_f16/32
- VOPC, VINTRP, VOP3
- VOP1:
- Fix DPP for v_nop
- New DPP tests for VOP1 and VOP2 instructions
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/AMDGPU/SIInstrInfo.td | ||
---|---|---|
1396 ↗ | (On Diff #51907) | its unclear why destination operand name is selected based on DstVT.Size. May be it worth to add helper class with a name that designate what we're really checking here, something like isVOPCDest |
1750 ↗ | (On Diff #51907) | it looks like VOP1_DPP instruction that isn't really DPP. This is may be ok if there're just a few such exceptions but the question is: should any other fields in VOP1_DPP/VOP2_DPP be defined depending on p.HasDPP? |
lib/Target/AMDGPU/SIInstrInfo.td | ||
---|---|---|
1396 ↗ | (On Diff #51907) | This is a convinient way to decide if this is VOPC that is used in several places in SIInstrInfo.td. I agree that it should be changed but it is not the target of this change and should be done in different change. |
1750 ↗ | (On Diff #51907) | Yes, you are right that most VOP1 and VOP2 instructions support DPP and those that don't support are exceptions. |