summaryrefslogtreecommitdiff
path: root/src/internal
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2017-10-22 18:32:47 +0000
committerRich Felker <dalias@aerifal.cx>2019-04-17 23:44:01 -0400
commitd28cd0ad428d63c186003fdf9c02470561650a04 (patch)
tree730d1899c26c3e6542d7937b496559c9485174d3 /src/internal
parent3f94c648ef32c95fa7f5c94b5cb8f2b764fc1938 (diff)
downloadmusl-d28cd0ad428d63c186003fdf9c02470561650a04.tar.gz
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
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/libm.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/internal/libm.h b/src/internal/libm.h
index 98bf5c68..9cd105fc 100644
--- a/src/internal/libm.h
+++ b/src/internal/libm.h
@@ -64,6 +64,12 @@ union ldshape {
/* Support signaling NaNs. */
#define WANT_SNAN 0
+#if WANT_SNAN
+#error SNaN is unsupported
+#else
+#define issignalingf_inline(x) 0
+#endif
+
#ifndef TOINT_INTRINSICS
#define TOINT_INTRINSICS 0
#endif