llvm/test/CodeGen/X86/powi.ll
Chris Lattner f031e8ad01 Teach codegen to lower llvm.powi to an efficient (but not optimal)
multiply sequence when the power is a constant integer.  Before, our
codegen for std::pow(.., int) always turned into a libcall, which was
really inefficient.

This should also make many gfortran programs happier I'd imagine.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92388 91177308-0d34-0410-b5e6-96231b3b80d8
2010-01-01 03:32:16 +00:00

12 lines
356 B
LLVM

; RUN: llc %s -march=x86 -mcpu=yonah -o - | grep mulsd | count 6
; Ideally this would compile to 5 multiplies.
define double @_Z3f10d(double %a) nounwind readonly ssp noredzone {
entry:
%0 = tail call double @llvm.powi.f64(double %a, i32 15) nounwind ; <double> [#uses=1]
ret double %0
}
declare double @llvm.powi.f64(double, i32) nounwind readonly