diff options
author | David Majnemer <david.majnemer@gmail.com> | 2016-07-29 18:48:27 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2016-07-29 18:48:27 +0000 |
commit | 718da3d1f6976a1bf89f960519ddab1316637c9a (patch) | |
tree | 1310bb56d926915ab2c88d2c68b4bfa485bec452 /llvm/lib/Analysis/ConstantFolding.cpp | |
parent | 5207b5dcaea0971985a1229927a59166af83169b (diff) | |
download | llvm-718da3d1f6976a1bf89f960519ddab1316637c9a.zip llvm-718da3d1f6976a1bf89f960519ddab1316637c9a.tar.gz llvm-718da3d1f6976a1bf89f960519ddab1316637c9a.tar.bz2 |
[ConstantFolding] Handle bitcasts of undef fp vector elements
We used the wrong type for constructing a zero vector element which led
to type mismatches.
This fixes PR28771.
llvm-svn: 277197
Diffstat (limited to 'llvm/lib/Analysis/ConstantFolding.cpp')
-rw-r--r-- | llvm/lib/Analysis/ConstantFolding.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp index 60b94a9..39e422f 100644 --- a/llvm/lib/Analysis/ConstantFolding.cpp +++ b/llvm/lib/Analysis/ConstantFolding.cpp @@ -187,7 +187,7 @@ Constant *FoldBitCast(Constant *C, Type *DestTy, const DataLayout &DL) { for (unsigned j = 0; j != Ratio; ++j) { Constant *Src = C->getAggregateElement(SrcElt++); if (Src && isa<UndefValue>(Src)) - Src = Constant::getNullValue(SrcEltTy); + Src = Constant::getNullValue(C->getType()->getVectorElementType()); else Src = dyn_cast_or_null<ConstantInt>(Src); if (!Src) // Reject constantexpr elements. |