summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDuncan Sands <baldrick@free.fr>2009-02-04 11:17:06 +0000
committerDuncan Sands <baldrick@free.fr>2009-02-04 11:17:06 +0000
commite7d54791366437daf5cc1a7650633d9ab7cf7c9c (patch)
tree592f492381e067fc095fe6bf3aa55ab556bae761
parent1ea1173143db111b2e3d82a41e6413275c54f1e7 (diff)
downloadbcm5719-llvm-e7d54791366437daf5cc1a7650633d9ab7cf7c9c.tar.gz
bcm5719-llvm-e7d54791366437daf5cc1a7650633d9ab7cf7c9c.zip
Allow the inverse transform x86_fp80 -> i80 (also
fires during the Ada build). llvm-svn: 63731
-rw-r--r--llvm/lib/VMCore/ConstantFold.cpp13
-rw-r--r--llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll5
2 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/VMCore/ConstantFold.cpp b/llvm/lib/VMCore/ConstantFold.cpp
index 5f7cbcd0b60..ff4d897e54a 100644
--- a/llvm/lib/VMCore/ConstantFold.cpp
+++ b/llvm/lib/VMCore/ConstantFold.cpp
@@ -161,17 +161,12 @@ static Constant *FoldBitCast(Constant *V, const Type *DestTy) {
// Otherwise, can't fold this (vector?)
return 0;
}
-
+
// Handle ConstantFP input.
- if (const ConstantFP *FP = dyn_cast<ConstantFP>(V)) {
+ if (const ConstantFP *FP = dyn_cast<ConstantFP>(V))
// FP -> Integral.
- if (DestTy == Type::Int32Ty) {
- return ConstantInt::get(FP->getValueAPF().bitcastToAPInt());
- } else {
- assert(DestTy == Type::Int64Ty && "only support f32/f64 for now!");
- return ConstantInt::get(FP->getValueAPF().bitcastToAPInt());
- }
- }
+ return ConstantInt::get(FP->getValueAPF().bitcastToAPInt());
+
return 0;
}
diff --git a/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll b/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
index 4d7b70a1155..b08c9622502 100644
--- a/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
+++ b/llvm/test/Transforms/InstCombine/2009-02-04-FPBitcast.ll
@@ -5,3 +5,8 @@ define x86_fp80 @cast() {
%tmp = bitcast i80 0 to x86_fp80 ; <x86_fp80> [#uses=1]
ret x86_fp80 %tmp
}
+
+define i80 @invcast() {
+ %tmp = bitcast x86_fp80 0xK00000000000000000000 to i80 ; <i80> [#uses=1]
+ ret i80 %tmp
+}
OpenPOWER on IntegriCloud