[PATCH] D99719: [SLP] Better estimate cost of no-op extracts on target vectors.
Florian Hahn via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 2 10:55:14 PDT 2021
fhahn added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:3476
+ // Reached the start of a new vector registers.
+ if (Idx % EltsPerVector == 0) {
+ AllConsecutive = true;
----------------
MaskRay wrote:
> fhahn wrote:
> > MaskRay wrote:
> > > I have seen a case where
> > >
> > > ```
> > > VecTy->getNumElements() == 2
> > > NumOfParts == 4
> > > EltsPerVector == 0
> > > Idx == 0
> > > ```
> > >
> > > So divide-by-zero SIGFPE. Trying to reduce to a test case, but how should I paper over the problem quickly?
> > Oh right, that's interesting! Perhaps a vector with an element type that does not fit into a single register?
> >
> > For those cases, the logic below should not apply I think, so perhaps adding a build out on ExltsPerVector == 0 after computing it?
> `if (EltsPerVector == 0) return TTI.getShuffleCost(ShuffleKind, VecTy, Mask);` ?
Yes that was what I was thinking! It would be great to add a test case as well.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D99719/new/
https://reviews.llvm.org/D99719
More information about the llvm-commits
mailing list