diff options
author | Dale Johannesen <dalej@apple.com> | 2009-09-25 20:54:50 +0000 |
---|---|---|
committer | Dale Johannesen <dalej@apple.com> | 2009-09-25 20:54:50 +0000 |
commit | f6a987b784800c04add49b0b50d8d383f8ed4c0b (patch) | |
tree | 836d8a51c1a1ba7e328f534c7c491fa68bd09781 /llvm/lib | |
parent | 48b185d6f718f0408a54bc7be8387beb3237cff3 (diff) | |
download | bcm5719-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.cpp | 10 |
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); } } |