summaryrefslogtreecommitdiff
path: root/lib/Transforms/Vectorize/LoopVectorize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Transforms/Vectorize/LoopVectorize.cpp')
-rw-r--r--lib/Transforms/Vectorize/LoopVectorize.cpp8
1 files changed, 2 insertions, 6 deletions
diff --git a/lib/Transforms/Vectorize/LoopVectorize.cpp b/lib/Transforms/Vectorize/LoopVectorize.cpp
index ecbab63acf..d7d66e7916 100644
--- a/lib/Transforms/Vectorize/LoopVectorize.cpp
+++ b/lib/Transforms/Vectorize/LoopVectorize.cpp
@@ -5496,13 +5496,9 @@ LoopVectorizationCostModel::getInstructionCost(Instruction *I, unsigned VF) {
// Check for a splat of a constant or for a non uniform vector of constants.
if (isa<ConstantInt>(Op2))
Op2VK = TargetTransformInfo::OK_UniformConstantValue;
- else if (ConstantDataVector *CDV = dyn_cast<ConstantDataVector>(Op2)) {
+ else if (isa<ConstantVector>(Op2) || isa<ConstantDataVector>(Op2)) {
Op2VK = TargetTransformInfo::OK_NonUniformConstantValue;
- if (CDV->getSplatValue() != NULL)
- Op2VK = TargetTransformInfo::OK_UniformConstantValue;
- } else if (ConstantVector *CV = dyn_cast<ConstantVector>(Op2)) {
- Op2VK = TargetTransformInfo::OK_NonUniformConstantValue;
- if (CV->getSplatValue() != NULL)
+ if (cast<Constant>(Op2)->getSplatValue() != NULL)
Op2VK = TargetTransformInfo::OK_UniformConstantValue;
}