diff options
author | Joey Gouly <joey.gouly@arm.com> | 2013-07-12 23:08:06 +0000 |
---|---|---|
committer | Joey Gouly <joey.gouly@arm.com> | 2013-07-12 23:08:06 +0000 |
commit | a3250f22c2637fe2752a1a5506e0411932208f16 (patch) | |
tree | 5d65a9e687b2ff6a20600c062685748b4f0939ec /llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp | |
parent | 3deb0e7ca5e0bc0bdac8e29a17b46976f28c7c46 (diff) | |
download | bcm5719-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.cpp | 4 |
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); |