glibc/sysdeps/ieee754
Adhemerval Zanella 94d80dfc73 math: Use sign as double for reduced case in sinf
This patch avoid an extra floating point to integer conversion in
reduced internal function for generic sinf by defining the sign as
double instead of integers.

There is no much difference on Haswell with GCC 7.2.1:

           Before        After
min          9.11        9.108
mean       21.982      21.9224

However H.J. Lu reported gains on Skylake:

Before:

  "sinf": {
   "": {
    "duration": 3.4044e+10,
    "iterations": 1.9942e+09,
    "max": 141.106,
    "min": 7.704,
    "mean": 17.0715
   }
  }

After:

  "sinf": {
   "": {
    "duration": 3.40665e+10,
    "iterations": 2.03199e+09,
    "max": 95.994,
    "min": 7.704,
    "mean": 16.765
   }
  }

Checked on x86_64-linux-gnu.

	* sysdeps/ieee754/flt-32/s_sinf.c (ones): Define as double.
	(reduced): Use ones as double instead of integer.
2017-12-05 16:27:44 -02:00
..
dbl-64 Use libm_alias_double for dbl-64 fma. 2017-10-04 20:32:48 +00:00
float128 Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
flt-32 math: Use sign as double for reduced case in sinf 2017-12-05 16:27:44 -02:00
ldbl-64-128 Support strtof64x, wcstof64x aliases. 2017-11-24 22:51:53 +00:00
ldbl-96 Support strtof64x, wcstof64x aliases. 2017-11-24 22:51:53 +00:00
ldbl-128 Add _Float64x function aliases. 2017-11-27 14:16:47 +00:00
ldbl-128ibm Add C++ versions of iscanonical for ldbl-96 and ldbl-128ibm (bug 22235) 2017-10-03 16:01:37 -03:00
ldbl-opt Support _Float64, _Float32x in libm_alias_double. 2017-12-05 17:00:57 +00:00
ieee754.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
k_standard.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
k_standardf.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
k_standardl.c Prefer new libm function wrappers for !LIBM_SVID_COMPAT. 2017-09-05 23:35:55 +00:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Fix lgamma setting signgam for ISO C (bug 15421). 2015-11-20 22:49:59 +00:00