tests/fp: split and audit the conversion tests

Split the float conversion tests into separate groups and audit the
tests to check what is still broken. I was able to enable a bunch of
tests that had been missed before:

  all the float to float conversions
  ui32_to_extF80
  ui64_to_extF80
  extF80_to_ui32
  extF80_to_ui32_r_minMag
  extF80_to_ui64
  extF80_to_ui64_r_minMag

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20200520140541.30256-7-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2020-05-20 15:05:32 +01:00
parent 91fa8b64cb
commit 8281a157c5

View File

@ -687,11 +687,26 @@ test-softfloat = $(call quiet-command, \
(cat $2.out && exit 1;), \
"FLOAT TEST", $2)
# Conversion Routines:
# Conversion Routines: Float to Float
# FIXME: f32_to_f128 (broken), f64_to_f128 (broken)
# FIXME: f128_to_f32(broken), f128_to_f64 (broken)
# FIXME: f128_to_extF80 (broken)
check-softfloat-conv-f2f: $(FP_TEST_BIN)
$(call test-softfloat, \
f16_to_f32 f16_to_f64 \
f16_to_extF80 f16_to_f128 \
f32_to_f16 f32_to_f64 \
f32_to_extF80 \
f64_to_f16 f64_to_f32 \
extF80_to_f16 extF80_to_f32 \
extF80_to_f64 extF80_to_f128 \
f128_to_f16, \
float-to-float)
# Conversion Routines: Int and Uint to Float
# FIXME: i32_to_extF80 (broken), i64_to_extF80 (broken)
# ui32_to_f128 (not implemented), extF80_roundToInt (broken)
#
check-softfloat-conv: $(FP_TEST_BIN)
# ui32_to_f128 (not implemented)
check-softfloat-conv-to-float: $(FP_TEST_BIN)
$(call test-softfloat, \
i32_to_f16 i64_to_f16 \
i32_to_f32 i64_to_f32 \
@ -701,7 +716,12 @@ check-softfloat-conv: $(FP_TEST_BIN)
ui32_to_f16 ui64_to_f16 \
ui32_to_f32 ui64_to_f32 \
ui32_to_f64 ui64_to_f64 \
ui32_to_extF80 ui64_to_extF80 \
ui64_to_f128, uint-to-float)
# Conversion Routines: Float to integers
# FIXME: extF80_roundToInt (broken)
check-softfloat-conv-to-int: $(FP_TEST_BIN)
$(call test-softfloat, \
f16_to_i32 f16_to_i32_r_minMag \
f32_to_i32 f32_to_i32_r_minMag \
@ -718,10 +738,12 @@ check-softfloat-conv: $(FP_TEST_BIN)
f16_to_ui32 f16_to_ui32_r_minMag \
f32_to_ui32 f32_to_ui32_r_minMag \
f64_to_ui32 f64_to_ui32_r_minMag \
extF80_to_ui32 extF80_to_ui32_r_minMag \
f128_to_ui32 f128_to_ui32_r_minMag \
f16_to_ui64 f16_to_ui64_r_minMag \
f32_to_ui64 f32_to_ui64_r_minMag \
f64_to_ui64 f64_to_ui64_r_minMag \
extF80_to_ui64 extF80_to_ui64_r_minMag \
f128_to_ui64 f128_to_ui64_r_minMag, \
float-to-uint)
$(call test-softfloat, \
@ -729,9 +751,14 @@ check-softfloat-conv: $(FP_TEST_BIN)
f64_roundToInt f128_roundToInt, \
round-to-integer)
.PHONY: check-softfloat-conv
check-softfloat-conv: check-softfloat-conv-f2f
check-softfloat-conv: check-softfloat-conv-to-float
check-softfloat-conv: check-softfloat-conv-to-int
# Generic rule for all float operations
#
# Some patterns are overidden due to broken or missing tests.
# Some patterns are overridden due to broken or missing tests.
# Hopefully these can be removed over time.
check-softfloat-%: $(FP_TEST_BIN)