[PATCH] D117235: [SelectionDAG][VP] Add splitting/widening for VP_LOAD and VP_STORE
Fraser Cormack via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Jan 14 07:16:18 PST 2022
frasercrmck added a comment.
In D117235#3242096 <https://reviews.llvm.org/D117235#3242096>, @craig.topper wrote:
> Is it worth testing a case that needs widening followed by splitting. Basically any non-power of 2 that rounds up to something that needs splitting. Bonus points if it needs enough splitting to trigger the `HiIsEmpty` is empty case.
It's definitely worth it in that it showed a few things we've yet to solve!
For starters, I couldn't test `ret <vscale x 33 x double>` which, since it uses all vector return registers, is lowered as a regular `store <vscale x 33 x double>` and we can't widen that. I did add scalable `STORE` widening via `VP_STORE` but that's only if the type is legal. Maybe we can loosen that restriction, I dunno (that kinda goes against what you're recommending later about legalization via widening, though).
Another issue I found was in lowering a `<33 x double>` `vp.store` function, where we run out of registers during register allocation. The argument lowering looks terrible but I haven't investigated what's going on.
Anyways, I did manage to add some testing, at least.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D117235/new/
https://reviews.llvm.org/D117235
More information about the llvm-commits
mailing list