From 409bd5f48779a103895fbd0894c0326db2b2c052 Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Mon, 2 Jul 2018 10:54:19 +0000 Subject: [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 --- llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'llvm/lib/Transforms/Vectorize') 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); -- cgit v1.2.3