summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index b4137dfe908..f69f18db8c5 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -2375,14 +2375,13 @@ int BoUpSLP::getEntryCost(TreeEntry *E) {
Instruction *I = cast<Instruction>(i);
if (!I)
break;
+ assert(S.isOpcodeOrAlt(I) && "Unexpected main/alternate opcode");
ScalarCost += TTI->getArithmeticInstrCost(I->getOpcode(), ScalarTy);
}
// VecCost is equal to sum of the cost of creating 2 vectors
// and the cost of creating shuffle.
- Instruction *I0 = cast<Instruction>(VL[0]);
- VecCost = TTI->getArithmeticInstrCost(I0->getOpcode(), VecTy);
- Instruction *I1 = cast<Instruction>(VL[1]);
- VecCost += TTI->getArithmeticInstrCost(I1->getOpcode(), VecTy);
+ VecCost = TTI->getArithmeticInstrCost(S.Opcode, VecTy);
+ VecCost += TTI->getArithmeticInstrCost(S.AltOpcode, VecTy);
VecCost += TTI->getShuffleCost(TargetTransformInfo::SK_Select, VecTy, 0);
return ReuseShuffleCost + VecCost - ScalarCost;
}
OpenPOWER on IntegriCloud