diff options
Diffstat (limited to 'tests/tcg/mips/include/wrappers_msa.h')
-rw-r--r-- | tests/tcg/mips/include/wrappers_msa.h | 96 |
1 files changed, 92 insertions, 4 deletions
diff --git a/tests/tcg/mips/include/wrappers_msa.h b/tests/tcg/mips/include/wrappers_msa.h index 9570aa8998..b512b1db57 100644 --- a/tests/tcg/mips/include/wrappers_msa.h +++ b/tests/tcg/mips/include/wrappers_msa.h @@ -124,8 +124,9 @@ static inline void do_msa_##suffix(const void *input1, \ } #define DO_MSA__WD__WD_WT(suffix, mnemonic) \ -static inline void do_msa_##suffix(void *input1, void *input2, \ - void *output) \ +static inline void do_msa_##suffix(const void *input1, \ + const void *input2, \ + const void *output) \ { \ __asm__ volatile ( \ "move $t0, %0\n\t" \ @@ -142,8 +143,9 @@ static inline void do_msa_##suffix(void *input1, void *input2, \ } #define DO_MSA__WD__WS_WD(suffix, mnemonic) \ -static inline void do_msa_##suffix(void *input1, void *input2, \ - void *output) \ +static inline void do_msa_##suffix(const void *input1, \ + const void *input2, \ + const void *output) \ { \ __asm__ volatile ( \ "move $t0, %0\n\t" \ @@ -187,18 +189,40 @@ DO_MSA__WD__WS(PCNT_D, pcnt.d) */ DO_MSA__WD__WS_WT(BINSL_B, binsl.b) +DO_MSA__WD__WD_WT(BINSL_B__DDT, binsl.b) +DO_MSA__WD__WS_WD(BINSL_B__DSD, binsl.b) DO_MSA__WD__WS_WT(BINSL_H, binsl.h) +DO_MSA__WD__WD_WT(BINSL_H__DDT, binsl.h) +DO_MSA__WD__WS_WD(BINSL_H__DSD, binsl.h) DO_MSA__WD__WS_WT(BINSL_W, binsl.w) +DO_MSA__WD__WD_WT(BINSL_W__DDT, binsl.w) +DO_MSA__WD__WS_WD(BINSL_W__DSD, binsl.w) DO_MSA__WD__WS_WT(BINSL_D, binsl.d) +DO_MSA__WD__WD_WT(BINSL_D__DDT, binsl.d) +DO_MSA__WD__WS_WD(BINSL_D__DSD, binsl.d) DO_MSA__WD__WS_WT(BINSR_B, binsr.b) +DO_MSA__WD__WD_WT(BINSR_B__DDT, binsr.b) +DO_MSA__WD__WS_WD(BINSR_B__DSD, binsr.b) DO_MSA__WD__WS_WT(BINSR_H, binsr.h) +DO_MSA__WD__WD_WT(BINSR_H__DDT, binsr.h) +DO_MSA__WD__WS_WD(BINSR_H__DSD, binsr.h) DO_MSA__WD__WS_WT(BINSR_W, binsr.w) +DO_MSA__WD__WD_WT(BINSR_W__DDT, binsr.w) +DO_MSA__WD__WS_WD(BINSR_W__DSD, binsr.w) DO_MSA__WD__WS_WT(BINSR_D, binsr.d) +DO_MSA__WD__WD_WT(BINSR_D__DDT, binsr.d) +DO_MSA__WD__WS_WD(BINSR_D__DSD, binsr.d) DO_MSA__WD__WS_WT(BMNZ_V, bmnz.v) +DO_MSA__WD__WD_WT(BMNZ_V__DDT, bmnz.v) +DO_MSA__WD__WS_WD(BMNZ_V__DSD, bmnz.v) DO_MSA__WD__WS_WT(BMZ_V, bmz.v) +DO_MSA__WD__WD_WT(BMZ_V__DDT, bmz.v) +DO_MSA__WD__WS_WD(BMZ_V__DSD, bmz.v) DO_MSA__WD__WS_WT(BSEL_V, bsel.v) +DO_MSA__WD__WD_WT(BSEL_V__DDT, bsel.v) +DO_MSA__WD__WS_WD(BSEL_V__DSD, bsel.v) /* @@ -389,6 +413,46 @@ DO_MSA__WD__WS_WT(DOTP_U_H, dotp_u.h) DO_MSA__WD__WS_WT(DOTP_U_W, dotp_u.w) DO_MSA__WD__WS_WT(DOTP_U_D, dotp_u.d) +DO_MSA__WD__WS_WT(DPADD_S_H, dpadd_s.h) +DO_MSA__WD__WD_WT(DPADD_S_H__DDT, dpadd_s.h) +DO_MSA__WD__WS_WD(DPADD_S_H__DSD, dpadd_s.h) +DO_MSA__WD__WS_WT(DPADD_S_W, dpadd_s.w) +DO_MSA__WD__WD_WT(DPADD_S_W__DDT, dpadd_s.w) +DO_MSA__WD__WS_WD(DPADD_S_W__DSD, dpadd_s.w) +DO_MSA__WD__WS_WT(DPADD_S_D, dpadd_s.d) +DO_MSA__WD__WD_WT(DPADD_S_D__DDT, dpadd_s.d) +DO_MSA__WD__WS_WD(DPADD_S_D__DSD, dpadd_s.d) + +DO_MSA__WD__WS_WT(DPADD_U_H, dpadd_u.h) +DO_MSA__WD__WD_WT(DPADD_U_H__DDT, dpadd_u.h) +DO_MSA__WD__WS_WD(DPADD_U_H__DSD, dpadd_u.h) +DO_MSA__WD__WS_WT(DPADD_U_W, dpadd_u.w) +DO_MSA__WD__WD_WT(DPADD_U_W__DDT, dpadd_u.w) +DO_MSA__WD__WS_WD(DPADD_U_W__DSD, dpadd_u.w) +DO_MSA__WD__WS_WT(DPADD_U_D, dpadd_u.d) +DO_MSA__WD__WD_WT(DPADD_U_D__DDT, dpadd_u.d) +DO_MSA__WD__WS_WD(DPADD_U_D__DSD, dpadd_u.d) + +DO_MSA__WD__WS_WT(DPSUB_S_H, dpsub_s.h) +DO_MSA__WD__WD_WT(DPSUB_S_H__DDT, dpsub_s.h) +DO_MSA__WD__WS_WD(DPSUB_S_H__DSD, dpsub_s.h) +DO_MSA__WD__WS_WT(DPSUB_S_W, dpsub_s.w) +DO_MSA__WD__WD_WT(DPSUB_S_W__DDT, dpsub_s.w) +DO_MSA__WD__WS_WD(DPSUB_S_W__DSD, dpsub_s.w) +DO_MSA__WD__WS_WT(DPSUB_S_D, dpsub_s.d) +DO_MSA__WD__WD_WT(DPSUB_S_D__DDT, dpsub_s.d) +DO_MSA__WD__WS_WD(DPSUB_S_D__DSD, dpsub_s.d) + +DO_MSA__WD__WS_WT(DPSUB_U_H, dpsub_u.h) +DO_MSA__WD__WD_WT(DPSUB_U_H__DDT, dpsub_u.h) +DO_MSA__WD__WS_WD(DPSUB_U_H__DSD, dpsub_u.h) +DO_MSA__WD__WS_WT(DPSUB_U_W, dpsub_u.w) +DO_MSA__WD__WD_WT(DPSUB_U_W__DDT, dpsub_u.w) +DO_MSA__WD__WS_WD(DPSUB_U_W__DSD, dpsub_u.w) +DO_MSA__WD__WS_WT(DPSUB_U_D, dpsub_u.d) +DO_MSA__WD__WD_WT(DPSUB_U_D__DDT, dpsub_u.d) +DO_MSA__WD__WS_WD(DPSUB_U_D__DSD, dpsub_u.d) + /* * Int Max Min @@ -448,14 +512,30 @@ DO_MSA__WD__WS_WT(MOD_U_D, mod_u.d) */ DO_MSA__WD__WS_WT(MADDV_B, maddv.b) +DO_MSA__WD__WD_WT(MADDV_B__DDT, maddv.b) +DO_MSA__WD__WS_WD(MADDV_B__DSD, maddv.b) DO_MSA__WD__WS_WT(MADDV_H, maddv.h) +DO_MSA__WD__WD_WT(MADDV_H__DDT, maddv.h) +DO_MSA__WD__WS_WD(MADDV_H__DSD, maddv.h) DO_MSA__WD__WS_WT(MADDV_W, maddv.w) +DO_MSA__WD__WD_WT(MADDV_W__DDT, maddv.w) +DO_MSA__WD__WS_WD(MADDV_W__DSD, maddv.w) DO_MSA__WD__WS_WT(MADDV_D, maddv.d) +DO_MSA__WD__WD_WT(MADDV_D__DDT, maddv.d) +DO_MSA__WD__WS_WD(MADDV_D__DSD, maddv.d) DO_MSA__WD__WS_WT(MSUBV_B, msubv.b) +DO_MSA__WD__WD_WT(MSUBV_B__DDT, msubv.b) +DO_MSA__WD__WS_WD(MSUBV_B__DSD, msubv.b) DO_MSA__WD__WS_WT(MSUBV_H, msubv.h) +DO_MSA__WD__WD_WT(MSUBV_H__DDT, msubv.h) +DO_MSA__WD__WS_WD(MSUBV_H__DSD, msubv.h) DO_MSA__WD__WS_WT(MSUBV_W, msubv.w) +DO_MSA__WD__WD_WT(MSUBV_W__DDT, msubv.w) +DO_MSA__WD__WS_WD(MSUBV_W__DSD, msubv.w) DO_MSA__WD__WS_WT(MSUBV_D, msubv.d) +DO_MSA__WD__WD_WT(MSUBV_D__DDT, msubv.d) +DO_MSA__WD__WS_WD(MSUBV_D__DSD, msubv.d) DO_MSA__WD__WS_WT(MULV_B, mulv.b) DO_MSA__WD__WS_WT(MULV_H, mulv.h) @@ -550,6 +630,14 @@ DO_MSA__WD__WS_WT(XOR_V, xor.v) /* + * Move + * ---- + */ + +DO_MSA__WD__WS(MOVE_V, move.v) + + +/* * Pack * ---- */ |