This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH v3 0/2] Fix up soft-fp issue
- From: Zong Li <zongbox at gmail dot com>
- To: joseph at codesourcery dot com, palmer at dabbelt dot com, jimw at sifive dot com, kito at andestech dot com, greentime at andestech dot com, zong at andestech dot com
- Cc: libc-alpha at sourceware dot org, Zong Li <zongbox at gmail dot com>
- Date: Thu, 1 Nov 2018 13:10:24 +0800
- Subject: [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