summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
diff options
context:
space:
mode:
authorJoey Gouly <joey.gouly@arm.com>2013-07-12 23:08:06 +0000
committerJoey Gouly <joey.gouly@arm.com>2013-07-12 23:08:06 +0000
commita3250f22c2637fe2752a1a5506e0411932208f16 (patch)
tree5d65a9e687b2ff6a20600c062685748b4f0939ec /llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
parent3deb0e7ca5e0bc0bdac8e29a17b46976f28c7c46 (diff)
downloadbcm5719-llvm-a3250f22c2637fe2752a1a5506e0411932208f16.tar.gz
bcm5719-llvm-a3250f22c2637fe2752a1a5506e0411932208f16.zip
Fix a crash in EvaluateInDifferentElementOrder where it would generate an
undef vector of the wrong type. LGTM'd by Nick Lewycky on IRC. llvm-svn: 186224
Diffstat (limited to 'llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp')
-rw-r--r--llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
index d43093d8316..f3de6e2d5c3 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp
@@ -732,7 +732,9 @@ InstCombiner::EvaluateInDifferentElementOrder(Value *V, ArrayRef<int> Mask) {
}
if (!Found)
- return UndefValue::get(I->getType());
+ return UndefValue::get(
+ VectorType::get(V->getType()->getScalarType(), Mask.size()));
+
Value *V = EvaluateInDifferentElementOrder(I->getOperand(0), Mask);
return InsertElementInst::Create(V, I->getOperand(1),
Builder->getInt32(Index), "", I);
OpenPOWER on IntegriCloud