[PATCH] D70587: [SLP] Enhance SLPVectorizer to vectorize different combinations of aggregates
    Sanjay Patel via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon Nov 25 05:26:50 PST 2019
    
    
  
spatel added inline comments.
================
Comment at: llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp:6963
+                                            IE->getType(),
+                                            CI->getZExtValue());
+      }
----------------
RKSimon wrote:
> anton-afanasyev wrote:
> > RKSimon wrote:
> > > If the insertion index isn't constant we should call getVectorInstrCost with a ~0/-1 value
> > Hmm, what is `~0/-1` value exactly?
> > Also, I'm not sure the cost tuning is related to this commit -- the current logic is taken unchanged as it was before.
> OK, that's acceptable for now but we should be enabling this for non-const indices as well in a future patch.
> 
> getVectorInstrCost recognizes  the 'all bits set' insert/extract index argument as a non-constant index (which on most targets has a high cost).
> 
> @spatel is currently looking at this on x86 as part of PR43605
I was wondering about that -1 setting too. It's confusing because of the the way the cost model is organized with abstract class, concrete class, overrides, etc. But there is this documentation comment in TargetTransformInfo.h:
  /// \return The expected cost of vector Insert and Extract.
  /// Use -1 to indicate that there is no information on the index value.
  int getVectorInstrCost(unsigned Opcode, Type *Val, unsigned Index = -1) const;
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70587/new/
https://reviews.llvm.org/D70587
    
    
More information about the llvm-commits
mailing list