glibc/sysdeps/powerpc/powerpc64/fpu
Adhemerval Zanella cfee7d9cf4 powerpc: Remove f{max,min}{f} assembly implementations
This patch removes the powerpc assembly implementation of fmax/fmin.
Based on benchtests, the assembly ones shows:

$ ./testrun.sh benchtests/bench-fmax
  "fmax": {
   "": {
    "duration": 5.07586e+09,
    "iterations": 2.01676e+09,
    "max": 1350.39,
    "min": 2.073,
    "mean": 2.51684
   },
   "qNaN": {
    "duration": 5.09315e+09,
    "iterations": 8.4568e+08,
    "max": 2788,
    "min": 5.806,
    "mean": 6.02255
   },
   "sNaN": {
    "duration": 5.09073e+09,
    "iterations": 8.42316e+08,
    "max": 4215.84,
    "min": 5.737,
    "mean": 6.04373
   }

And

$ ./testrun.sh benchtests/bench-fmin
  "fmin": {
   "": {
    "duration": 5.07711e+09,
    "iterations": 2.02982e+09,
    "max": 497.094,
    "min": 2.073,
    "mean": 2.50126
   },
   "qNaN": {
    "duration": 5.09134e+09,
    "iterations": 8.46968e+08,
    "max": 2255.14,
    "min": 5.807,
    "mean": 6.01125
   },
   "sNaN": {
    "duration": 5.09122e+09,
    "iterations": 8.4746e+08,
    "max": 1969.38,
    "min": 5.729,
    "mean": 6.00763
   }
  }

The default implementation (math/s_f{max.min}_template.c) shows slight better
latency for all cases:

$ ./testrun.sh benchtests/bench-fmax
  "fmax": {
   "": {
    "duration": 5.07044e+09,
    "iterations": 2.38695e+09,
    "max": 2048.58,
    "min": 2.073,
    "mean": 2.12423
   },
   "qNaN": {
    "duration": 5.09004e+09,
    "iterations": 9.45428e+08,
    "max": 3306.93,
    "min": 5.138,
    "mean": 5.38385
   },
   "sNaN": {
    "duration": 5.08458e+09,
    "iterations": 1.15959e+09,
    "max": 972.008,
    "min": 3.321,
    "mean": 4.3848
   }
  }

And:

$ ./testrun.sh benchtests/bench-fmin
  "fmin": {
   "": {
    "duration": 5.06817e+09,
    "iterations": 2.3913e+09,
    "max": 1177.9,
    "min": 2.073,
    "mean": 2.11942
   },
   "qNaN": {
    "duration": 5.08857e+09,
    "iterations": 9.45656e+08,
    "max": 2658.83,
    "min": 5.09,
    "mean": 5.38099
   },
   "sNaN": {
    "duration": 5.08093e+09,
    "iterations": 1.16725e+09,
    "max": 1030.74,
    "min": 3.323,
    "mean": 4.3529
   }
  }

Both were run with GCC 5.4 (ubuntu 16 default installation) using default
compiler flags on POWER8E 3.4GHz (powerpc64le-linux-gnu).
2016-12-27 17:42:09 -02:00
..
multiarch Use gcc attribute ifunc in libc_ifunc macro instead of inline assembly due to false debuginfo. 2016-10-07 10:03:20 +02:00
s_ceil.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_ceilf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_copysign.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_copysignf.S 2002-09-17 Steven Munroe <sjmunroe@us.ibm.com> 2002-09-17 23:50:03 +00:00
s_copysignl.S Stop powerpc copysignl raising "invalid" for sNaN argument (bug 20718). 2016-10-19 22:58:34 +00:00
s_fabs.S 2006-01-27 Dwayne Grant McConnell <decimal@us.ibm.com> 2006-01-28 00:15:15 +00:00
s_fabsl.S Avoid "invalid" exceptions from powerpc fabsl (sNaN) (bug 20157). 2016-05-27 15:29:31 +00:00
s_floor.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_floorf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_fma.S Implement accurate fma. 2010-10-13 22:27:03 -04:00
s_isnan.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_llrint.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_llrintf.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_llround.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_llroundf.S Update copyright dates with scripts/update-copyrights. 2016-01-04 16:05:18 +00:00
s_lrint.S * include/features.h (__GLIBC_MINOR__): Bump to 8. 2008-04-11 17:33:24 +00:00
s_lround.S * include/features.h (__GLIBC_MINOR__): Bump to 8. 2008-04-11 17:33:24 +00:00
s_lroundf.S * include/features.h (__GLIBC_MINOR__): Bump to 8. 2008-04-11 17:33:24 +00:00
s_nearbyint.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_nearbyintf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_rint.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_rintf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_round.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_roundf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_trunc.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00
s_truncf.S Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160). 2016-05-27 17:47:54 +00:00