aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/ieee754
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-05-31 18:13:54 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2022-06-01 10:47:44 -0300
commit5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c (patch)
tree42acdf13f5f471a297a87d2f18769ff7bd9ca794 /sysdeps/ieee754
parentdc208f4a53e71560432ad6a4aa42da1becc7bd3f (diff)
downloadglibc-5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c.tar
glibc-5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c.tar.gz
glibc-5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c.tar.bz2
glibc-5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c.zip
i686: Use generic sincosf implementation for SSE2 version
The generic implementation shows slight better performance (gcc 11.2.1 on a Ryzen 9 5900X): * s_sincosf-sse2.S: "sincosf": { "workload-random": { "duration": 3.89961e+09, "iterations": 9.5472e+07, "reciprocal-throughput": 40.8429, "latency": 40.8483, "max-throughput": 2.4484e+07, "min-throughput": 2.44808e+07 } } * generic s_cossinf.c: "sincosf": { "workload-random": { "duration": 3.71953e+09, "iterations": 1.48512e+08, "reciprocal-throughput": 25.0515, "latency": 25.0391, "max-throughput": 3.99177e+07, "min-throughput": 3.99375e+07 } } Checked on i686-linux-gnu. Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
Diffstat (limited to 'sysdeps/ieee754')
-rw-r--r--sysdeps/ieee754/flt-32/s_sincosf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/ieee754/flt-32/s_sincosf.c b/sysdeps/ieee754/flt-32/s_sincosf.c
index 918f6a655a..4fab42d974 100644
--- a/sysdeps/ieee754/flt-32/s_sincosf.c
+++ b/sysdeps/ieee754/flt-32/s_sincosf.c
@@ -24,6 +24,10 @@
#include "math_config.h"
#include "s_sincosf.h"
+#ifndef SECTION
+# define SECTION
+#endif
+
#ifndef SINCOSF
# define SINCOSF_FUNC __sincosf
#else
@@ -35,6 +39,7 @@
small values. Large inputs have their range reduced using fast integer
arithmetic. */
void
+SECTION
SINCOSF_FUNC (float y, float *sinp, float *cosp)
{
double x = y;