[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts
From: |
Alex Bennée |
Subject: |
Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts |
Date: |
Mon, 10 May 2021 14:36:25 +0100 |
User-agent: |
mu4e 1.5.13; emacs 28.0.50 |
Richard Henderson <richard.henderson@linaro.org> writes:
> Reorg everything using QEMU_GENERIC and multiple inclusion to
> reduce the amount of code duplication between the formats.
>
> The use of QEMU_GENERIC means that we need to use pointers instead
> of structures, which means that even the smaller float formats
> need rearranging.
>
> I've carried it through to completion within fpu/, so that we don't
> have (much) of the legacy code remaining. There is some floatx80
> stuff in target/m68k and target/i386 that's still hanging around.
FWIW I could enable a few more tests although extF80_lt_quiet still has
some failures on equality tests:
./tests/fp/fp-test -l 1 -r all extF80_lt_quiet
>> Testing extF80_lt_quiet
46464 tests total.
Errors found in extF80_lt_quiet:
+0000.0000000000000000 +0000.0000000000000000 => 1 ..... expected 0 .....
+0000.0000000000000000 -0000.0000000000000000 => 1 ..... expected 0 .....
+0000.0000000000000001 +0000.0000000000000001 => 1 ..... expected 0 .....
+0000.7FFFFFFFFFFFFFFF +0000.7FFFFFFFFFFFFFFF => 1 ..... expected 0 .....
+0000.7FFFFFFFFFFFFFFE +0000.7FFFFFFFFFFFFFFE => 1 ..... expected 0 .....
+0001.8000000000000000 +0001.8000000000000000 => 1 ..... expected 0 .....
+0001.8000000000000001 +0001.8000000000000001 => 1 ..... expected 0 .....
+0001.FFFFFFFFFFFFFFFF +0001.FFFFFFFFFFFFFFFF => 1 ..... expected 0 .....
+0001.FFFFFFFFFFFFFFFE +0001.FFFFFFFFFFFFFFFE => 1 ..... expected 0 .....
+3FBF.8000000000000000 +3FBF.8000000000000000 => 1 ..... expected 0 .....
+3FBF.8000000000000001 +3FBF.8000000000000001 => 1 ..... expected 0 .....
+3FBF.FFFFFFFFFFFFFFFF +3FBF.FFFFFFFFFFFFFFFF => 1 ..... expected 0 .....
+3FBF.FFFFFFFFFFFFFFFE +3FBF.FFFFFFFFFFFFFFFE => 1 ..... expected 0 .....
+3FFD.8000000000000000 +3FFD.8000000000000000 => 1 ..... expected 0 .....
+3FFD.8000000000000001 +3FFD.8000000000000001 => 1 ..... expected 0 .....
+3FFD.FFFFFFFFFFFFFFFF +3FFD.FFFFFFFFFFFFFFFF => 1 ..... expected 0 .....
+3FFD.FFFFFFFFFFFFFFFE +3FFD.FFFFFFFFFFFFFFFE => 1 ..... expected 0 .....
+3FFE.8000000000000000 +3FFE.8000000000000000 => 1 ..... expected 0 .....
+3FFE.8000000000000001 +3FFE.8000000000000001 => 1 ..... expected 0 .....
+3FFE.FFFFFFFFFFFFFFFF +3FFE.FFFFFFFFFFFFFFFF => 1 ..... expected 0 .....
9618 tests performed; 20 errors found.
However the rest can be enabled:
tests/fp: enable more tests
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
1 file changed, 6 insertions(+), 6 deletions(-)
tests/fp/meson.build | 12 ++++++------
modified tests/fp/meson.build
@@ -556,7 +556,9 @@ softfloat_conv_tests = {
'extF80_to_f64 extF80_to_f128 ' +
'f128_to_f16',
'int-to-float': 'i32_to_f16 i64_to_f16 i32_to_f32 i64_to_f32 ' +
- 'i32_to_f64 i64_to_f64 i32_to_f128 i64_to_f128',
+ 'i32_to_f64 i64_to_f64 ' +
+ 'i32_to_extF80 i64_to_extF80 ' +
+ 'i32_to_f128 i64_to_f128',
'uint-to-float': 'ui32_to_f16 ui64_to_f16 ui32_to_f32 ui64_to_f32 ' +
'ui32_to_f64 ui64_to_f64 ui64_to_f128 ' +
'ui32_to_extF80 ui64_to_extF80',
@@ -581,7 +583,7 @@ softfloat_conv_tests = {
'extF80_to_ui64 extF80_to_ui64_r_minMag ' +
'f128_to_ui64 f128_to_ui64_r_minMag',
'round-to-integer': 'f16_roundToInt f32_roundToInt ' +
- 'f64_roundToInt f128_roundToInt'
+ 'f64_roundToInt extF80_roundToInt f128_roundToInt'
}
softfloat_tests = {
'eq_signaling' : 'compare',
@@ -602,18 +604,16 @@ fptest_args = ['-s', '-l', '1']
fptest_rounding_args = ['-r', 'all']
# Conversion Routines:
-# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
-# extF80_roundToInt (broken)
foreach k, v : softfloat_conv_tests
test('fp-test-' + k, fptest,
args: fptest_args + fptest_rounding_args + v.split(),
suite: ['softfloat', 'softfloat-conv'])
endforeach
-# FIXME: extF80_{lt_quiet, rem} (broken),
+# FIXME: extF80_{lt_quiet} (broken),
# extF80_{mulAdd} (missing)
foreach k, v : softfloat_tests
- extF80_broken = ['lt_quiet', 'rem'].contains(k)
+ extF80_broken = ['lt_quiet'].contains(k)
test('fp-test-' + k, fptest,
args: fptest_args + fptest_rounding_args +
['f16_' + k, 'f32_' + k, 'f64_' + k, 'f128_' + k] +
--
Alex Bennée
- [PATCH 61/72] softfloat: Convert floatx80_div to FloatParts, (continued)
- [PATCH 61/72] softfloat: Convert floatx80_div to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 59/72] softfloat: Convert floatx80_add/sub to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 71/72] softfloat: Move floatN_log2 to softfloat-parts.c.inc, Richard Henderson, 2021/05/07
- [PATCH 56/72] softfloat: Introduce Floatx80RoundPrec, Richard Henderson, 2021/05/07
- [PATCH 63/72] softfloat: Convert floatx80_round to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 64/72] softfloat: Convert floatx80_round_to_int to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 69/72] softfloat: Convert floatx80 compare to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 67/72] softfloat: Convert floatx80 to integer to FloatParts, Richard Henderson, 2021/05/07
- [PATCH 72/72] softfloat: Convert modrem operations to FloatParts, Richard Henderson, 2021/05/07
- Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts, no-reply, 2021/05/07
- Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts,
Alex Bennée <=
- Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts, Alex Bennée, 2021/05/12
- Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts, Alex Bennée, 2021/05/12
Re: [PATCH 00/72] Convert floatx80 and float128 to FloatParts, Alex Bennée, 2021/05/13