[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