Correct v_cndmask_b32 to support abs/neg modifiers in dpp/sdwa/e64 variants.
Correct v_cndmask_b16 for proper disassembly of abs/neg modifiers in e64_dpp variants.
See this bug for more information.
Paths
| Differential D135900
[AMDGPU][MC][GFX8+] Correct v_cndmask modifiers ClosedPublic Authored by dp on Oct 13 2022, 11:48 AM.
Details Summary Correct v_cndmask_b32 to support abs/neg modifiers in dpp/sdwa/e64 variants. See this bug for more information.
Diff Detail Event TimelineThis revision is now accepted and ready to land.Oct 13 2022, 11:56 AM Comment Actions I guess CNDMASK_B16 should be a True16 instruction. I shall plan to do that. With that in mind, this patch appears even less parameterized for (i32 vs i16) input types than before. Is there any way to get some of that back? IE before this patch CNDMASK_B16_T16 wouldn't need to override InsDPP, but after this it does. Comment Actions
I assume that True16 instructions may use first 128 VGPRs only. v_cndmask_b16 is a native VOP3 instruction, it does not have such limitations. Also, it has no e32_dpp variant, so I do not understand why InsDPP may need a correction. What am I missing here? Comment Actions
Ok, sorry, I missed the fact that v_cndmask_b16 is a native VOP3 instruction. LGTM! Closed by commit rGbf96703fb3b4: [AMDGPU][MC][GFX8+] Correct v_cndmask modifiers (authored by dp). · Explain WhyOct 14 2022, 9:37 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 467546 llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
llvm/lib/Target/AMDGPU/VOP2Instructions.td
llvm/test/MC/AMDGPU/gfx10_asm_vop2.s
llvm/test/MC/AMDGPU/gfx10_err_pos.s
llvm/test/MC/AMDGPU/gfx11_asm_vop2_dpp16.s
llvm/test/MC/AMDGPU/gfx7_asm_vop3.s
llvm/test/MC/AMDGPU/gfx8_asm_vop2.s
llvm/test/MC/AMDGPU/gfx8_asm_vop3.s
llvm/test/MC/AMDGPU/gfx8_err_pos.s
llvm/test/MC/AMDGPU/gfx9_asm_vop2.s
llvm/test/MC/AMDGPU/gfx9_asm_vop3.s
llvm/test/MC/AMDGPU/gfx9_err_pos.s
llvm/test/MC/AMDGPU/vop_sdwa.s
llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_dpp16.txt
llvm/test/MC/Disassembler/AMDGPU/gfx10_vop2_sdwa.txt
llvm/test/MC/Disassembler/AMDGPU/gfx10_vop3.txt
llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop2_dpp16.txt
llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp8.txt
llvm/test/MC/Disassembler/AMDGPU/gfx8_vop2_dpp.txt
llvm/test/MC/Disassembler/AMDGPU/gfx8_vop2_sdwa.txt
llvm/test/MC/Disassembler/AMDGPU/gfx8_vop3.txt
llvm/test/MC/Disassembler/AMDGPU/gfx9_sdwa_features.txt
llvm/test/MC/Disassembler/AMDGPU/gfx9_vop2_dpp.txt
llvm/test/MC/Disassembler/AMDGPU/gfx9_vop3.txt
|