diff options
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/CodeGen/X86/powi.ll | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/powi.ll b/llvm/test/CodeGen/X86/powi.ll index 623696057ca..bb1cf4fd7f9 100644 --- a/llvm/test/CodeGen/X86/powi.ll +++ b/llvm/test/CodeGen/X86/powi.ll @@ -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 |

