diff options
Diffstat (limited to 'libavcodec/mips/qpeldsp_msa.c')
-rw-r--r-- | libavcodec/mips/qpeldsp_msa.c | 292 |
1 files changed, 122 insertions, 170 deletions
diff --git a/libavcodec/mips/qpeldsp_msa.c b/libavcodec/mips/qpeldsp_msa.c index 4710b3f..fba42b30 100644 --- a/libavcodec/mips/qpeldsp_msa.c +++ b/libavcodec/mips/qpeldsp_msa.c @@ -334,7 +334,7 @@ static void horiz_mc_qpel_aver_src0_8width_msa(const uint8_t *src, inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -409,7 +409,7 @@ static void horiz_mc_qpel_8width_msa(const uint8_t *src, res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -485,7 +485,7 @@ static void horiz_mc_qpel_aver_src1_8width_msa(const uint8_t *src, inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -564,7 +564,7 @@ static void horiz_mc_qpel_no_rnd_aver_src0_8width_msa(const uint8_t *src, inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); res0 = __msa_ave_u_b(inp0, res0); res1 = __msa_ave_u_b(inp2, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -639,7 +639,7 @@ static void horiz_mc_qpel_no_rnd_8width_msa(const uint8_t *src, res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -716,7 +716,7 @@ static void horiz_mc_qpel_no_rnd_aver_src1_8width_msa(const uint8_t *src, inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); res0 = __msa_ave_u_b(inp0, res0); res1 = __msa_ave_u_b(inp2, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -799,7 +799,7 @@ static void horiz_mc_qpel_avg_dst_aver_src0_8width_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -876,7 +876,7 @@ static void horiz_mc_qpel_avg_dst_8width_msa(const uint8_t *src, dst0 = (v16u8) __msa_insve_d((v2i64) dst0, 1, (v2i64) dst1); dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -956,7 +956,7 @@ static void horiz_mc_qpel_avg_dst_aver_src1_8width_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); } } @@ -1031,8 +1031,7 @@ static void vert_mc_qpel_aver_src0_8x8_msa(const uint8_t *src, tmp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); tmp1 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -1048,8 +1047,7 @@ static void vert_mc_qpel_aver_src0_8x8_msa(const uint8_t *src, tmp0 = (v16u8) __msa_insve_d((v2i64) inp4, 1, (v2i64) inp5); tmp1 = (v16u8) __msa_insve_d((v2i64) inp6, 1, (v2i64) inp7); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_aver_src0_16x16_msa(const uint8_t *src, @@ -1220,8 +1218,7 @@ static void vert_mc_qpel_8x8_msa(const uint8_t *src, inp3, inp2, inp1, inp0, inp4, inp5, inp6, inp7, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -1234,8 +1231,7 @@ static void vert_mc_qpel_8x8_msa(const uint8_t *src, inp7, inp6, inp5, inp4, inp8, inp8, inp7, inp6, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_16x16_msa(const uint8_t *src, @@ -1405,8 +1401,7 @@ static void vert_mc_qpel_aver_src1_8x8_msa(const uint8_t *src, tmp0 = (v16u8) __msa_insve_d((v2i64) inp1, 1, (v2i64) inp2); tmp1 = (v16u8) __msa_insve_d((v2i64) inp3, 1, (v2i64) inp4); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -1422,7 +1417,7 @@ static void vert_mc_qpel_aver_src1_8x8_msa(const uint8_t *src, tmp0 = (v16u8) __msa_insve_d((v2i64) inp5, 1, (v2i64) inp6); tmp1 = (v16u8) __msa_insve_d((v2i64) inp7, 1, (v2i64) inp8); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_aver_src1_16x16_msa(const uint8_t *src, @@ -1607,8 +1602,7 @@ static void vert_mc_qpel_no_rnd_aver_src0_8x8_msa(const uint8_t *src, tmp1 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); res0 = __msa_ave_u_b(res0, tmp0); res1 = __msa_ave_u_b(res1, tmp1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -1625,8 +1619,7 @@ static void vert_mc_qpel_no_rnd_aver_src0_8x8_msa(const uint8_t *src, tmp1 = (v16u8) __msa_insve_d((v2i64) inp6, 1, (v2i64) inp7); res0 = __msa_ave_u_b(res0, tmp0); res1 = __msa_ave_u_b(res1, tmp1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_no_rnd_aver_src0_16x16_msa(const uint8_t *src, @@ -1806,8 +1799,7 @@ static void vert_mc_qpel_no_rnd_8x8_msa(const uint8_t *src, inp3, inp2, inp1, inp0, inp4, inp5, inp6, inp7, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -1820,8 +1812,7 @@ static void vert_mc_qpel_no_rnd_8x8_msa(const uint8_t *src, inp7, inp6, inp5, inp4, inp8, inp8, inp7, inp6, const20, const6, const3); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_no_rnd_16x16_msa(const uint8_t *src, @@ -1988,8 +1979,7 @@ static void vert_mc_qpel_no_rnd_aver_src1_8x8_msa(const uint8_t *src, tmp1 = (v16u8) __msa_insve_d((v2i64) inp3, 1, (v2i64) inp4); res0 = __msa_ave_u_b(res0, tmp0); res1 = __msa_ave_u_b(res1, tmp1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); inp8 = LD_UB(src); res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(inp4, inp3, inp2, inp1, @@ -2006,7 +1996,7 @@ static void vert_mc_qpel_no_rnd_aver_src1_8x8_msa(const uint8_t *src, tmp1 = (v16u8) __msa_insve_d((v2i64) inp7, 1, (v2i64) inp8); res0 = __msa_ave_u_b(res0, tmp0); res1 = __msa_ave_u_b(res1, tmp1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst + 4 * dst_stride, dst_stride); } static void vert_mc_qpel_no_rnd_aver_src1_16x16_msa(const uint8_t *src, @@ -2195,7 +2185,7 @@ static void vert_mc_qpel_avg_dst_aver_src0_8x8_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); inp8 = LD_UB(src); @@ -2217,7 +2207,7 @@ static void vert_mc_qpel_avg_dst_aver_src0_8x8_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void vert_mc_qpel_avg_dst_aver_src0_16x16_msa(const uint8_t *src, @@ -2384,7 +2374,7 @@ static void vert_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, dst0 = (v16u8) __msa_insve_d((v2i64) dst0, 1, (v2i64) dst1); dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); inp8 = LD_UB(src); @@ -2402,8 +2392,7 @@ static void vert_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, dst0 = (v16u8) __msa_insve_d((v2i64) dst0, 1, (v2i64) dst1); dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); - dst += (4 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void vert_mc_qpel_avg_dst_16x16_msa(const uint8_t *src, @@ -2566,7 +2555,7 @@ static void vert_mc_qpel_avg_dst_aver_src1_8x8_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); dst += (4 * dst_stride); inp8 = LD_UB(src); @@ -2587,7 +2576,7 @@ static void vert_mc_qpel_avg_dst_aver_src1_8x8_msa(const uint8_t *src, dst2 = (v16u8) __msa_insve_d((v2i64) dst2, 1, (v2i64) dst3); AVER_UB2_UB(res0, tmp0, res1, tmp1, res0, res1); AVER_UB2_UB(dst0, res0, dst2, res1, res0, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void vert_mc_qpel_avg_dst_aver_src1_16x16_msa(const uint8_t *src, @@ -2832,7 +2821,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -2860,7 +2849,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz5, (v2i64) horiz4); @@ -2870,12 +2859,12 @@ static void hv_mc_qpel_no_rnd_aver_hv_src00_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_horiz_16x16_msa(const uint8_t *src, @@ -2977,7 +2966,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -2999,7 +2988,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(const uint8_t *src, res1 = __msa_ave_u_b(avg1, res1); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, @@ -3009,7 +2998,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz5, (v2i64) horiz4); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); res1 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, @@ -3019,7 +3008,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_horiz_src1_16x16_msa(const uint8_t *src, @@ -3137,7 +3126,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -3163,7 +3152,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz3, (v2i64) horiz2); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, @@ -3173,7 +3162,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz5, (v2i64) horiz4); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); res1 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, @@ -3183,7 +3172,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_aver_h_src0_16x16_msa(const uint8_t *src, @@ -3246,7 +3235,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src0_8x8_msa(const uint8_t *src, LD_UB2(src, src_stride, inp2, inp3); src += (2 * src_stride); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, @@ -3270,18 +3259,15 @@ static void hv_mc_qpel_no_rnd_aver_h_src0_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); - dst += 2 * dst_stride; - - ST8x2_UB(res0, dst, dst_stride); - dst += (2 * dst_stride); + ST_D4(res1, res0, 0, 1, 0, 1, dst, dst_stride); + dst += (4 * dst_stride); res1 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, horiz7, horiz8, horiz8, horiz7, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_16x16_msa(const uint8_t *src, @@ -3337,7 +3323,7 @@ static void hv_mc_qpel_no_rnd_8x8_msa(const uint8_t *src, const20, const6, const3); LD_UB2(src, src_stride, inp2, inp3); src += (2 * src_stride); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; horiz6 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, @@ -3358,7 +3344,7 @@ static void hv_mc_qpel_no_rnd_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; @@ -3367,9 +3353,7 @@ static void hv_mc_qpel_no_rnd_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_aver_h_src1_16x16_msa(const uint8_t *src, @@ -3437,7 +3421,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, const20, const6, const3); LD_UB2(src, src_stride, inp2, inp3); src += (2 * src_stride); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, @@ -3464,7 +3448,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res1 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, @@ -3472,9 +3456,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_aver_hv_src01_16x16_msa(const uint8_t *src, @@ -3536,7 +3518,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz2, (v2i64) horiz1); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -3564,7 +3546,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz6, (v2i64) horiz5); @@ -3575,12 +3557,12 @@ static void hv_mc_qpel_no_rnd_aver_hv_src01_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_aver_v_src1_16x16_msa(const uint8_t *src, @@ -3638,7 +3620,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(const uint8_t *src, res0 = __msa_ave_u_b(avg0, res0); LD_UB2(src, src_stride, inp2, inp3); src += (2 * src_stride); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; horiz6 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, @@ -3656,7 +3638,7 @@ static void hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(const uint8_t *src, horiz8 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE_1ROW(inp0, mask0, mask1, mask2, mask3, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res0 = APPLY_VERT_QPEL_NO_ROUND_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, @@ -3671,12 +3653,9 @@ static void hv_mc_qpel_no_rnd_aver_v_src1_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_no_rnd_aver_hv_src11_16x16_msa(const uint8_t *src, @@ -3744,7 +3723,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz2, (v2i64) horiz1); res0 = __msa_ave_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -3764,7 +3743,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz4, (v2i64) horiz3); res1 = __msa_ave_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -3787,7 +3766,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, res0 = __msa_ave_u_b(avg0, res0); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); res1 = __msa_ave_u_b(avg1, res1); - ST8x4_UB(res0, res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_horiz_src0_16x16_msa(const uint8_t *src, @@ -3893,7 +3872,7 @@ static void hv_mc_qpel_aver_hv_src00_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -3915,7 +3894,7 @@ static void hv_mc_qpel_aver_hv_src00_8x8_msa(const uint8_t *src, res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE_1ROW(inp0, mask0, mask1, mask2, mask3, const20, const6, const3); horiz8 = __msa_aver_u_b(inp0, res0); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res0 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, @@ -3930,11 +3909,9 @@ static void hv_mc_qpel_aver_hv_src00_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_horiz_16x16_msa(const uint8_t *src, @@ -4034,7 +4011,7 @@ static void hv_mc_qpel_aver_v_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz1, (v2i64) horiz0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4059,7 +4036,7 @@ static void hv_mc_qpel_aver_v_src0_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz5, (v2i64) horiz4); @@ -4069,11 +4046,9 @@ static void hv_mc_qpel_aver_v_src0_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_horiz_src1_16x16_msa(const uint8_t *src, @@ -4197,7 +4172,7 @@ static void hv_mc_qpel_aver_hv_src10_8x8_msa(const uint8_t *src, horiz3, horiz2, horiz1, horiz0, horiz4, horiz5, horiz6, horiz7, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; inp0 = LD_UB(src); @@ -4212,7 +4187,7 @@ static void hv_mc_qpel_aver_hv_src10_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz5, (v2i64) horiz4); @@ -4222,12 +4197,9 @@ static void hv_mc_qpel_aver_hv_src10_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz7, (v2i64) horiz6); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_h_src0_16x16_msa(const uint8_t *src, @@ -4285,7 +4257,7 @@ static void hv_mc_qpel_aver_h_src0_8x8_msa(const uint8_t *src, horiz1, horiz0, horiz0, horiz1, horiz2, horiz3, horiz4, horiz5, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4309,7 +4281,7 @@ static void hv_mc_qpel_aver_h_src0_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res1 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, @@ -4317,9 +4289,7 @@ static void hv_mc_qpel_aver_h_src0_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_16x16_msa(const uint8_t *src, @@ -4371,7 +4341,7 @@ static void hv_mc_qpel_8x8_msa(const uint8_t *src, int32_t src_stride, horiz1, horiz0, horiz0, horiz1, horiz2, horiz3, horiz4, horiz5, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4389,7 +4359,7 @@ static void hv_mc_qpel_8x8_msa(const uint8_t *src, int32_t src_stride, horiz8 = APPLY_HORIZ_QPEL_FILTER_8BYTE_1ROW(inp0, mask0, mask1, mask2, mask3, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res0 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, @@ -4402,9 +4372,7 @@ static void hv_mc_qpel_8x8_msa(const uint8_t *src, int32_t src_stride, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_h_src1_16x16_msa(const uint8_t *src, @@ -4478,31 +4446,25 @@ static void hv_mc_qpel_aver_h_src1_8x8_msa(const uint8_t *src, horiz1, horiz0, horiz0, horiz1, horiz2, horiz3, horiz4, horiz5, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += (2 * dst_stride); - res1 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz2, horiz1, horiz0, horiz0, horiz3, horiz4, horiz5, horiz6, horiz3, horiz2, horiz1, horiz0, horiz4, horiz5, horiz6, horiz7, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); - dst += (2 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); + dst += (4 * dst_stride); res0 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz4, horiz3, horiz2, horiz1, horiz5, horiz6, horiz7, horiz8, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += (2 * dst_stride); - res1 = APPLY_VERT_QPEL_FILTER_8BYTE(horiz6, horiz5, horiz4, horiz3, horiz7, horiz8, horiz8, horiz7, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_hv_src01_16x16_msa(const uint8_t *src, @@ -4561,7 +4523,7 @@ static void hv_mc_qpel_aver_hv_src01_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_insve_d((v2i64) horiz1, 1, (v2i64) horiz2); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4587,7 +4549,7 @@ static void hv_mc_qpel_aver_hv_src01_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_insve_d((v2i64) horiz5, 1, (v2i64) horiz6); @@ -4597,13 +4559,9 @@ static void hv_mc_qpel_aver_hv_src01_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - avg1 = (v16u8) __msa_insve_d((v2i64) horiz7, 1, (v2i64) horiz8); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); - dst += (2 * dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_v_src1_16x16_msa(const uint8_t *src, @@ -4660,7 +4618,7 @@ static void hv_mc_qpel_aver_v_src1_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_insve_d((v2i64) horiz1, 1, (v2i64) horiz2); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4685,7 +4643,7 @@ static void hv_mc_qpel_aver_v_src1_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_insve_d((v2i64) horiz5, 1, (v2i64) horiz6); res0 = __msa_aver_u_b(avg0, res0); @@ -4695,11 +4653,9 @@ static void hv_mc_qpel_aver_v_src1_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; avg1 = (v16u8) __msa_insve_d((v2i64) horiz7, 1, (v2i64) horiz8); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_aver_hv_src11_16x16_msa(const uint8_t *src, @@ -4764,7 +4720,7 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); LD_UB2(src, src_stride, inp2, inp3); src += (2 * src_stride); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += 2 * dst_stride; res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, @@ -4791,7 +4747,7 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, horiz5, horiz4, horiz3, horiz2, horiz6, horiz7, horiz8, horiz8, const20, const6, const3); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += 2 * dst_stride; avg0 = (v16u8) __msa_ilvr_d((v2i64) horiz6, (v2i64) horiz5); @@ -4801,12 +4757,9 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, horiz7, horiz6, horiz5, horiz4, horiz8, horiz8, horiz7, horiz6, const20, const6, const3); - ST8x2_UB(res0, dst, dst_stride); - dst += 2 * dst_stride; - avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D4(res0, res1, 0, 1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_hv_src00_16x16_msa(const uint8_t *src, @@ -4869,7 +4822,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4889,7 +4842,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -4906,7 +4859,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -4919,7 +4872,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src00_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_v_src0_16x16_msa(const uint8_t *src, @@ -4979,7 +4932,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -4998,7 +4951,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5015,7 +4968,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5028,7 +4981,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src0_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_hv_src10_16x16_msa(const uint8_t *src, @@ -5099,7 +5052,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -5122,7 +5075,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5140,7 +5093,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5153,7 +5106,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_h_src0_16x16_msa(const uint8_t *src, @@ -5214,7 +5167,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -5232,7 +5185,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5247,7 +5200,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5258,8 +5211,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src0_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); - dst += (2 * dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_16x16_msa(const uint8_t *src, int32_t src_stride, @@ -5324,7 +5276,7 @@ static void hv_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, int32_t src_stride, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5335,7 +5287,7 @@ static void hv_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, int32_t src_stride, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5346,7 +5298,7 @@ static void hv_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, int32_t src_stride, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5357,7 +5309,7 @@ static void hv_mc_qpel_avg_dst_8x8_msa(const uint8_t *src, int32_t src_stride, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_h_src1_16x16_msa(const uint8_t *src, @@ -5425,7 +5377,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -5446,7 +5398,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5462,7 +5414,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, const20, const6, const3); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5473,7 +5425,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, const20, const6, const3); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_hv_src01_16x16_msa(const uint8_t *src, @@ -5537,7 +5489,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5557,7 +5509,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5579,7 +5531,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(const uint8_t *src, LD_UB2(dst, dst_stride, dst0, dst1); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); @@ -5587,7 +5539,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src01_8x8_msa(const uint8_t *src, LD_UB2(dst, dst_stride, dst0, dst1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_v_src1_16x16_msa(const uint8_t *src, @@ -5647,7 +5599,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5666,7 +5618,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5686,7 +5638,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(const uint8_t *src, LD_UB2(dst, dst_stride, dst0, dst1); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); avg1 = (v16u8) __msa_ilvr_d((v2i64) horiz8, (v2i64) horiz7); @@ -5694,7 +5646,7 @@ static void hv_mc_qpel_avg_dst_aver_v_src1_8x8_msa(const uint8_t *src, LD_UB2(dst, dst_stride, dst0, dst1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void hv_mc_qpel_avg_dst_aver_hv_src11_16x16_msa(const uint8_t *src, @@ -5762,7 +5714,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(src, src_stride, inp2, inp3); @@ -5783,7 +5735,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); dst += (2 * dst_stride); inp0 = LD_UB(src); @@ -5800,7 +5752,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, res0 = __msa_aver_u_b(avg0, res0); avg0 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res0 = __msa_aver_u_b(avg0, res0); - ST8x2_UB(res0, dst, dst_stride); + ST_D2(res0, 0, 1, dst, dst_stride); dst += (2 * dst_stride); LD_UB2(dst, dst_stride, dst0, dst1); @@ -5812,7 +5764,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, res1 = __msa_aver_u_b(avg1, res1); avg1 = (v16u8) __msa_ilvr_d((v2i64) dst1, (v2i64) dst0); res1 = __msa_aver_u_b(avg1, res1); - ST8x2_UB(res1, dst, dst_stride); + ST_D2(res1, 0, 1, dst, dst_stride); } static void copy_8x8_msa(const uint8_t *src, int32_t src_stride, |