[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