Richard Henderson <richard.hender...@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.ben...@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