glibc/sysdeps/ieee754/flt-32
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
..
e_acosf.c
e_acoshf.c
e_asinf.c
e_atan2f.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_atanhf.c
e_coshf.c
e_exp2f.c Add libm_alias_*_other_r macros. 2017-10-10 21:29:11 +00:00
e_exp2f_data.c Optimized generic expf and exp2f with wrappers 2017-09-25 10:44:39 +01:00
e_expf.c Add libm_alias_*_other_r macros. 2017-10-10 21:29:11 +00:00
e_fmodf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_gammaf_r.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_hypotf.c
e_ilogbf.c
e_j0f.c
e_j1f.c
e_jnf.c [BZ #22244] Fix yn(n,0) without SVID wrapper 2017-10-04 10:15:12 +01:00
e_lgammaf_r.c Use fabs(f/l) rather than __fabs 2017-09-29 18:54:24 +01:00
e_log2f.c Add libm_alias_*_other_r macros. 2017-10-10 21:29:11 +00:00
e_log2f_data.c New generic log2f 2017-09-29 17:17:41 +01:00
e_log10f.c Use fabs(f/l) rather than __fabs 2017-09-29 18:54:24 +01:00
e_logf.c Add libm_alias_*_other_r macros. 2017-10-10 21:29:11 +00:00
e_logf_data.c New generic logf 2017-09-29 11:46:46 +01:00
e_powf.c Add libm_alias_*_other_r macros. 2017-10-10 21:29:11 +00:00
e_powf_log2_data.c New generic powf 2017-09-29 17:30:53 +01:00
e_rem_pio2f.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_remainderf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
e_sinhf.c
e_sqrtf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
k_cosf.c
k_rem_pio2f.c
k_sinf.c
k_tanf.c
lgamma_negf.c
lgamma_productf.c
math_config.h New generic powf 2017-09-29 17:30:53 +01:00
math_errf.c Optimized generic expf and exp2f with wrappers 2017-09-25 10:44:39 +01:00
mpn2flt.c
s_asinhf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_atanf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_cbrtf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_ceilf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_copysignf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_cosf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_erff.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_expm1f.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fabsf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_finitef.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_floorf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fpclassifyf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_frexpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpf_main.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_fromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_getpayloadf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_isinff.c
s_isnanf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_issignalingf.c Consistently use uintN_t not u_intN_t in libm. 2017-08-03 19:55:04 +00:00
s_llrintf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_llroundf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_log1pf.c
s_logbf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_lrintf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_lroundf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_modff.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_nearbyintf.c Fix nearbyint arithmetic moved before feholdexcept (bug 22225). 2017-09-28 01:59:02 +00:00
s_nextafterf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_nextupf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_remquof.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_rintf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_roundevenf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_roundf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_scalblnf.c
s_scalbnf.c
s_setpayloadf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_setpayloadf_main.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_setpayloadsigf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_signbitf.c
s_sincosf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_sinf.c math: Use sign as double for reduced case in sinf 2017-12-05 16:27:44 -02:00
s_tanf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_tanhf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_totalorderf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_totalordermagf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_truncf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_ufromfpf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
s_ufromfpxf.c Use libm_alias_float in flt-32. 2017-09-22 20:24:12 +00:00
w_exp2f.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_expf.c Do not wrap expf and exp2f 2017-10-02 14:38:54 +01:00
w_log2f.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_logf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00
w_powf.c Do not wrap logf, log2f and powf 2017-10-02 14:39:38 +01:00