summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-07-02 10:54:19 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-07-02 10:54:19 +0000
commit409bd5f48779a103895fbd0894c0326db2b2c052 (patch)
tree19b365975f68d4b179db5f41910b50903ebb76d6 /llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
parent8d4c01a7020f77abf78a2a94f4216c09b87b0114 (diff)
downloadbcm5719-llvm-409bd5f48779a103895fbd0894c0326db2b2c052.tar.gz
bcm5719-llvm-409bd5f48779a103895fbd0894c0326db2b2c052.zip
[SLPVectorizer] Only Alternate opcodes use ShuffleVector cases for getEntryCost/vectorizeTree. NFCI.
Add assertions - we're already assuming this in how we use the AltOpcode and treat everything as BinaryOperators. llvm-svn: 336092
Diffstat (limited to 'llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp')
-rw-r--r--llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
index 1bca876bbbd..b4137dfe908 100644
--- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
@@ -2350,6 +2350,9 @@ int BoUpSLP::getEntryCost(TreeEntry *E) {
return ReuseShuffleCost + VecCallCost - ScalarCallCost;
}
case Instruction::ShuffleVector: {
+ assert(S.isAltShuffle() && Instruction::isBinaryOp(S.Opcode) &&
+ Instruction::isBinaryOp(S.AltOpcode) &&
+ "Invalid Shuffle Vector Operand");
int ScalarCost = 0;
if (NeedToShuffleReuses) {
for (unsigned Idx : E->ReuseShuffleIndices) {
@@ -3461,7 +3464,8 @@ Value *BoUpSLP::vectorizeTree(TreeEntry *E) {
}
case Instruction::ShuffleVector: {
ValueList LHSVL, RHSVL;
- assert(Instruction::isBinaryOp(S.Opcode) &&
+ assert(S.isAltShuffle() && Instruction::isBinaryOp(S.Opcode) &&
+ Instruction::isBinaryOp(S.AltOpcode) &&
"Invalid Shuffle Vector Operand");
reorderAltShuffleOperands(S, E->Scalars, LHSVL, RHSVL);
setInsertPointAfterBundle(E->Scalars, S);
OpenPOWER on IntegriCloud