intel/eu/validate: Use a single macro define half_float_conversion cases

This is what other tests do. The next commit will add a third set of
possible results (for Gfx12.5+), and the multiple macro method does not
scale.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23262>
This commit is contained in:
Ian Romanick
2023-05-26 07:40:08 -07:00
committed by Marge Bot
parent 7ef45e661f
commit a3cfec0690

View File

@@ -1317,17 +1317,8 @@ TEST_P(validation_test, half_float_conversion)
bool expected_result_bdw;
bool expected_result_chv_gfx9;
} inst[] = {
#define INST_C(dst_type, src_type, dst_stride, dst_subnr, expected_result) \
{ \
BRW_REGISTER_TYPE_##dst_type, \
BRW_REGISTER_TYPE_##src_type, \
BRW_HORIZONTAL_STRIDE_##dst_stride, \
dst_subnr, \
expected_result, \
expected_result, \
}
#define INST_S(dst_type, src_type, dst_stride, dst_subnr, \
expected_result_bdw, expected_result_chv_gfx9) \
#define INST(dst_type, src_type, dst_stride, dst_subnr, \
expected_result_bdw, expected_result_chv_gfx9) \
{ \
BRW_REGISTER_TYPE_##dst_type, \
BRW_REGISTER_TYPE_##src_type, \
@@ -1338,54 +1329,53 @@ TEST_P(validation_test, half_float_conversion)
}
/* MOV to half-float destination */
INST_C(HF, B, 1, 0, false),
INST_C(HF, W, 1, 0, false),
INST_C(HF, HF, 1, 0, true),
INST_C(HF, HF, 1, 2, true),
INST_C(HF, D, 1, 0, false),
INST_S(HF, F, 1, 0, false, true),
INST_C(HF, Q, 1, 0, false),
INST_C(HF, B, 2, 0, true),
INST_C(HF, B, 2, 2, false),
INST_C(HF, W, 2, 0, true),
INST_C(HF, W, 2, 2, false),
INST_C(HF, HF, 2, 0, true),
INST_C(HF, HF, 2, 2, true),
INST_C(HF, D, 2, 0, true),
INST_C(HF, D, 2, 2, false),
INST_C(HF, F, 2, 0, true),
INST_S(HF, F, 2, 2, false, true),
INST_C(HF, Q, 2, 0, false),
INST_C(HF, DF, 2, 0, false),
INST_C(HF, B, 4, 0, false),
INST_C(HF, W, 4, 0, false),
INST_C(HF, HF, 4, 0, true),
INST_C(HF, HF, 4, 2, true),
INST_C(HF, D, 4, 0, false),
INST_C(HF, F, 4, 0, false),
INST_C(HF, Q, 4, 0, false),
INST_C(HF, DF, 4, 0, false),
INST(HF, B, 1, 0, false, false),
INST(HF, W, 1, 0, false, false),
INST(HF, HF, 1, 0, true, true),
INST(HF, HF, 1, 2, true, true),
INST(HF, D, 1, 0, false, false),
INST(HF, F, 1, 0, false, true),
INST(HF, Q, 1, 0, false, false),
INST(HF, B, 2, 0, true, true),
INST(HF, B, 2, 2, false, false),
INST(HF, W, 2, 0, true, true),
INST(HF, W, 2, 2, false, false),
INST(HF, HF, 2, 0, true, true),
INST(HF, HF, 2, 2, true, true),
INST(HF, D, 2, 0, true, true),
INST(HF, D, 2, 2, false, false),
INST(HF, F, 2, 0, true, true),
INST(HF, F, 2, 2, false, true),
INST(HF, Q, 2, 0, false, false),
INST(HF, DF, 2, 0, false, false),
INST(HF, B, 4, 0, false, false),
INST(HF, W, 4, 0, false, false),
INST(HF, HF, 4, 0, true, true),
INST(HF, HF, 4, 2, true, true),
INST(HF, D, 4, 0, false, false),
INST(HF, F, 4, 0, false, false),
INST(HF, Q, 4, 0, false, false),
INST(HF, DF, 4, 0, false, false),
/* MOV from half-float source */
INST_C( B, HF, 1, 0, false),
INST_C( W, HF, 1, 0, false),
INST_C( D, HF, 1, 0, true),
INST_C( D, HF, 1, 4, true),
INST_C( F, HF, 1, 0, true),
INST_C( F, HF, 1, 4, true),
INST_C( Q, HF, 1, 0, false),
INST_C(DF, HF, 1, 0, false),
INST_C( B, HF, 2, 0, false),
INST_C( W, HF, 2, 0, true),
INST_C( W, HF, 2, 2, false),
INST_C( D, HF, 2, 0, false),
INST_C( F, HF, 2, 0, true),
INST_C( B, HF, 4, 0, true),
INST_C( B, HF, 4, 1, false),
INST_C( W, HF, 4, 0, false),
INST( B, HF, 1, 0, false, false),
INST( W, HF, 1, 0, false, false),
INST( D, HF, 1, 0, true, true),
INST( D, HF, 1, 4, true, true),
INST( F, HF, 1, 0, true, true),
INST( F, HF, 1, 4, true, true),
INST( Q, HF, 1, 0, false, false),
INST(DF, HF, 1, 0, false, false),
INST( B, HF, 2, 0, false, false),
INST( W, HF, 2, 0, true, true),
INST( W, HF, 2, 2, false, false),
INST( D, HF, 2, 0, false, false),
INST( F, HF, 2, 0, true, true),
INST( B, HF, 4, 0, true, true),
INST( B, HF, 4, 1, false, false),
INST( W, HF, 4, 0, false, false),
#undef INST_C
#undef INST_S
#undef INST
};
if (devinfo.ver < 8)