On 10/29/2026 9:22 AM, Philippe Mathieu-Daudé wrote: > I'm glad we have many MIPS tests but they are in too > many files, taking time to get compiled. In particular > on Aarch64 host via x86_64 docker image... Group the > test in order to reduce CI build time. > > But per v1 review "We can't trade usability for faster > compilation", so convert to run one test at a time -- > not exiting on the first assert() -- and use TAP > protocol to get integrated with meson. For example we > can now list each opcode as a TAP subtest with: > > $ meson test --suite tcg-mipsel -v > > Now as a maintainer I can relax a bit :) > > Since v1: > - TAP (pbo) > - no more assert (pbo) > - split per group > - MSA ld/st tests > > Based-on: <[email protected]> > > Philippe Mathieu-Daudé (31): > tests/tcg/mips: Group DSP acc tests > tests/tcg/mips: Group DSP arith tests > tests/tcg/mips: Group DSP cmp tests > tests/tcg/mips: Group DSP ctrl tests > tests/tcg/mips: Group DSP dot tests > tests/tcg/mips: Group DSP mul tests > tests/tcg/mips: Group DSP pack tests > tests/tcg/mips: Group DSP shift tests > tests/tcg/mips: Group Release 6 bitops tests > tests/tcg/mips: Group Release 6 crc tests > tests/tcg/mips: Group Release 6 logic tests > tests/tcg/mips: Group Release 6 multiply tests > tests/tcg/mips: Group Release 6 shift tests > tests/tcg/mips: Group MSA bit-count tests > tests/tcg/mips: Group MSA bit-move tests > tests/tcg/mips: Group MSA bit-set tests > tests/tcg/mips: Group MSA fixed-multiply tests > tests/tcg/mips: Group MSA float-max-min tests > tests/tcg/mips: Group MSA int-add tests > tests/tcg/mips: Group MSA int-average tests > tests/tcg/mips: Group MSA int-compare tests > tests/tcg/mips: Group MSA int-div-mod tests > tests/tcg/mips: Group MSA int-dot-product tests > tests/tcg/mips: Group MSA int-max-min tests > tests/tcg/mips: Group MSA int-multiply tests > tests/tcg/mips: Group MSA int-subtract tests > tests/tcg/mips: Group MSA interleave tests > tests/tcg/mips: Group MSA logic tests > tests/tcg/mips: Group MSA pack tests > tests/tcg/mips: Group MSA shift tests > tests/tcg/mips: Add MSA load/store tests > > tests/tcg/mips/include/test_utils_128.h | 2 +- > tests/tcg/mips/include/test_utils_64.h | 6 +- > tests/tcg/mipsel/test_dsp_runner.h | 39 +++ > tests/tcg/mips/test_msa_bit_count.c | 103 +++++++ > tests/tcg/mips/test_msa_bit_move.c | 97 ++++++ > tests/tcg/mips/test_msa_bit_set.c | 103 +++++++ > tests/tcg/mips/test_msa_fixed_multiply.c | 103 +++++++ > tests/tcg/mips/test_msa_float_max_min.c | 79 +++++ > tests/tcg/mips/test_msa_int_add.c | 187 ++++++++++++ > tests/tcg/mips/test_msa_int_average.c | 127 ++++++++ > tests/tcg/mips/test_msa_int_compare.c | 151 ++++++++++ > tests/tcg/mips/test_msa_int_div_mod.c | 127 ++++++++ > tests/tcg/mips/test_msa_int_dot_product.c | 139 +++++++++ > tests/tcg/mips/test_msa_int_max_min.c | 175 +++++++++++ > tests/tcg/mips/test_msa_int_multiply.c | 103 +++++++ > tests/tcg/mips/test_msa_int_subtract.c | 235 +++++++++++++++ > tests/tcg/mips/test_msa_interleave.c | 127 ++++++++ > tests/tcg/mips/test_msa_load_store.c | 166 +++++++++++ > tests/tcg/mips/test_msa_logic.c | 61 ++++ > tests/tcg/mips/test_msa_pack.c | 103 +++++++ > tests/tcg/mips/test_msa_shift.c | 151 ++++++++++ > tests/tcg/mips64/test_mips64r6_bitops.c | 62 ++++ > tests/tcg/mips64/test_mips64r6_crc.c | 74 +++++ > tests/tcg/mips64/test_mips64r6_logic.c | 50 ++++ > tests/tcg/mips64/test_mips64r6_multiply.c | 74 +++++ > tests/tcg/mips64/test_mips64r6_shift.c | 62 ++++ > tests/tcg/mipsel/test_dsp_acc.c | 112 +++++++ > tests/tcg/mipsel/test_dsp_arith.c | 182 ++++++++++++ > tests/tcg/mipsel/test_dsp_cmp.c | 87 ++++++ > tests/tcg/mipsel/test_dsp_ctrl.c | 47 +++ > tests/tcg/mipsel/test_dsp_dot.c | 157 ++++++++++ > tests/tcg/mipsel/test_dsp_mul.c | 67 +++++ > tests/tcg/mipsel/test_dsp_pack.c | 152 ++++++++++ > tests/tcg/mipsel/test_dsp_r1_absq_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_absq_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addq_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addq_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addq_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addsc.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addu_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addu_s_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_addwc.c | 1 - > tests/tcg/mipsel/test_dsp_r1_bitrev.c | 1 - > tests/tcg/mipsel/test_dsp_r1_bposge32.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmp_eq_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmp_le_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmp_lt_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpgu_eq_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpgu_le_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpgu_lt_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpu_eq_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpu_le_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_cmpu_lt_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpaq_s_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpaq_sa_l_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpau_h_qbl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpau_h_qbr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpsq_s_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpsq_sa_l_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_dpsu_h_qbr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extp.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extpdp.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extpdpv.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extpv.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extr_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extr_rs_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extr_s_h.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extr_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extrv_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extrv_rs_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extrv_s_h.c | 1 - > tests/tcg/mipsel/test_dsp_r1_extrv_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_insv.c | 1 - > tests/tcg/mipsel/test_dsp_r1_lbux.c | 1 - > tests/tcg/mipsel/test_dsp_r1_lhx.c | 1 - > tests/tcg/mipsel/test_dsp_r1_lwx.c | 1 - > tests/tcg/mipsel/test_dsp_r1_madd.c | 1 - > tests/tcg/mipsel/test_dsp_r1_maddu.c | 1 - > tests/tcg/mipsel/test_dsp_r1_main.c | 6 - > tests/tcg/mipsel/test_dsp_r1_maq_s_w_phl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_maq_s_w_phr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_maq_sa_w_phr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mfhi.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mflo.c | 1 - > tests/tcg/mipsel/test_dsp_r1_modsub.c | 1 - > tests/tcg/mipsel/test_dsp_r1_msub.c | 1 - > tests/tcg/mipsel/test_dsp_r1_msubu.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mthi.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mthlip.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mtlo.c | 1 - > tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_muleq_s_w_phr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_muleu_s_ph_qbr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mulq_rs_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_mult.c | 1 - > tests/tcg/mipsel/test_dsp_r1_multu.c | 1 - > tests/tcg/mipsel/test_dsp_r1_packrl_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_pick_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_pick_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceq_w_phl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceq_w_phr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbl.c | 1 - > .../tcg/mipsel/test_dsp_r1_precequ_ph_qbla.c | 1 - > tests/tcg/mipsel/test_dsp_r1_precequ_ph_qbr.c | 1 - > .../tcg/mipsel/test_dsp_r1_precequ_ph_qbra.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbl.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbla.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbr.c | 1 - > tests/tcg/mipsel/test_dsp_r1_preceu_ph_qbra.c | 1 - > tests/tcg/mipsel/test_dsp_r1_precrq_ph_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_precrq_qb_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_precrq_rs_ph_w.c | 1 - > .../tcg/mipsel/test_dsp_r1_precrqu_s_qb_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_raddu_w_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_rddsp.c | 1 - > tests/tcg/mipsel/test_dsp_r1_repl_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_repl_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_replv_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_replv_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shilo.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shilov.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shll_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shll_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shll_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shll_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shllv_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shllv_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shllv_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shllv_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shra_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shra_r_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shra_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shrav_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shrav_r_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shrav_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shrl_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_shrlv_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_subq_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_subq_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r1_subq_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r1_subu_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_subu_s_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r1_wrdsp.c | 1 - > tests/tcg/mipsel/test_dsp_r2_absq_s_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addqh_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addqh_r_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addqh_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addqh_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addu_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_addu_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_adduh_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_adduh_r_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_append.c | 1 - > tests/tcg/mipsel/test_dsp_r2_balign.c | 1 - > tests/tcg/mipsel/test_dsp_r2_cmpgdu_eq_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_cmpgdu_le_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_cmpgdu_lt_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpa_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpaqx_s_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpaqx_sa_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpax_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dps_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpsqx_s_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpsqx_sa_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_dpsx_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mul_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mul_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mulq_rs_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mulq_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mulq_s_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mulsa_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_mulsaq_s_w_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_precr_qb_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_precr_sra_ph_w.c | 1 - > .../tcg/mipsel/test_dsp_r2_precr_sra_r_ph_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_prepend.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shra_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shra_r_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shrav_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shrav_r_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shrl_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_shrlv_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subqh_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subqh_r_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subqh_r_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subqh_w.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subu_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subu_s_ph.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subuh_qb.c | 1 - > tests/tcg/mipsel/test_dsp_r2_subuh_r_qb.c | 1 - > tests/tcg/mipsel/test_dsp_shift.c | 127 ++++++++ > tests/tcg/mips/meson.build | 277 ------------------ > tests/tcg/mips64/meson.build | 63 ++-- > tests/tcg/mipsel/meson.build | 193 ++---------- > 197 files changed, 3694 insertions(+), 641 deletions(-) > create mode 100644 tests/tcg/mipsel/test_dsp_runner.h > create mode 100644 tests/tcg/mips/test_msa_bit_count.c > create mode 100644 tests/tcg/mips/test_msa_bit_move.c > create mode 100644 tests/tcg/mips/test_msa_bit_set.c > create mode 100644 tests/tcg/mips/test_msa_fixed_multiply.c > create mode 100644 tests/tcg/mips/test_msa_float_max_min.c > create mode 100644 tests/tcg/mips/test_msa_int_add.c > create mode 100644 tests/tcg/mips/test_msa_int_average.c > create mode 100644 tests/tcg/mips/test_msa_int_compare.c > create mode 100644 tests/tcg/mips/test_msa_int_div_mod.c > create mode 100644 tests/tcg/mips/test_msa_int_dot_product.c > create mode 100644 tests/tcg/mips/test_msa_int_max_min.c > create mode 100644 tests/tcg/mips/test_msa_int_multiply.c > create mode 100644 tests/tcg/mips/test_msa_int_subtract.c > create mode 100644 tests/tcg/mips/test_msa_interleave.c > create mode 100644 tests/tcg/mips/test_msa_load_store.c > create mode 100644 tests/tcg/mips/test_msa_logic.c > create mode 100644 tests/tcg/mips/test_msa_pack.c > create mode 100644 tests/tcg/mips/test_msa_shift.c > create mode 100644 tests/tcg/mips64/test_mips64r6_bitops.c > create mode 100644 tests/tcg/mips64/test_mips64r6_crc.c > create mode 100644 tests/tcg/mips64/test_mips64r6_logic.c > create mode 100644 tests/tcg/mips64/test_mips64r6_multiply.c > create mode 100644 tests/tcg/mips64/test_mips64r6_shift.c > create mode 100644 tests/tcg/mipsel/test_dsp_acc.c > create mode 100644 tests/tcg/mipsel/test_dsp_arith.c > create mode 100644 tests/tcg/mipsel/test_dsp_cmp.c > create mode 100644 tests/tcg/mipsel/test_dsp_ctrl.c > create mode 100644 tests/tcg/mipsel/test_dsp_dot.c > create mode 100644 tests/tcg/mipsel/test_dsp_mul.c > create mode 100644 tests/tcg/mipsel/test_dsp_pack.c > delete mode 100644 tests/tcg/mipsel/test_dsp_r1_main.c > create mode 100644 tests/tcg/mipsel/test_dsp_shift.c >
Series look good to me, minus the comment on MSA tests duplicating their groups definition between targets. With this factorized: Reviewed-by: Pierrick Bouvier <[email protected]> Regards, Pierrick
