From 922dbb29f54f3d4867c0c4dfa46f5d3620e3fd13 Mon Sep 17 00:00:00 2001 From: David Bolvansky Date: Fri, 9 Aug 2019 15:52:26 +0000 Subject: [PATCH] [NFC] Added tests for D65898 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368447 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/Transforms/InstCombine/fabs-copysign.ll | 24 ++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/Transforms/InstCombine/fabs-copysign.ll b/test/Transforms/InstCombine/fabs-copysign.ll index ba4c67f5f35..9523b5c2a13 100644 --- a/test/Transforms/InstCombine/fabs-copysign.ll +++ b/test/Transforms/InstCombine/fabs-copysign.ll @@ -19,6 +19,17 @@ define double @fabs_copysign(double %x) { ret double %div } +define double @fabs_copysign_commuted(double %x) { +; CHECK-LABEL: @fabs_copysign_commuted( +; CHECK-NEXT: [[F:%.*]] = tail call double @llvm.fabs.f64(double [[X:%.*]]) +; CHECK-NEXT: [[DIV:%.*]] = fdiv nnan ninf double [[F]], [[X]] +; CHECK-NEXT: ret double [[DIV]] +; + %f = tail call double @llvm.fabs.f64(double %x) + %div = fdiv nnan ninf double %f, %x + ret double %div +} + define float @fabs_copysignf(float %x) { ; CHECK-LABEL: @fabs_copysignf( @@ -34,10 +45,12 @@ define float @fabs_copysignf(float %x) { define double @fabs_copysign_use(double %x) { ; CHECK-LABEL: @fabs_copysign_use( ; CHECK-NEXT: [[F:%.*]] = tail call double @llvm.fabs.f64(double [[X:%.*]]) +; CHECK-NEXT: call void @use(double [[F]]) ; CHECK-NEXT: [[DIV:%.*]] = fdiv nnan ninf double [[X]], [[F]] ; CHECK-NEXT: ret double [[DIV]] ; %f = tail call double @llvm.fabs.f64(double %x) + call void @use(double %f) %div = fdiv nnan ninf double %x, %f ret double %div } @@ -55,6 +68,17 @@ define double @fabs_copysign_mismatch(double %x, double %y) { ret double %div } +define double @fabs_copysign_commuted_mismatch(double %x, double %y) { +; CHECK-LABEL: @fabs_copysign_commuted_mismatch( +; CHECK-NEXT: [[F:%.*]] = tail call double @llvm.fabs.f64(double [[Y:%.*]]) +; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[F]], [[X:%.*]] +; CHECK-NEXT: ret double [[DIV]] +; + %f = tail call double @llvm.fabs.f64(double %y) + %div = fdiv double %f, %x + ret double %div +} + define double @fabs_copysign_no_nnan(double %x) { ; CHECK-LABEL: @fabs_copysign_no_nnan( ; CHECK-NEXT: [[F:%.*]] = tail call double @llvm.fabs.f64(double [[X:%.*]]) -- 2.40.0