[PATCH] D92760: [SelectionDAG] Implement SplitVecOp_INSERT_SUBVECTOR
Paul Walker via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 9 02:41:00 PST 2020
paulwalker-arm added a comment.
In D92760#2442179 <https://reviews.llvm.org/D92760#2442179>, @david-arm wrote:
> If you can find a test that exposes the need for this split function with generic IR that would be really helpful I think - LLVM has managed for a long time without needing this split function so something has changed. I suspect it's probably just the new intrinsic that now exposes this code path.
Personally I think using the intrinsic as the test is better than trying to rely on an exact sequence of unluckiness to generate the failure.
For information I believe scalable vectors is what has changed. Specifically the changes we've made to INSERT_SUBVECTOR to allow a fixed-length vector to be extracted from/inserted into a scalable vector. Before this you'd only ever insert "fixed into fixed" or "scalable into scalable". Given the nature of INSERT_SUBVECTOR the operand is always smaller than the result and thus if the operand type is illegal then the result type must also be illegal, in which case SplitVecRes_INSERT_SUBVECTOR will handle type legalisation. However by allowing mixed vector types we've opened up the possibility for extracting an illegal vector type, that requires splitting to be made legal, from a legal one.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D92760/new/
https://reviews.llvm.org/D92760
More information about the llvm-commits
mailing list