[PATCH] D83542: [SVE] Don't consider scalable vector types in SLPVectorizerPass::vectorizeChainsInBlock
Eli Friedman via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 27 12:18:27 PDT 2020
efriedma added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:7396
+ TypeSize EltTS = DL->getTypeSizeInBits(EltTy);
+ if (EltTS.isScalable()) {
+ // For now, just ignore vectorizing scalable types.
----------------
david-arm wrote:
> david-arm wrote:
> > sdesmalen wrote:
> > > Should the check for scalable (+ corresponding code to bail out) be hoisted out of the `if (EltTy->isSized())` condition/block?
> > I'm not sure really. This change fixes the case I was interested, but not sure what it means if a type is not sized *and* scalable? I assumed that if a type wasn't sized then you couldn't call getTypeSizeInBits and hope to get a sensible answer. We only know if the type is scalable or not by asking for the TypeSize.
> Any further thoughts on this @sdesmalen ? If it's not sized then I can't ask the question if it's scalable or not.
The isSized() check here is nonsense: an instruction can't have an unsized result or operand type.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83542/new/
https://reviews.llvm.org/D83542
More information about the llvm-commits
mailing list