[PATCH] D92228: [RISCV] Add MIR tests exposing missed InstAliases
ShihPo Hung via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 3 01:21:00 PST 2020
arcbbb added a comment.
In D92228#2424007 <https://reviews.llvm.org/D92228#2424007>, @rogfer01 wrote:
> 2. Regarding `@earlyclobber`, yes it is not ideal as it is now. But it doesn't only impact masking (though perhaps that is the clearest case).
>
> Unless the ISA has changed (and I admit I might be a bit outdated here) my understanding is that we still have cases where `@earlyclobber` will be needed and it will still fall short.
>
> For instance, mixed widenings such as `vwadd.wv` are complex to model because iirc an instruction like `vwadd.wv v2, v2, v1` is fine while `vwadd.wv v2, v2, v3` is not. I understand that using `@earlyclobber` a thing like `vwadd.wv v4, v2, v1` is the best we can get.
>
> I asked about this here http://lists.llvm.org/pipermail/llvm-dev/2020-May/141383.html
Thank you for the sharing, @rogfer01.
This is a good case that shows I cannot get an ideal RA by just duplicating a set of masked/unmasked pseudos.
In this `vwadd.wv` case,
; Assume LMUL=M1, EMUL=M2
; Widening signed integer add, 2*SEW = 2*SEW +/- SEW
vwadd.wv {v2,v3}, {v2 v3}, v4 ; valid: vd eew == vs2 eew
vwadd.wv {v4,v5}, {v2 v3}, v5 ; valid: vd eew > vs1 eew, overlap is in the highest-numbered part.
vwadd.wv {v4,v5}, {v2 v3}, v4 ; invalid
A register class constraint still falls short for this.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92228/new/
https://reviews.llvm.org/D92228
More information about the llvm-commits
mailing list