1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/test/CodeGen/X86/powi.ll
Chris Lattner 44298d184a 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.

llvm-svn: 92388
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