summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorMatt Arsenault <Matthew.Arsenault@amd.com>2016-01-30 05:02:00 +0000
committerMatt Arsenault <Matthew.Arsenault@amd.com>2016-01-30 05:02:00 +0000
commit56c079f3934e8a76f3a60065d17e3a5dfdd39325 (patch)
treec10aba26e9fd3a52740becf25d76f1d96accde8c /llvm/test
parented0f1138857e8c90b18206686828453a56c3a76e (diff)
downloadbcm5719-llvm-56c079f3934e8a76f3a60065d17e3a5dfdd39325.tar.gz
bcm5719-llvm-56c079f3934e8a76f3a60065d17e3a5dfdd39325.zip
InstCombine: fabs(x) * fabs(x) -> x * x
llvm-svn: 259295
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/Transforms/InstCombine/fmul.ll29
1 files changed, 29 insertions, 0 deletions
diff --git a/llvm/test/Transforms/InstCombine/fmul.ll b/llvm/test/Transforms/InstCombine/fmul.ll
index ac3000fc051..25353e2ef26 100644
--- a/llvm/test/Transforms/InstCombine/fmul.ll
+++ b/llvm/test/Transforms/InstCombine/fmul.ll
@@ -152,3 +152,32 @@ define double @sqrt_squared2(double %f) {
; CHECK-NEXT: %mul2 = fmul double %sqrt, %f
; CHECK-NEXT: ret double %mul2
}
+
+declare float @llvm.fabs.f32(float) nounwind readnone
+
+; CHECK-LABEL @fabs_squared(
+; CHECK: %mul = fmul float %x, %x
+define float @fabs_squared(float %x) {
+ %x.fabs = call float @llvm.fabs.f32(float %x)
+ %mul = fmul float %x.fabs, %x.fabs
+ ret float %mul
+}
+
+; CHECK-LABEL @fabs_squared_fast(
+; CHECK: %mul = fmul fast float %x, %x
+define float @fabs_squared_fast(float %x) {
+ %x.fabs = call float @llvm.fabs.f32(float %x)
+ %mul = fmul fast float %x.fabs, %x.fabs
+ ret float %mul
+}
+
+; CHECK-LABEL @fabs_x_fabs(
+; CHECK: call float @llvm.fabs.f32(float %x)
+; CHECK: call float @llvm.fabs.f32(float %y)
+; CHECK: %mul = fmul float %x.fabs, %y.fabs
+define float @fabs_x_fabs(float %x, float %y) {
+ %x.fabs = call float @llvm.fabs.f32(float %x)
+ %y.fabs = call float @llvm.fabs.f32(float %y)
+ %mul = fmul float %x.fabs, %y.fabs
+ ret float %mul
+}
OpenPOWER on IntegriCloud