summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2009-09-25 20:54:50 +0000
committerDale Johannesen <dalej@apple.com>2009-09-25 20:54:50 +0000
commitf6a987b784800c04add49b0b50d8d383f8ed4c0b (patch)
tree836d8a51c1a1ba7e328f534c7c491fa68bd09781 /llvm/lib
parent48b185d6f718f0408a54bc7be8387beb3237cff3 (diff)
downloadbcm5719-llvm-f6a987b784800c04add49b0b50d8d383f8ed4c0b.tar.gz
bcm5719-llvm-f6a987b784800c04add49b0b50d8d383f8ed4c0b.zip
Handle sqrt in CannotBeNegativeZero. absf and absl
appear to be misspellings, removed in favor of fabs*. llvm-svn: 82796
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 9494a2f4c53..baa347a6638 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -840,9 +840,13 @@ bool llvm::CannotBeNegativeZero(const Value *V, unsigned Depth) {
if (F->isDeclaration()) {
// abs(x) != -0.0
if (F->getName() == "abs") return true;
- // abs[lf](x) != -0.0
- if (F->getName() == "absf") return true;
- if (F->getName() == "absl") return true;
+ // fabs[lf](x) != -0.0
+ if (F->getName() == "fabs") return true;
+ if (F->getName() == "fabsf") return true;
+ if (F->getName() == "fabsl") return true;
+ if (F->getName() == "sqrt" || F->getName() == "sqrtf" ||
+ F->getName() == "sqrtl")
+ return CannotBeNegativeZero(CI->getOperand(1), Depth+1);
}
}
OpenPOWER on IntegriCloud