From d28cd0ad428d63c186003fdf9c02470561650a04 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sun, 22 Oct 2017 18:32:47 +0000 Subject: 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 | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/internal') 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 -- cgit v1.2.1