Index: llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp =================================================================== --- llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -2372,25 +2372,21 @@ return ReuseShuffleCost + VecCallCost - ScalarCallCost; } case Instruction::ShuffleVector: { - TargetTransformInfo::OperandValueKind Op1VK = - TargetTransformInfo::OK_AnyValue; - TargetTransformInfo::OperandValueKind Op2VK = - TargetTransformInfo::OK_AnyValue; int ScalarCost = 0; if (NeedToShuffleReuses) { for (unsigned Idx : E->ReuseShuffleIndices) { Instruction *I = cast(VL[Idx]); if (!I) continue; - ReuseShuffleCost -= TTI->getArithmeticInstrCost( - I->getOpcode(), ScalarTy, Op1VK, Op2VK); + ReuseShuffleCost -= + TTI->getArithmeticInstrCost(I->getOpcode(), ScalarTy); } for (Value *V : VL) { Instruction *I = cast(V); if (!I) continue; - ReuseShuffleCost += TTI->getArithmeticInstrCost( - I->getOpcode(), ScalarTy, Op1VK, Op2VK); + ReuseShuffleCost += + TTI->getArithmeticInstrCost(I->getOpcode(), ScalarTy); } } int VecCost = 0; @@ -2398,17 +2394,14 @@ Instruction *I = cast(i); if (!I) break; - ScalarCost += - TTI->getArithmeticInstrCost(I->getOpcode(), ScalarTy, Op1VK, Op2VK); + 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(VL[0]); - VecCost = - TTI->getArithmeticInstrCost(I0->getOpcode(), VecTy, Op1VK, Op2VK); + VecCost = TTI->getArithmeticInstrCost(I0->getOpcode(), VecTy); Instruction *I1 = cast(VL[1]); - VecCost += - TTI->getArithmeticInstrCost(I1->getOpcode(), VecTy, Op1VK, Op2VK); + VecCost += TTI->getArithmeticInstrCost(I1->getOpcode(), VecTy); VecCost += TTI->getShuffleCost(TargetTransformInfo::SK_Select, VecTy, 0); return ReuseShuffleCost + VecCost - ScalarCost; }