[PATCH] D70068: [SLP] Enhance SLPVectorizer to vectorize vector aggregate
Anton Afanasyev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 16 02:54:59 PST 2019
anton-afanasyev added a comment.
In D70068#1748108 <https://reviews.llvm.org/D70068#1748108>, @vporpo wrote:
> Well, ideally we should be able to handle any combination and nesting of scalars, vectors and aggregates in a unified way.
> For example:
>
> {float, <2 x float>, float},
> {float, float, <2 x float>},
> {{float, float}, <4 x float>, <2 x float>},
> {{float}, {float}, [2 x float]},
> {{{float, float}, float}, float}
>
>
> etc.
> This would require some redesign of the code, which is why I think it makes sense to have a single patch for all of them.
>
> But yes, feel free to split them into separate patches.
Actually I'm not sure vectorizer should support vectorization of _any_ combinations. For instance, does `add` operation make sense for structure like `{float, float, <2 x float>}` in real life (dictated by frontend output, mostly from )? I would focus on _homogeneous_ aggregate -- aggregate of equal type elements, including any nesting depth like `{{{float, float}, {float, float}},{{float, float}, {float, float}}}`.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D70068/new/
https://reviews.llvm.org/D70068
More information about the llvm-commits
mailing list