From: Sanjay Patel Date: Tue, 1 Sep 2020 13:41:43 +0000 (-0400) Subject: [InstCombine] adjust recip sqrt tests for better coverage; NFC X-Git-Tag: llvmorg-13-init~13208 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d48699e3e89f342ecb9dfc288f6840cd41ecb5e5;p=platform%2Fupstream%2Fllvm.git [InstCombine] adjust recip sqrt tests for better coverage; NFC Goes with D86726 --- diff --git a/llvm/test/Transforms/InstCombine/fmul-sqrt.ll b/llvm/test/Transforms/InstCombine/fmul-sqrt.ll index f2497d0..de030bb 100644 --- a/llvm/test/Transforms/InstCombine/fmul-sqrt.ll +++ b/llvm/test/Transforms/InstCombine/fmul-sqrt.ll @@ -101,34 +101,34 @@ define double @rsqrt_squared(double %x) { define double @rsqrt_x_reassociate_extra_use(double %x, double * %p) { ; CHECK-LABEL: @rsqrt_x_reassociate_extra_use( -; CHECK-NEXT: [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[X:%.*]]) -; CHECK-NEXT: [[RSQRT:%.*]] = fdiv fast double 1.000000e+00, [[SQRT]] -; CHECK-NEXT: [[RES:%.*]] = fmul reassoc double [[RSQRT]], [[X:%.*]] -; CHECK-NEXT: store double [[RSQRT]], double* %p +; CHECK-NEXT: [[SQRT:%.*]] = call double @llvm.sqrt.f64(double [[X:%.*]]) +; CHECK-NEXT: [[RSQRT:%.*]] = fdiv double 1.000000e+00, [[SQRT]] +; CHECK-NEXT: [[RES:%.*]] = fmul reassoc nsz double [[RSQRT]], [[X]] +; CHECK-NEXT: store double [[RSQRT]], double* [[P:%.*]], align 8 ; CHECK-NEXT: ret double [[RES]] ; - %sqrt = call fast double @llvm.sqrt.f64(double %x) - %rsqrt = fdiv fast double 1.0, %sqrt - %res = fmul reassoc double %rsqrt, %x + %sqrt = call double @llvm.sqrt.f64(double %x) + %rsqrt = fdiv double 1.0, %sqrt + %res = fmul reassoc nsz double %rsqrt, %x store double %rsqrt, double* %p ret double %res } -define double @x_add_y_rsqrt_reassociate_extra_use(double %x, double %y, double * %p) { +define <2 x float> @x_add_y_rsqrt_reassociate_extra_use(<2 x float> %x, <2 x float> %y, <2 x float>* %p) { ; CHECK-LABEL: @x_add_y_rsqrt_reassociate_extra_use( -; CHECK-NEXT: [[ADD:%.*]] = fadd fast double %x, %y -; CHECK-NEXT: [[SQRT:%.*]] = call fast double @llvm.sqrt.f64(double [[ADD]]) -; CHECK-NEXT: [[RSQRT:%.*]] = fdiv fast double 1.000000e+00, [[SQRT]] -; CHECK-NEXT: [[RES:%.*]] = fmul reassoc double [[ADD]], [[RSQRT]] -; CHECK-NEXT: store double [[RSQRT]], double* %p -; CHECK-NEXT: ret double [[RES]] +; CHECK-NEXT: [[ADD:%.*]] = fadd fast <2 x float> [[X:%.*]], [[Y:%.*]] +; CHECK-NEXT: [[SQRT:%.*]] = call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> [[ADD]]) +; CHECK-NEXT: [[RSQRT:%.*]] = fdiv fast <2 x float> , [[SQRT]] +; CHECK-NEXT: [[RES:%.*]] = fmul fast <2 x float> [[ADD]], [[RSQRT]] +; CHECK-NEXT: store <2 x float> [[RSQRT]], <2 x float>* [[P:%.*]], align 8 +; CHECK-NEXT: ret <2 x float> [[RES]] ; - %add = fadd fast double %x, %y ; thwart complexity-based canonicalization - %sqrt = call fast double @llvm.sqrt.f64(double %add) - %rsqrt = fdiv fast double 1.0, %sqrt - %res = fmul reassoc double %add, %rsqrt - store double %rsqrt, double* %p - ret double %res + %add = fadd fast <2 x float> %x, %y ; thwart complexity-based canonicalization + %sqrt = call fast <2 x float> @llvm.sqrt.v2f32(<2 x float> %add) + %rsqrt = fdiv fast <2 x float> , %sqrt + %res = fmul fast <2 x float> %add, %rsqrt + store <2 x float> %rsqrt, <2 x float>* %p + ret <2 x float> %res } define double @sqrt_divisor_squared(double %x, double %y) {