diff options
| author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-07-02 10:54:19 +0000 | 
|---|---|---|
| committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-07-02 10:54:19 +0000 | 
| commit | 409bd5f48779a103895fbd0894c0326db2b2c052 (patch) | |
| tree | 19b365975f68d4b179db5f41910b50903ebb76d6 /llvm/lib/Transforms/Vectorize | |
| parent | 8d4c01a7020f77abf78a2a94f4216c09b87b0114 (diff) | |
| download | bcm5719-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')
| -rw-r--r-- | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp | 6 | 
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);  | 

