ia64: Use generic exp10f
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Thu, 9 Apr 2020 19:38:27 +0000 (16:38 -0300)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Fri, 19 Jun 2020 15:08:52 +0000 (12:08 -0300)
commit3297d019e108aa9d16fc5a6a5aee0854f377f289
tree354fbb1b8a72e34ebabbaee45d2b4cfc46129af4
parentbe668a8d782ab6bf363d4cdd7086295b5eebb8ea
ia64: Use generic exp10f

The generic implementation is slight worse (Itanium(R) Processor 9020):

Before new code:
  "exp10f": {
   "workload-spec2017.wrf (adapted)": {
    "duration": 3.61582e+08,
    "iterations": 2.384e+07,
    "reciprocal-throughput": 14.8334,
    "latency": 15.5006,
    "max-throughput": 6.74153e+07,
    "min-throughput": 6.45136e+07
   }
  }

With new code:
  "exp10f": {
   "workload-spec2017.wrf (adapted)": {
    "duration": 3.85549e+08,
    "iterations": 2.384e+07,
    "reciprocal-throughput": 15.8391,
    "latency": 16.5056,
    "max-throughput": 6.31348e+07,
    "min-throughput": 6.05857e+07
   }
  }

However it fixes all the issues on both:

  math/test-float-exp10
  math/test-float32-exp10

(all the issues wrong results for non default rounding modes).

The existing ia64 libm interface uses matherrf and matherrl in addition
to matherr for SVID error handling. However, there is no such error
handling support for exp10f in ia64 libm.  So replacing it with the
generic implementation should be fine.

Checked on ia64-linux-gnu.
sysdeps/ia64/fpu/e_exp10f.S [deleted file]
sysdeps/ia64/fpu/e_exp10f.c [new file with mode: 0644]
sysdeps/ia64/fpu/e_exp2f_data.c [deleted file]
sysdeps/ia64/fpu/libm-test-ulps
sysdeps/ia64/fpu/math_errf.c [deleted file]
sysdeps/ia64/fpu/w_exp10f.c [deleted file]
sysdeps/ia64/fpu/w_exp10f_compat.c [deleted file]