[llvm] r368445 - [AArch64][x86] add tests for pessimization of expression with X*2.0 (PR32939); NFC

Sanjay Patel via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 9 07:52:31 PDT 2019


Author: spatel
Date: Fri Aug  9 07:52:31 2019
New Revision: 368445

URL: http://llvm.org/viewvc/llvm-project?rev=368445&view=rev
Log:
[AArch64][x86] add tests for pessimization of expression with X*2.0 (PR32939); NFC

Modified:
    llvm/trunk/test/CodeGen/AArch64/fadd-combines.ll
    llvm/trunk/test/CodeGen/X86/fadd-combines.ll

Modified: llvm/trunk/test/CodeGen/AArch64/fadd-combines.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/AArch64/fadd-combines.ll?rev=368445&r1=368444&r2=368445&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/AArch64/fadd-combines.ll (original)
+++ llvm/trunk/test/CodeGen/AArch64/fadd-combines.ll Fri Aug  9 07:52:31 2019
@@ -164,5 +164,35 @@ define float @fadd_const_multiuse_attr(f
   ret float %a3
 }
 
+; PR32939 - https://bugs.llvm.org/show_bug.cgi?id=32939
+
+define double @fmul2_negated(double %a, double %b, double %c) {
+; CHECK-LABEL: fmul2_negated:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    fmov d3, #-2.00000000
+; CHECK-NEXT:    fmul d1, d1, d3
+; CHECK-NEXT:    fmul d1, d1, d2
+; CHECK-NEXT:    fadd d0, d0, d1
+; CHECK-NEXT:    ret
+  %mul = fmul double %b, 2.0
+  %mul1 = fmul double %mul, %c
+  %sub = fsub double %a, %mul1
+  ret double %sub
+}
+
+define <2 x double> @fmul2_negated_vec(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
+; CHECK-LABEL: fmul2_negated_vec:
+; CHECK:       // %bb.0:
+; CHECK-NEXT:    fmov v3.2d, #-2.00000000
+; CHECK-NEXT:    fmul v1.2d, v1.2d, v3.2d
+; CHECK-NEXT:    fmul v1.2d, v1.2d, v2.2d
+; CHECK-NEXT:    fadd v0.2d, v0.2d, v1.2d
+; CHECK-NEXT:    ret
+  %mul = fmul <2 x double> %b, <double 2.0, double 2.0>
+  %mul1 = fmul <2 x double> %mul, %c
+  %sub = fsub <2 x double> %a, %mul1
+  ret <2 x double> %sub
+}
+
 declare void @use(double)
 

Modified: llvm/trunk/test/CodeGen/X86/fadd-combines.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/fadd-combines.ll?rev=368445&r1=368444&r2=368445&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/X86/fadd-combines.ll (original)
+++ llvm/trunk/test/CodeGen/X86/fadd-combines.ll Fri Aug  9 07:52:31 2019
@@ -247,4 +247,32 @@ define float @fadd_const_multiuse_attr(f
   ret float %a3
 }
 
+; PR32939 - https://bugs.llvm.org/show_bug.cgi?id=32939
+
+define double @fmul2_negated(double %a, double %b, double %c) {
+; CHECK-LABEL: fmul2_negated:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    mulsd {{.*}}(%rip), %xmm1
+; CHECK-NEXT:    mulsd %xmm2, %xmm1
+; CHECK-NEXT:    addsd %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %mul = fmul double %b, 2.0
+  %mul1 = fmul double %mul, %c
+  %sub = fsub double %a, %mul1
+  ret double %sub
+}
+
+define <2 x double> @fmul2_negated_vec(<2 x double> %a, <2 x double> %b, <2 x double> %c) {
+; CHECK-LABEL: fmul2_negated_vec:
+; CHECK:       # %bb.0:
+; CHECK-NEXT:    mulpd {{.*}}(%rip), %xmm1
+; CHECK-NEXT:    mulpd %xmm2, %xmm1
+; CHECK-NEXT:    addpd %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %mul = fmul <2 x double> %b, <double 2.0, double 2.0>
+  %mul1 = fmul <2 x double> %mul, %c
+  %sub = fsub <2 x double> %a, %mul1
+  ret <2 x double> %sub
+}
+
 attributes #0 = { "less-precise-fpmad"="true" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "unsafe-fp-math"="true" "no-signed-zeros-fp-math"="true" }




More information about the llvm-commits mailing list