[PATCH] D70400: [AMDGPU][GFX10] Disabled v_movrel*[sdwa|dpp] opcodes in codegen
Stanislav Mekhanoshin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 18 14:31:17 PST 2019
rampitec added a comment.
In D70400#1750597 <https://reviews.llvm.org/D70400#1750597>, @dp wrote:
> In D70400#1750450 <https://reviews.llvm.org/D70400#1750450>, @rampitec wrote:
>
> > Actually what makes them risky is impuse of M0, so it can be folded around M0 definition. Isn't it cleaner to check for impuse in the SDWA and DPP combiner and disable the combining on these grounds rather than excluding it from codegen completely?
>
>
> Maybe. But I do not understand how codegen can handle these instructions without knowing actual dst and src registers. To support _dpp and _sdwa variants codegen needs the same (or similar) hacks as those implemented for v_movreld_b32.
Hmm. I think you are right:
v1 = v_and_b32 v2, 0xf
v3 = v_movrels_b32 v1
Means: v3 = v1[m0], same as v3 = (v1 & 0xf)[m0]
After sdwa conversion it would be: v3 = v2[m0] & 0xf
Not exactly the same thing.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70400/new/
https://reviews.llvm.org/D70400
More information about the llvm-commits
mailing list