From: Sanjay Patel Date: Fri, 27 Sep 2019 18:38:51 +0000 (+0000) Subject: [InstSimplify] add tests for fma/fmuladd with undef operand; NFC X-Git-Tag: llvmorg-11-init~8105 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1b40402aa2bec5948ca64f5fa257ee010e89287f;p=platform%2Fupstream%2Fllvm.git [InstSimplify] add tests for fma/fmuladd with undef operand; NFC llvm-svn: 373109 --- diff --git a/llvm/test/Transforms/InstSimplify/call.ll b/llvm/test/Transforms/InstSimplify/call.ll index cc98502..3083e60 100644 --- a/llvm/test/Transforms/InstSimplify/call.ll +++ b/llvm/test/Transforms/InstSimplify/call.ll @@ -745,6 +745,60 @@ define i9 @fshr_shift_undef(i9 %x, i9 %y) { declare double @llvm.fma.f64(double,double,double) declare double @llvm.fmuladd.f64(double,double,double) +define double @fma_undef_op0(double %x, double %y) { +; CHECK-LABEL: @fma_undef_op0( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fma.f64(double undef, double [[X:%.*]], double [[Y:%.*]]) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fma.f64(double undef, double %x, double %y) + ret double %r +} + +define double @fma_undef_op1(double %x, double %y) { +; CHECK-LABEL: @fma_undef_op1( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fma.f64(double [[X:%.*]], double undef, double [[Y:%.*]]) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fma.f64(double %x, double undef, double %y) + ret double %r +} + +define double @fma_undef_op2(double %x, double %y) { +; CHECK-LABEL: @fma_undef_op2( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fma.f64(double [[X:%.*]], double [[Y:%.*]], double undef) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fma.f64(double %x, double %y, double undef) + ret double %r +} + +define double @fmuladd_undef_op0(double %x, double %y) { +; CHECK-LABEL: @fmuladd_undef_op0( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fmuladd.f64(double undef, double [[X:%.*]], double [[Y:%.*]]) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fmuladd.f64(double undef, double %x, double %y) + ret double %r +} + +define double @fmuladd_undef_op1(double %x, double %y) { +; CHECK-LABEL: @fmuladd_undef_op1( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fmuladd.f64(double [[X:%.*]], double undef, double [[Y:%.*]]) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fmuladd.f64(double %x, double undef, double %y) + ret double %r +} + +define double @fmuladd_undef_op2(double %x, double %y) { +; CHECK-LABEL: @fmuladd_undef_op2( +; CHECK-NEXT: [[R:%.*]] = call double @llvm.fmuladd.f64(double [[X:%.*]], double [[Y:%.*]], double undef) +; CHECK-NEXT: ret double [[R]] +; + %r = call double @llvm.fmuladd.f64(double %x, double %y, double undef) + ret double %r +} + define double @fma_nan_op0(double %x, double %y) { ; CHECK-LABEL: @fma_nan_op0( ; CHECK-NEXT: [[R:%.*]] = call double @llvm.fma.f64(double 0x7FF8000000000000, double [[X:%.*]], double [[Y:%.*]])