add missing tests for powi expansion with size optimizations
authorSanjay Patel <spatel@rotateright.com>
Tue, 11 Aug 2015 16:58:49 +0000 (16:58 +0000)
committerSanjay Patel <spatel@rotateright.com>
Tue, 11 Aug 2015 16:58:49 +0000 (16:58 +0000)
The minsize test will be fixed in the next commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@244630 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/powi.ll

index 623696057caad755ccee35d863e0f9d62c199308..bb1cf4fd7f980f0d23a2e66b4d777cfb6463d824 100644 (file)
@@ -17,5 +17,32 @@ define double @pow_wrapper(double %a) nounwind readonly ssp noredzone {
   ret double %ret
 }
 
+define double @pow_wrapper_optsize(double %a) optsize  {
+; CHECK-LABEL: pow_wrapper_optsize:
+; CHECK:       # BB#0:
+; CHECK-NEXT:    movl  $15, %edi
+; CHECK-NEXT:    jmp
+  %ret = tail call double @llvm.powi.f64(double %a, i32 15) nounwind ; <double> [#uses=1]
+  ret double %ret
+}
+
+; FIXME: Should not expand with minsize
+
+define double @pow_wrapper_minsize(double %a) minsize  {
+; CHECK-LABEL: pow_wrapper_minsize:
+; CHECK:       # BB#0:
+; CHECK-NEXT:    movapd %xmm0, %xmm1
+; CHECK-NEXT:    mulsd %xmm1, %xmm1
+; CHECK-NEXT:    mulsd %xmm1, %xmm0
+; CHECK-NEXT:    mulsd %xmm1, %xmm1
+; CHECK-NEXT:    mulsd %xmm1, %xmm0
+; CHECK-NEXT:    mulsd %xmm1, %xmm1
+; CHECK-NEXT:    mulsd %xmm0, %xmm1
+; CHECK-NEXT:    movapd %xmm1, %xmm0
+; CHECK-NEXT:    retq
+  %ret = tail call double @llvm.powi.f64(double %a, i32 15) nounwind ; <double> [#uses=1]
+  ret double %ret
+}
+
 declare double @llvm.powi.f64(double, i32) nounwind readonly