[PATCH] D144689: [SLP]Improve handling gathers/buildvectors with undefs.
Alexey Bataev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 24 10:28:52 PST 2023
ABataev added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:1449
// Undefs are always profitable for extractelements.
if (isa<UndefValue>(V2))
+ return (isa<PoisonValue>(V2) || isUndefVector(EV1).all())
----------------
vdmitrie wrote:
> ABataev wrote:
> > vdmitrie wrote:
> > > This needs a bit of explanation (a comment).
> > We can easily combine `poison and extractelement <non-poison>` or `undef and extractelement <poison>`. But combining `undef + extractelement <non-poison-but-my-produce-poison>` requires some extra operations and it is not very effective to combine such elements (to preserve the difference between undefs and poison), rather than extractelement from the same EV1, even in reversed order.
> Thanks for explanation. I just meant to put it into the code as a comment.
Ok, will do
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D144689/new/
https://reviews.llvm.org/D144689
More information about the llvm-commits
mailing list