diff options
| author | Davide Italiano <davide@freebsd.org> | 2015-11-18 23:21:32 +0000 |
|---|---|---|
| committer | Davide Italiano <davide@freebsd.org> | 2015-11-18 23:21:32 +0000 |
| commit | c5cedd195ac3546a2d9058ec9e7f4e62dce652a1 (patch) | |
| tree | c1b9f48436c9fb7b4047047fe208353fc3f2627e /llvm/test/Transforms | |
| parent | f6645cce9195f7f94f2ac76a1e61dcf80e8dde69 (diff) | |
| download | bcm5719-llvm-c5cedd195ac3546a2d9058ec9e7f4e62dce652a1.tar.gz bcm5719-llvm-c5cedd195ac3546a2d9058ec9e7f4e62dce652a1.zip | |
[SimplifyLibCalls] New trick: pow(x, 0.5) -> sqrt(x) under -ffast-math.
Differential Revision: http://reviews.llvm.org/D14466
llvm-svn: 253521
Diffstat (limited to 'llvm/test/Transforms')
| -rw-r--r-- | llvm/test/Transforms/InstCombine/pow-sqrt.ll | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/pow-sqrt.ll b/llvm/test/Transforms/InstCombine/pow-sqrt.ll new file mode 100644 index 00000000000..8fc74e4a002 --- /dev/null +++ b/llvm/test/Transforms/InstCombine/pow-sqrt.ll @@ -0,0 +1,15 @@ +; RUN: opt < %s -instcombine -S | FileCheck %s + +define double @mypow(double %x) #0 { +entry: + %pow = call double @llvm.pow.f64(double %x, double 5.000000e-01) + ret double %pow +} + +; CHECK-LABEL: define double @mypow( +; CHECK: %sqrt = call double @sqrt(double %x) #1 +; CHECK: ret double %sqrt +; CHECK: } + +declare double @llvm.pow.f64(double, double) +attributes #0 = { "unsafe-fp-math"="true" } |

