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

Reply via email to