[0/2] Fix up soft-fp issue.

Message ID cover.1539595555.git.zongbox@gmail.com
Headers show
Series
  • Fix up soft-fp issue.
Related show

Message

Zong Li Oct. 15, 2018, 11:52 a.m.
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).
  After this patch get into glibc mainline, we expected to submit a patch to gcc
  to update the op-4.h from glibc.
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.

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: Fix overwritten issue for division in op-4.h
  soft-fp: Add the lack of implementation for 128 bit self-contained

 ChangeLog      |   5 +++
 soft-fp/op-4.h |   7 +++-
 soft-fp/op-8.h | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 118 insertions(+), 1 deletion(-)

-- 
2.7.4