This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH v3 0/2] Fix up soft-fp issue


These patches fix up the issues of soft-fp as follows:
1. We found a wrong calculation of division when we testing the RV32.
  There is the same problem in libgcc. Because some math test cases of glibc
  testsuite link the libgcc library, so we have to fix it in gcc together,
  otherwise, there are some math test case failures (see the end).
  We expected to submit this modification to gcc to update the op-4.h after
  glibc accept this patch.
2. RV32 needs new macros implementation of soft floating for 128 bit support.

These patches are verified by passing all math test cases of glibc testsuite.

Changes in v3:
 - In op-8.h, modify the coding style about spliting multiple lines.

Changes in v2:
 - In op-4.h, fix the problem in FRAC_SUB function, not in use site.
 - In op-8.h, change the variable name for naming rule.

Record the failures of math test cases without gcc modification:
FAIL: math/test-double-ldouble-div
FAIL: math/test-float128-atan2
FAIL: math/test-float128-cacos
FAIL: math/test-float128-cacosh
FAIL: math/test-float128-casin
FAIL: math/test-float128-casinh
FAIL: math/test-float128-catan
FAIL: math/test-float128-catanh
FAIL: math/test-float128-clog
FAIL: math/test-float128-clog10
FAIL: math/test-float128-ctan
FAIL: math/test-float128-ctanh
FAIL: math/test-float128-erfc
FAIL: math/test-float128-finite-atan2
FAIL: math/test-float128-finite-cacos
FAIL: math/test-float128-finite-cacosh
FAIL: math/test-float128-finite-casin
FAIL: math/test-float128-finite-casinh
FAIL: math/test-float128-finite-catan
FAIL: math/test-float128-finite-catanh
FAIL: math/test-float128-finite-clog
FAIL: math/test-float128-finite-clog10
FAIL: math/test-float128-finite-ctan
FAIL: math/test-float128-finite-ctanh
FAIL: math/test-float128-finite-erfc
FAIL: math/test-float128-finite-j1
FAIL: math/test-float128-finite-lgamma
FAIL: math/test-float128-finite-tanh
FAIL: math/test-float128-finite-tgamma
FAIL: math/test-float128-j1
FAIL: math/test-float128-lgamma
FAIL: math/test-float128-tanh
FAIL: math/test-float128-tgamma
FAIL: math/test-float32x-float128-div
FAIL: math/test-float32x-float64x-div
FAIL: math/test-float64-float128-div
FAIL: math/test-float64-float64x-div
FAIL: math/test-float64x-atan2
FAIL: math/test-float64x-cacos
FAIL: math/test-float64x-cacosh
FAIL: math/test-float64x-casin
FAIL: math/test-float64x-casinh
FAIL: math/test-float64x-catan
FAIL: math/test-float64x-catanh
FAIL: math/test-float64x-clog
FAIL: math/test-float64x-clog10
FAIL: math/test-float64x-ctan
FAIL: math/test-float64x-ctanh
FAIL: math/test-float64x-erfc
FAIL: math/test-float64x-finite-atan2
FAIL: math/test-float64x-finite-cacos
FAIL: math/test-float64x-finite-cacosh
FAIL: math/test-float64x-finite-casin
FAIL: math/test-float64x-finite-casinh
FAIL: math/test-float64x-finite-catan
FAIL: math/test-float64x-finite-catanh
FAIL: math/test-float64x-finite-clog
FAIL: math/test-float64x-finite-clog10
FAIL: math/test-float64x-finite-ctan
FAIL: math/test-float64x-finite-ctanh
FAIL: math/test-float64x-finite-erfc
FAIL: math/test-float64x-finite-j1
FAIL: math/test-float64x-finite-lgamma
FAIL: math/test-float64x-finite-tanh
FAIL: math/test-float64x-finite-tgamma
FAIL: math/test-float64x-float128-div
FAIL: math/test-float64x-j1
FAIL: math/test-float64x-lgamma
FAIL: math/test-float64x-tanh
FAIL: math/test-float64x-tgamma
FAIL: math/test-ifloat128-atan2
FAIL: math/test-ifloat128-cacos
FAIL: math/test-ifloat128-cacosh
FAIL: math/test-ifloat128-casin
FAIL: math/test-ifloat128-casinh
FAIL: math/test-ifloat128-catan
FAIL: math/test-ifloat128-catanh
FAIL: math/test-ifloat128-clog
FAIL: math/test-ifloat128-clog10
FAIL: math/test-ifloat128-ctan
FAIL: math/test-ifloat128-ctanh
FAIL: math/test-ifloat128-erfc
FAIL: math/test-ifloat128-j1
FAIL: math/test-ifloat128-lgamma
FAIL: math/test-ifloat128-tanh
FAIL: math/test-ifloat128-tgamma
FAIL: math/test-ifloat64x-atan2
FAIL: math/test-ifloat64x-cacos
FAIL: math/test-ifloat64x-cacosh
FAIL: math/test-ifloat64x-casin
FAIL: math/test-ifloat64x-casinh
FAIL: math/test-ifloat64x-catan
FAIL: math/test-ifloat64x-catanh
FAIL: math/test-ifloat64x-clog
FAIL: math/test-ifloat64x-clog10
FAIL: math/test-ifloat64x-ctan
FAIL: math/test-ifloat64x-ctanh
FAIL: math/test-ifloat64x-erfc
FAIL: math/test-ifloat64x-j1
FAIL: math/test-ifloat64x-lgamma
FAIL: math/test-ifloat64x-tanh
FAIL: math/test-ifloat64x-tgamma
FAIL: math/test-ildouble-atan2
FAIL: math/test-ildouble-cacos
FAIL: math/test-ildouble-cacosh
FAIL: math/test-ildouble-casin
FAIL: math/test-ildouble-casinh
FAIL: math/test-ildouble-catan
FAIL: math/test-ildouble-catanh
FAIL: math/test-ildouble-clog
FAIL: math/test-ildouble-clog10
FAIL: math/test-ildouble-ctan
FAIL: math/test-ildouble-ctanh
FAIL: math/test-ildouble-erfc
FAIL: math/test-ildouble-j1
FAIL: math/test-ildouble-lgamma
FAIL: math/test-ildouble-tanh
FAIL: math/test-ildouble-tgamma
FAIL: math/test-ldouble-atan2
FAIL: math/test-ldouble-cacos
FAIL: math/test-ldouble-cacosh
FAIL: math/test-ldouble-casin
FAIL: math/test-ldouble-casinh
FAIL: math/test-ldouble-catan
FAIL: math/test-ldouble-catanh
FAIL: math/test-ldouble-clog
FAIL: math/test-ldouble-clog10
FAIL: math/test-ldouble-ctan
FAIL: math/test-ldouble-ctanh
FAIL: math/test-ldouble-erfc
FAIL: math/test-ldouble-finite-atan2
FAIL: math/test-ldouble-finite-cacos
FAIL: math/test-ldouble-finite-cacosh
FAIL: math/test-ldouble-finite-casin
FAIL: math/test-ldouble-finite-casinh
FAIL: math/test-ldouble-finite-catan
FAIL: math/test-ldouble-finite-catanh
FAIL: math/test-ldouble-finite-clog
FAIL: math/test-ldouble-finite-clog10
FAIL: math/test-ldouble-finite-ctan
FAIL: math/test-ldouble-finite-ctanh
FAIL: math/test-ldouble-finite-erfc
FAIL: math/test-ldouble-finite-j1
FAIL: math/test-ldouble-finite-lgamma
FAIL: math/test-ldouble-finite-tanh
FAIL: math/test-ldouble-finite-tgamma
FAIL: math/test-ldouble-j1
FAIL: math/test-ldouble-lgamma
FAIL: math/test-ldouble-tanh
FAIL: math/test-ldouble-tgamma

Zong Li (2):
  soft-fp: Use temporary variable in FP_FRAC_SUB_3/FP_FRAC_SUB_4
  soft-fp: Add inplementation for 128 bit self-contained

 ChangeLog      |  9 ++++++
 soft-fp/op-4.h | 63 ++++++++++++++++++++++-------------------
 soft-fp/op-8.h | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 132 insertions(+), 28 deletions(-)

-- 
2.7.4


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]