From: Sanjay Patel Date: Mon, 8 Apr 2019 20:37:34 +0000 (+0000) Subject: [InstCombine] add extra-use tests for fmul+sqrt; NFC X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5b6d7be67cbd1e1afbd3a1540b70029de323a095;p=llvm [InstCombine] add extra-use tests for fmul+sqrt; NFC git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357939 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Transforms/InstCombine/fmul-sqrt.ll b/test/Transforms/InstCombine/fmul-sqrt.ll index 62e57cdc3e1..1a95c72f31d 100644 --- a/test/Transforms/InstCombine/fmul-sqrt.ll +++ b/test/Transforms/InstCombine/fmul-sqrt.ll @@ -127,6 +127,36 @@ define double @sqrt_dividend_squared(double %x, double %y) { ret double %squared } +define double @sqrt_divisor_squared_extra_use(double %x, double %y) { +; CHECK-LABEL: @sqrt_divisor_squared_extra_use( +; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]]) +; CHECK-NEXT: [[DIV:%.*]] = fdiv double [[Y:%.*]], [[SQRT]] +; CHECK-NEXT: call void @use(double [[DIV]]) +; CHECK-NEXT: [[SQUARED:%.*]] = fmul reassoc nnan nsz double [[DIV]], [[DIV]] +; CHECK-NEXT: ret double [[SQUARED]] +; + %sqrt = call double @llvm.sqrt.f64(double %x) + %div = fdiv double %y, %sqrt + call void @use(double %div) + %squared = fmul reassoc nnan nsz double %div, %div + ret double %squared +} + +define double @sqrt_dividend_squared_extra_use(double %x, double %y) { +; CHECK-LABEL: @sqrt_dividend_squared_extra_use( +; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]]) +; CHECK-NEXT: call void @use(double [[SQRT]]) +; CHECK-NEXT: [[DIV:%.*]] = fdiv fast double [[SQRT]], [[Y:%.*]] +; CHECK-NEXT: [[SQUARED:%.*]] = fmul fast double [[DIV]], [[DIV]] +; CHECK-NEXT: ret double [[SQUARED]] +; + %sqrt = call double @llvm.sqrt.f64(double %x) + call void @use(double %sqrt) + %div = fdiv fast double %sqrt, %y + %squared = fmul fast double %div, %div + ret double %squared +} + ; Negative test - require 'nsz'. define double @sqrt_divisor_not_enough_FMF(double %x, double %y) {