Message ID | 20181003180711.19335-1-richard.henderson@linaro.org |
---|---|
Headers | show |
Series | softfloat: Fix division | expand |
Richard Henderson <richard.henderson@linaro.org> writes: > Changes from v1: > * Preserve udiv_qrnnd as a separate division primitive that > could be used as a building block for float128 division. > * Include asm fragments for x86_64, s390x, and ppc64. It passes my fops fdiv_double test but Emilio's test is reporting: Errors found in f64_div, rounding near_even: +252.7FFFFFFFFFF80 +001.FFFFFFFFFFFFE => +64F.7FFFFFFFFFF82 ....x expected +64F.7FFFFFFFFFF81 ....x +000.FFFFFFFFFFFFF +3FE.FFFFFFFFFFFFF => +001.0000000000000 ...ux expected +000.FFFFFFFFFFFFF ...ux +000.FFFFFFFFFFFFF -3FE.FFFFFFFFFFFFF => -001.0000000000000 ...ux expected -000.FFFFFFFFFFFFF ...ux +000.FFFFFFFFFFFFE +3FE.FFFFFFFFFFFFF => +000.FFFFFFFFFFFFF ...ux expected +000.FFFFFFFFFFFFE ...ux +000.FFFFFFFFFFFFE +3FF.FFFFFFFFFFFFE => +000.8000000000000 ...ux expected +000.7FFFFFFFFFFFF ...ux +000.FFFFFFFFFFFFE -3FE.FFFFFFFFFFFFF => -000.FFFFFFFFFFFFF ...ux expected -000.FFFFFFFFFFFFE ...ux +000.FFFFFFFFFFFFE -3FF.FFFFFFFFFFFFE => -000.8000000000000 ...ux expected -000.7FFFFFFFFFFFF ...ux -401.E7D66F623CB4C +787.FEFF7FFFFFFFE => -078.E8CB4F3CAEDB8 ....x expected -078.E8CB4F3CAEDB7 ....x +3FC.0000000007FEF +198.0000002000007 => +662.FFFFFFC00FFD1 ....x expected +662.FFFFFFC00FFD0 ....x -400.FFFFF8000001F -41C.FFFFFFBFFFFDF => +3E2.FFFFF84000031 ....x expected +3E2.FFFFF84000030 ....x -7FE.7FFFFFFFBFFFF +3FE.FFFFFFFFFFFFE => -7FE.7FFFFFFFC0001 ....x expected -7FE.7FFFFFFFC0000 ....x +001.FFFFFFFFFFFFE +3FF.FFFFFFFFFFFFF => +001.0000000000000 ...ux expected +000.FFFFFFFFFFFFF ...ux +001.FFFFFFFFFFFFE -3FF.FFFFFFFFFFFFF => -001.0000000000000 ...ux expected -000.FFFFFFFFFFFFF ...ux +3CA.0000000000000 +4CF.FFFFFE000001F => +2F9.0000010000001 ....x expected +2F9.0000010000000 ....x +3FD.0000000000000 -400.000003DFFFFFF => -3FB.FFFFF840001E3 ....x expected -3FB.FFFFF840001E2 ....x +2C6.00000000003EF -400.0000400400000 => -2C4.FFFF7FF82081E ....x expected -2C4.FFFF7FF82081D ....x +3FD.0000000000001 -3CA.FFFFFF0001FFF => -431.0000007FFF006 ....x expected -431.0000007FFF005 ....x -002.FFFFFFFFFFFDE -400.FFFFFFFFFFFFF => +000.FFFFFFFFFFFF0 ...ux expected +000.FFFFFFFFFFFEF ...ux +3FE.0000000000001 -3FF.0000001FFFFFF => -3FD.FFFFFFC000005 ....x expected -3FD.FFFFFFC000004 ....x +3FF.0000000000000 -47E.FFFFFC00000FF => -37F.000001FFFFFC1 ....x expected -37F.000001FFFFFC0 ....x > > r~ > > > Richard Henderson (4): > softfloat: Fix division > softfloat: Specialize udiv_qrnnd for x86_64 > softfloat: Specialize udiv_qrnnd for s390x > softfloat: Specialize udiv_qrnnd for ppc64 > > include/fpu/softfloat-macros.h | 35 +++++++++++++++++++++++++++++++--- > fpu/softfloat.c | 35 ++++++++++++++++++++++++++-------- > 2 files changed, 59 insertions(+), 11 deletions(-) -- Alex Bennée
On Thu, Oct 04, 2018 at 10:13:55 +0100, Alex Bennée wrote: > > Richard Henderson <richard.henderson@linaro.org> writes: > > > Changes from v1: > > * Preserve udiv_qrnnd as a separate division primitive that > > could be used as a building block for float128 division. > > * Include asm fragments for x86_64, s390x, and ppc64. > > It passes my fops fdiv_double test but Emilio's test is reporting: > > Errors found in f64_div, rounding near_even: > +252.7FFFFFFFFFF80 +001.FFFFFFFFFFFFE > => +64F.7FFFFFFFFFF82 ....x expected +64F.7FFFFFFFFFF81 ....x Did you rebuild the test program? v2 passes all f64_div tests for me. Tested-by: Emilio G. Cota <cota@braap.org> for patches 1 and 2. Thanks, E.
Emilio G. Cota <cota@braap.org> writes: > On Thu, Oct 04, 2018 at 10:13:55 +0100, Alex Bennée wrote: >> >> Richard Henderson <richard.henderson@linaro.org> writes: >> >> > Changes from v1: >> > * Preserve udiv_qrnnd as a separate division primitive that >> > could be used as a building block for float128 division. >> > * Include asm fragments for x86_64, s390x, and ppc64. >> >> It passes my fops fdiv_double test but Emilio's test is reporting: >> >> Errors found in f64_div, rounding near_even: >> +252.7FFFFFFFFFF80 +001.FFFFFFFFFFFFE >> => +64F.7FFFFFFFFFF82 ....x expected +64F.7FFFFFFFFFF81 ....x > > Did you rebuild the test program? v2 passes all f64_div tests for me. > > Tested-by: Emilio G. Cota <cota@braap.org> > for patches 1 and 2. Hmm I did: make clean make in the tests/fp dir multiple times while going through before/after fix scenarios. And now of course it works.... Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> > > Thanks, > > E. -- Alex Bennée