[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