about summary refs log tree commit diff
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.gz
glibc-5a6f2cabb62b2d5e4c356718283b6cb7e440ac9c.tar.xz
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;