[SLPVectorizer] Add an extra parameter to alreadyVectorized function, NFCI.
llvm-svn: 307996
This commit is contained in:
@@ -434,7 +434,7 @@ private:
|
||||
|
||||
/// \returns the pointer to the vectorized value if \p VL is already
|
||||
/// vectorized, or NULL. They may happen in cycles.
|
||||
Value *alreadyVectorized(ArrayRef<Value *> VL) const;
|
||||
Value *alreadyVectorized(ArrayRef<Value *> VL, Value *OpValue) const;
|
||||
|
||||
/// \returns the scalarization cost for this type. Scalarization in this
|
||||
/// context means the creation of vectors from a group of scalars.
|
||||
@@ -2427,8 +2427,8 @@ Value *BoUpSLP::Gather(ArrayRef<Value *> VL, VectorType *Ty) {
|
||||
return Vec;
|
||||
}
|
||||
|
||||
Value *BoUpSLP::alreadyVectorized(ArrayRef<Value *> VL) const {
|
||||
if (const TreeEntry *En = getTreeEntry(VL[0])) {
|
||||
Value *BoUpSLP::alreadyVectorized(ArrayRef<Value *> VL, Value *OpValue) const {
|
||||
if (const TreeEntry *En = getTreeEntry(OpValue)) {
|
||||
if (En->isSame(VL) && En->VectorizedValue)
|
||||
return En->VectorizedValue;
|
||||
}
|
||||
@@ -2553,7 +2553,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
|
||||
|
||||
Value *InVec = vectorizeTree(INVL);
|
||||
|
||||
if (Value *V = alreadyVectorized(E->Scalars))
|
||||
if (Value *V = alreadyVectorized(E->Scalars, VL0))
|
||||
return V;
|
||||
|
||||
CastInst *CI = dyn_cast<CastInst>(VL0);
|
||||
@@ -2575,7 +2575,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
|
||||
Value *L = vectorizeTree(LHSV);
|
||||
Value *R = vectorizeTree(RHSV);
|
||||
|
||||
if (Value *V = alreadyVectorized(E->Scalars))
|
||||
if (Value *V = alreadyVectorized(E->Scalars, VL0))
|
||||
return V;
|
||||
|
||||
CmpInst::Predicate P0 = cast<CmpInst>(VL0)->getPredicate();
|
||||
@@ -2604,7 +2604,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
|
||||
Value *True = vectorizeTree(TrueVec);
|
||||
Value *False = vectorizeTree(FalseVec);
|
||||
|
||||
if (Value *V = alreadyVectorized(E->Scalars))
|
||||
if (Value *V = alreadyVectorized(E->Scalars, VL0))
|
||||
return V;
|
||||
|
||||
Value *V = Builder.CreateSelect(Cond, True, False);
|
||||
@@ -2644,7 +2644,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
|
||||
Value *LHS = vectorizeTree(LHSVL);
|
||||
Value *RHS = vectorizeTree(RHSVL);
|
||||
|
||||
if (Value *V = alreadyVectorized(E->Scalars))
|
||||
if (Value *V = alreadyVectorized(E->Scalars, VL0))
|
||||
return V;
|
||||
|
||||
BinaryOperator *BinOp = cast<BinaryOperator>(VL0);
|
||||
@@ -2806,7 +2806,7 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
|
||||
Value *LHS = vectorizeTree(LHSVL);
|
||||
Value *RHS = vectorizeTree(RHSVL);
|
||||
|
||||
if (Value *V = alreadyVectorized(E->Scalars))
|
||||
if (Value *V = alreadyVectorized(E->Scalars, VL0))
|
||||
return V;
|
||||
|
||||
// Create a vector of LHS op1 RHS
|
||||
|
||||
Reference in New Issue
Block a user