[PATCH] D134961: [AMDGPU][MC][GFX11] Correct v_fmac_.*_e64_dpp
Joe Nash via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 3 07:35:13 PDT 2022
Joe_Nash added a subscriber: rampitec.
Joe_Nash added a comment.
In D134961#3830721 <https://reviews.llvm.org/D134961#3830721>, @dp wrote:
>> If I understand the current state: e32 dpp is not creatable but is assemblable, e64 dpp is creatable but not assemblable.
>
> Correct. I'm not sure e64 dpp is creatable but at least it has $old operand.
>
>> Perhaps a way to fix _e64 is in the asmParser in cvtVOP3DPP ~L8900? I think it's treating the operand as src2 when it is actually the old operand.
>
> cvtVOP3DPP incorrectly handles $old because it is not tied to $dst.
>
> It seems possible to change cvtVOP3DPP to handle v_fmac opcodes correctly. But if we go that way, $src2 will be tied to $dst, but $old will be present but not tied. Is this acceptable?
I believe it is actually that way currently in main. And it seems to work in GCNDPPCombine at least. Though I have not strongly tested it, maybe it's wasting a register? @rampitec
Tablegen dump yields :
def V_FMAC_F32_e64_dpp
...
dag InOperandList = (ins anonymous_9483:$old ...
...
string Constraints = "$vdst = $src2";
string DisableEncoding = "$src2";
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D134961/new/
https://reviews.llvm.org/D134961
More information about the llvm-commits
mailing list