summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-10-17 20:18:38 +0000
committerChris Lattner <sabre@nondot.org>2005-10-17 20:18:38 +0000
commitda1b152c4367d89fa34ec75a55a8427132f12cb8 (patch)
treef3dd2f09a69b9fb0b58c948e8db39ede266bf294 /llvm/lib/Transforms
parent7fde91e365fa8f172144043251f76bb89ead10c5 (diff)
downloadbcm5719-llvm-da1b152c4367d89fa34ec75a55a8427132f12cb8.tar.gz
bcm5719-llvm-da1b152c4367d89fa34ec75a55a8427132f12cb8.zip
Make this work for FP constantexprs
llvm-svn: 23773
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/InstructionCombining.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
index d92e126b080..f4d44a17755 100644
--- a/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
+++ b/llvm/lib/Transforms/Scalar/InstructionCombining.cpp
@@ -697,8 +697,9 @@ Instruction *InstCombiner::visitAdd(BinaryOperator &I) {
if (!I.getType()->isFloatingPoint()) { // NOTE: -0 + +0 = +0.
if (RHSC->isNullValue())
return ReplaceInstUsesWith(I, LHS);
- } else if (cast<ConstantFP>(RHSC)->isExactlyValue(-0.0)) {
- return ReplaceInstUsesWith(I, LHS);
+ } else if (ConstantFP *CFP = dyn_cast<ConstantFP>(RHSC)) {
+ if (CFP->isExactlyValue(-0.0))
+ return ReplaceInstUsesWith(I, LHS);
}
// X + (signbit) --> X ^ signbit
OpenPOWER on IntegriCloud