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.

llvm-svn: 244630

llvm/test/CodeGen/X86/powi.ll

index 6236960..bb1cf4f 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