[PATCH 0/2] Fix up soft-fp issue.
Zong Li
zongbox@gmail.com
Mon Oct 15 11:54:00 GMT 2018
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
More information about the Libc-alpha
mailing list