summaryrefslogtreecommitdiffstats
path: root/llvm/test/Transforms
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2015-11-18 23:21:32 +0000
committerDavide Italiano <davide@freebsd.org>2015-11-18 23:21:32 +0000
commitc5cedd195ac3546a2d9058ec9e7f4e62dce652a1 (patch)
treec1b9f48436c9fb7b4047047fe208353fc3f2627e /llvm/test/Transforms
parentf6645cce9195f7f94f2ac76a1e61dcf80e8dde69 (diff)
downloadbcm5719-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.ll15
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" }
OpenPOWER on IntegriCloud