math: new powf
commitd28cd0ad428d63c186003fdf9c02470561650a04
authorSzabolcs Nagy <nsz@port70.net>
Sun, 22 Oct 2017 18:32:47 +0000 (22 18:32 +0000)
committerRich Felker <dalias@aerifal.cx>
Thu, 18 Apr 2019 03:44:01 +0000 (17 23:44 -0400)
tree730d1899c26c3e6542d7937b496559c9485174d3
parent3f94c648ef32c95fa7f5c94b5cb8f2b764fc1938
math: new powf

from https://github.com/ARM-software/optimized-routines,
commit 04884bd04eac4b251da4026900010ea7d8850edc

POWF_SCALE != 1.0 case only matters if TOINT_INTRINSICS is set, which
is currently not supported for any target.

SNaN is not supported, it would require an issignalingf
implementation.

code size change: -816 bytes.
benchmark on x86_64 before, after, speedup:

-Os:
  powf rthruput:  95.14 ns/call 20.04 ns/call 4.75x
   powf latency: 137.00 ns/call 34.98 ns/call 3.92x
-O3:
  powf rthruput:  92.48 ns/call 13.67 ns/call 6.77x
   powf latency: 131.11 ns/call 35.15 ns/call 3.73x
src/internal/libm.h
src/math/powf.c
src/math/powf_data.c [new file with mode: 0644]
src/math/powf_data.h [new file with mode: 0644]