Originally isGatherShuffledEntry supports shuffles between 2 input
vectors of the same size. Actually, we can support the shuffles between
vectors of 2 different sizes. One of them (or both, for variable length
vector) just must be resized to match the sizes. Improves cost and the
vectorization itself.
Details
- Reviewers
RKSimon anton-afanasyev dtemirbulatov
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | ||
---|---|---|
7377–7379 | min index? Aren't you finding the max_element here? | |
7408 | Duplicate code - worth pulling this out as a helper? | |
7914 | We do this often enough - I'm wondering if we just add a helper to IRBuilder that creates an identity shuffle that pads/extracts a source Value to requested #elements size? | |
7946 | Worth putting all of this inside ShuffleInstructionBuilder ? |
llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | ||
---|---|---|
7946 | Currently it does not support shuffles between 2 input vectors. There are some other patches, where the lambda is added |
min index? Aren't you finding the max_element here?