History

avutil/mips: refactor msa SLDI_Bn_0 and SLDI_Bn macros.

Changing details as following: 1. The previous order of parameters are irregular and difficult to understand. Adjust the order of the parameters according to the rule: (RTYPE, input registers, input mask/input index/..., output registers). Most of the existing msa macros follow the rule. 2. Remove the redundant macro SLDI_Bn_0 and use SLDI_Bn instead.

gxw committed 7 years ago

Commit 92fc0bf1 parent 77937a412 files · +222 −215Browse files

Showing the changes to libavcodec/mips (11 of 12 files). Show all

Unified · Split

11 files
  1. libavcodec/mips/h264dsp_msa.c +5 −4
  2. libavcodec/mips/h264qpel_msa.c +32 −32
  3. libavcodec/mips/hevc_lpf_sao_msa.c +36 −34
  4. libavcodec/mips/hevcpred_msa.c +16 −14
  5. libavcodec/mips/hpeldsp_msa.c +42 −24
  6. libavcodec/mips/me_cmp_msa.c +4 −4
  7. libavcodec/mips/qpeldsp_msa.c +42 −42
  8. libavcodec/mips/vp8_mc_msa.c +2 −2
  9. libavcodec/mips/vp9_idct_msa.c +2 −1
  10. libavcodec/mips/vp9_lpf_msa.c +2 −1
  11. libavcodec/mips/vp9_mc_msa.c +8 −8
libavcodec/mips/h264dsp_msa.c+5−4
@@ -618,7 +618,7 @@ static void avc_biwgt_8x16_msa(uint8_t *src, uint8_t *dst, int32_t stride, · 617 unmodified lines
618 \618 \
619 out0 = (v16u8) __msa_ilvr_b((v16i8) in1, (v16i8) in0); \619 out0 = (v16u8) __msa_ilvr_b((v16i8) in1, (v16i8) in0); \
620 out1 = (v16u8) __msa_sldi_b(zero_m, (v16i8) out0, 2); \620 out1 = (v16u8) __msa_sldi_b(zero_m, (v16i8) out0, 2); \
621 SLDI_B2_0_UB(out1, out2, out2, out3, 2); \621 SLDI_B2_UB(zero_m, out1, zero_m, out2, 2, out2, out3); \
622}622}
623 623
624#define AVC_LPF_H_2BYTE_CHROMA_422(src, stride, tc_val, alpha, beta, res) \624#define AVC_LPF_H_2BYTE_CHROMA_422(src, stride, tc_val, alpha, beta, res) \
@@ -1023,7 +1023,8 @@ static void avc_h_loop_filter_luma_mbaff_intra_msa(uint8_t *src, int32_t stride, · 398 unmodified lines
1023 1023
1024 ILVR_W2_SB(tmp2, tmp0, tmp3, tmp1, src6, src3);1024 ILVR_W2_SB(tmp2, tmp0, tmp3, tmp1, src6, src3);
1025 ILVL_W2_SB(tmp2, tmp0, tmp3, tmp1, src1, src5);1025 ILVL_W2_SB(tmp2, tmp0, tmp3, tmp1, src1, src5);
1026 SLDI_B4_0_SB(src6, src1, src3, src5, src0, src2, src4, src7, 8);1026 SLDI_B4_SB(zeros, src6, zeros, src1, zeros, src3, zeros, src5,
1027 8, src0, src2, src4, src7);
1027 1028
1028 p0_asub_q0 = __msa_asub_u_b((v16u8) src2, (v16u8) src3);1029 p0_asub_q0 = __msa_asub_u_b((v16u8) src2, (v16u8) src3);
1029 p1_asub_p0 = __msa_asub_u_b((v16u8) src1, (v16u8) src2);1030 p1_asub_p0 = __msa_asub_u_b((v16u8) src1, (v16u8) src2);
@@ -1114,10 +1115,10 @@ static void avc_h_loop_filter_luma_mbaff_intra_msa(uint8_t *src, int32_t stride, · 84 unmodified lines
1114 ILVRL_H2_SH(zeros, dst2_x, tmp2, tmp3);1115 ILVRL_H2_SH(zeros, dst2_x, tmp2, tmp3);
1115 1116
1116 ILVR_W2_UB(tmp2, tmp0, tmp3, tmp1, dst0, dst4);1117 ILVR_W2_UB(tmp2, tmp0, tmp3, tmp1, dst0, dst4);
1117 SLDI_B2_0_UB(dst0, dst4, dst1, dst5, 8);1118 SLDI_B2_UB(zeros, dst0, zeros, dst4, 8, dst1, dst5);
1118 dst2_x = (v16u8) __msa_ilvl_w((v4i32) tmp2, (v4i32) tmp0);1119 dst2_x = (v16u8) __msa_ilvl_w((v4i32) tmp2, (v4i32) tmp0);
1119 dst2_y = (v16u8) __msa_ilvl_w((v4i32) tmp3, (v4i32) tmp1);1120 dst2_y = (v16u8) __msa_ilvl_w((v4i32) tmp3, (v4i32) tmp1);
1120 SLDI_B2_0_UB(dst2_x, dst2_y, dst3_x, dst3_y, 8);1121 SLDI_B2_UB(zeros, dst2_x, zeros, dst2_y, 8, dst3_x, dst3_y);
1121 1122
1122 out0 = __msa_copy_u_w((v4i32) dst0, 0);1123 out0 = __msa_copy_u_w((v4i32) dst0, 0);
1123 out1 = __msa_copy_u_h((v8i16) dst0, 2);1124 out1 = __msa_copy_u_h((v8i16) dst0, 2);
libavcodec/mips/h264qpel_msa.c+32−32
@@ -790,8 +790,8 @@ void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src, · 789 unmodified lines
790 minus5b, res4, res5, res6, res7);790 minus5b, res4, res5, res6, res7);
791 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,791 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
792 plus20b, res4, res5, res6, res7);792 plus20b, res4, res5, res6, res7);
793 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 2);793 SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 2,
794 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 2);794 src0, src2, src4, src6);
795 SRARI_H4_SH(res0, res1, res2, res3, 5);795 SRARI_H4_SH(res0, res1, res2, res3, 5);
796 SRARI_H4_SH(res4, res5, res6, res7, 5);796 SRARI_H4_SH(res4, res5, res6, res7, 5);
797 SAT_SH4_SH(res0, res1, res2, res3, 7);797 SAT_SH4_SH(res0, res1, res2, res3, 7);
@@ -858,8 +858,8 @@ void ff_put_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src, · 60 unmodified lines
858 minus5b, res4, res5, res6, res7);858 minus5b, res4, res5, res6, res7);
859 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,859 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
860 plus20b, res4, res5, res6, res7);860 plus20b, res4, res5, res6, res7);
861 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 3);861 SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 3,
862 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 3);862 src0, src2, src4, src6);
863 SRARI_H4_SH(res0, res1, res2, res3, 5);863 SRARI_H4_SH(res0, res1, res2, res3, 5);
864 SRARI_H4_SH(res4, res5, res6, res7, 5);864 SRARI_H4_SH(res4, res5, res6, res7, 5);
865 SAT_SH4_SH(res0, res1, res2, res3, 7);865 SAT_SH4_SH(res0, res1, res2, res3, 7);
@@ -911,10 +911,10 @@ void ff_put_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src, · 45 unmodified lines
911 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);911 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
912 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,912 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
913 res4, res5, res6, res7);913 res4, res5, res6, res7);
914 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);914 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2,
915 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);915 src0, src1, src2, src3);
916 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 2);916 SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 2,
917 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 2);917 src4, src5, src6, src7);
918 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);918 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
919 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);919 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
920 SRARI_H4_SH(res0, res1, res2, res3, 5);920 SRARI_H4_SH(res0, res1, res2, res3, 5);
@@ -966,10 +966,10 @@ void ff_put_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src, · 45 unmodified lines
966 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);966 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
967 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,967 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
968 res4, res5, res6, res7);968 res4, res5, res6, res7);
969 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);969 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3,
970 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);970 src0, src1, src2, src3);
971 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 3);971 SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 3,
972 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 3);972 src4, src5, src6, src7);
973 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);973 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
974 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);974 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
975 SRARI_H4_SH(res0, res1, res2, res3, 5);975 SRARI_H4_SH(res0, res1, res2, res3, 5);
@@ -1007,8 +1007,8 @@ void ff_put_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src, · 31 unmodified lines
1007 SRARI_H2_SH(res0, res1, 5);1007 SRARI_H2_SH(res0, res1, 5);
1008 SAT_SH2_SH(res0, res1, 7);1008 SAT_SH2_SH(res0, res1, 7);
1009 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);1009 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);
1010 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);1010 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2,
1011 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);1011 src0, src1, src2, src3);
1012 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);1012 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
1013 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);1013 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
1014 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);1014 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
@@ -1038,8 +1038,8 @@ void ff_put_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src, · 23 unmodified lines
1038 SRARI_H2_SH(res0, res1, 5);1038 SRARI_H2_SH(res0, res1, 5);
1039 SAT_SH2_SH(res0, res1, 7);1039 SAT_SH2_SH(res0, res1, 7);
1040 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);1040 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);
1041 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);1041 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3,
1042 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);1042 src0, src1, src2, src3);
1043 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);1043 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
1044 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);1044 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
1045 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);1045 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
@@ -3194,8 +3194,8 @@ void ff_avg_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src, · 2148 unmodified lines
3194 minus5b, res4, res5, res6, res7);3194 minus5b, res4, res5, res6, res7);
3195 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,3195 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3196 plus20b, res4, res5, res6, res7);3196 plus20b, res4, res5, res6, res7);
3197 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 2);3197 SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 2,
3198 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 2);3198 src0, src2, src4, src6);
3199 SRARI_H4_SH(res0, res1, res2, res3, 5);3199 SRARI_H4_SH(res0, res1, res2, res3, 5);
3200 SRARI_H4_SH(res4, res5, res6, res7, 5);3200 SRARI_H4_SH(res4, res5, res6, res7, 5);
3201 SAT_SH4_SH(res0, res1, res2, res3, 7);3201 SAT_SH4_SH(res0, res1, res2, res3, 7);
@@ -3266,8 +3266,8 @@ void ff_avg_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src, · 64 unmodified lines
3266 minus5b, res4, res5, res6, res7);3266 minus5b, res4, res5, res6, res7);
3267 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,3267 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3268 plus20b, res4, res5, res6, res7);3268 plus20b, res4, res5, res6, res7);
3269 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 3);3269 SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 3,
3270 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 3);3270 src0, src2, src4, src6);
3271 SRARI_H4_SH(res0, res1, res2, res3, 5);3271 SRARI_H4_SH(res0, res1, res2, res3, 5);
3272 SRARI_H4_SH(res4, res5, res6, res7, 5);3272 SRARI_H4_SH(res4, res5, res6, res7, 5);
3273 SAT_SH4_SH(res0, res1, res2, res3, 7);3273 SAT_SH4_SH(res0, res1, res2, res3, 7);
@@ -3323,10 +3323,10 @@ void ff_avg_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src, · 49 unmodified lines
3323 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);3323 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
3324 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,3324 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3325 res4, res5, res6, res7);3325 res4, res5, res6, res7);
3326 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);3326 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2,
3327 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);3327 src0, src1, src2, src3);
3328 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 2);3328 SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 2,
3329 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 2);3329 src4, src5, src6, src7);
3330 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);3330 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
3331 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);3331 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
3332 SRARI_H4_SH(res0, res1, res2, res3, 5);3332 SRARI_H4_SH(res0, res1, res2, res3, 5);
@@ -3388,10 +3388,10 @@ void ff_avg_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src, · 55 unmodified lines
3388 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);3388 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
3389 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,3389 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3390 res4, res5, res6, res7);3390 res4, res5, res6, res7);
3391 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);3391 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3,
3392 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);3392 src0, src1, src2, src3);
3393 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 3);3393 SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 3,
3394 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 3);3394 src4, src5, src6, src7);
3395 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);3395 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
3396 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);3396 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
3397 SRARI_H4_SH(res0, res1, res2, res3, 5);3397 SRARI_H4_SH(res0, res1, res2, res3, 5);
@@ -3439,8 +3439,8 @@ void ff_avg_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src, · 41 unmodified lines
3439 SRARI_H2_SH(out0, out1, 5);3439 SRARI_H2_SH(out0, out1, 5);
3440 SAT_SH2_SH(out0, out1, 7);3440 SAT_SH2_SH(out0, out1, 7);
3441 res = __msa_pckev_b((v16i8) out1, (v16i8) out0);3441 res = __msa_pckev_b((v16i8) out1, (v16i8) out0);
3442 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);3442 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2,
3443 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);3443 src0, src1, src2, src3);
3444 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);3444 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
3445 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);3445 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
3446 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);3446 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
@@ -3475,8 +3475,8 @@ void ff_avg_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src, · 28 unmodified lines
3475 SRARI_H2_SH(out0, out1, 5);3475 SRARI_H2_SH(out0, out1, 5);
3476 SAT_SH2_SH(out0, out1, 7);3476 SAT_SH2_SH(out0, out1, 7);
3477 res = __msa_pckev_b((v16i8) out1, (v16i8) out0);3477 res = __msa_pckev_b((v16i8) out1, (v16i8) out0);
3478 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);3478 SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3,
3479 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);3479 src0, src1, src2, src3);
3480 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);3480 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
3481 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);3481 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
3482 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);3482 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
libavcodec/mips/hevc_lpf_sao_msa.c+36−34
@@ -1357,6 +1357,7 @@ static void hevc_sao_edge_filter_0degree_8width_msa(uint8_t *dst, · 1356 unmodified lines
1357 v16u8 cmp_minus10, diff_minus10, diff_minus11;1357 v16u8 cmp_minus10, diff_minus10, diff_minus11;
1358 v16u8 src0, src1, dst0, src_minus10, src_minus11, src_plus10, src_plus11;1358 v16u8 src0, src1, dst0, src_minus10, src_minus11, src_plus10, src_plus11;
1359 v16i8 offset, sao_offset = LD_SB(sao_offset_val);1359 v16i8 offset, sao_offset = LD_SB(sao_offset_val);
1360 v16i8 zeros = { 0 };
1360 1361
1361 sao_offset = __msa_pckev_b(sao_offset, sao_offset);1362 sao_offset = __msa_pckev_b(sao_offset, sao_offset);
1362 src -= 1;1363 src -= 1;
@@ -1367,8 +1368,8 @@ static void hevc_sao_edge_filter_0degree_8width_msa(uint8_t *dst, · 4 unmodified lines
1367 for (height -= 2; height; height -= 2) {1368 for (height -= 2; height; height -= 2) {
1368 src += (src_stride << 1);1369 src += (src_stride << 1);
1369 1370
1370 SLDI_B2_0_UB(src_minus10, src_minus11, src0, src1, 1);1371 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 1, src0, src1);
1371 SLDI_B2_0_UB(src_minus10, src_minus11, src_plus10, src_plus11, 2);1372 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_plus10, src_plus11);
1372 1373
1373 PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10,1374 PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10,
1374 src_minus10, src_plus10);1375 src_minus10, src_plus10);
@@ -1404,8 +1405,8 @@ static void hevc_sao_edge_filter_0degree_8width_msa(uint8_t *dst, · 29 unmodified lines
1404 dst += dst_stride;1405 dst += dst_stride;
1405 }1406 }
1406 1407
1407 SLDI_B2_0_UB(src_minus10, src_minus11, src0, src1, 1);1408 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 1, src0, src1);
1408 SLDI_B2_0_UB(src_minus10, src_minus11, src_plus10, src_plus11, 2);1409 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_plus10, src_plus11);
1409 1410
1410 PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10, src_minus10,1411 PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10, src_minus10,
1411 src_plus10);1412 src_plus10);
@@ -1473,14 +1474,12 @@ static void hevc_sao_edge_filter_0degree_16multiple_msa(uint8_t *dst, · 61 unmodified lines
1473 dst_ptr = dst + v_cnt;1474 dst_ptr = dst + v_cnt;
1474 LD_UB4(src_minus1, src_stride, src10, src11, src12, src13);1475 LD_UB4(src_minus1, src_stride, src10, src11, src12, src13);
1475 1476
1476 SLDI_B2_SB(src10, src11, src_minus10, src_minus11, src_zero0,1477 SLDI_B4_SB(src10, src_minus10, src11, src_minus11,
1477 src_zero1, 1);1478 src12, src_minus12, src13, src_minus13, 1,
1478 SLDI_B2_SB(src12, src13, src_minus12, src_minus13, src_zero2,1479 src_zero0, src_zero1, src_zero2, src_zero3);
1479 src_zero3, 1);1480 SLDI_B4_SB(src10, src_minus10, src11, src_minus11,
1480 SLDI_B2_SB(src10, src11, src_minus10, src_minus11, src_plus10,1481 src12, src_minus12, src13, src_minus13, 2,
1481 src_plus11, 2);1482 src_plus10, src_plus11, src_plus12, src_plus13);
1482 SLDI_B2_SB(src12, src13, src_minus12, src_minus13, src_plus12,
1483 src_plus13, 2);
1484 1483
1485 cmp_minus10 = ((v16u8) src_zero0 == src_minus10);1484 cmp_minus10 = ((v16u8) src_zero0 == src_minus10);
1486 cmp_plus10 = ((v16u8) src_zero0 == (v16u8) src_plus10);1485 cmp_plus10 = ((v16u8) src_zero0 == (v16u8) src_plus10);
@@ -1880,6 +1879,7 @@ static void hevc_sao_edge_filter_45degree_4width_msa(uint8_t *dst, · 393 unmodified lines
1880 v16u8 src_minus11, src10, src11;1879 v16u8 src_minus11, src10, src11;
1881 v16i8 src_plus0, src_zero0, src_plus1, src_zero1, dst0;1880 v16i8 src_plus0, src_zero0, src_plus1, src_zero1, dst0;
1882 v8i16 offset_mask0, offset_mask1;1881 v8i16 offset_mask0, offset_mask1;
1882 v16i8 zeros = { 0 };
1883 1883
1884 sao_offset = __msa_pckev_b(sao_offset, sao_offset);1884 sao_offset = __msa_pckev_b(sao_offset, sao_offset);
1885 1885
@@ -1892,8 +1892,8 @@ static void hevc_sao_edge_filter_45degree_4width_msa(uint8_t *dst, · 6 unmodified lines
1892 for (height -= 2; height; height -= 2) {1892 for (height -= 2; height; height -= 2) {
1893 src_orig += (src_stride << 1);1893 src_orig += (src_stride << 1);
1894 1894
1895 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);1895 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
1896 SLDI_B2_0_SB(src10, src11, src_plus0, src_plus1, 2);1896 SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus0, src_plus1);
1897 1897
1898 ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10,1898 ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10,
1899 src_minus11);1899 src_minus11);
@@ -1938,8 +1938,8 @@ static void hevc_sao_edge_filter_45degree_4width_msa(uint8_t *dst, · 38 unmodified lines
1938 dst += dst_stride;1938 dst += dst_stride;
1939 }1939 }
1940 1940
1941 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);1941 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
1942 SLDI_B2_0_SB(src10, src11, src_plus0, src_plus1, 2);1942 SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus0, src_plus1);
1943 1943
1944 ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10,1944 ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10,
1945 src_minus11);1945 src_minus11);
@@ -1992,6 +1992,7 @@ static void hevc_sao_edge_filter_45degree_8width_msa(uint8_t *dst, · 46 unmodified lines
1992 v16u8 src_minus10, src10, src_minus11, src11;1992 v16u8 src_minus10, src10, src_minus11, src11;
1993 v16i8 src_zero0, src_plus10, src_zero1, src_plus11, dst0;1993 v16i8 src_zero0, src_plus10, src_zero1, src_plus11, dst0;
1994 v8i16 offset_mask0, offset_mask1;1994 v8i16 offset_mask0, offset_mask1;
1995 v16i8 zeros = { 0 };
1995 1996
1996 sao_offset = __msa_pckev_b(sao_offset, sao_offset);1997 sao_offset = __msa_pckev_b(sao_offset, sao_offset);
1997 src_orig = src - 1;1998 src_orig = src - 1;
@@ -2003,8 +2004,8 @@ static void hevc_sao_edge_filter_45degree_8width_msa(uint8_t *dst, · 5 unmodified lines
2003 for (height -= 2; height; height -= 2) {2004 for (height -= 2; height; height -= 2) {
2004 src_orig += (src_stride << 1);2005 src_orig += (src_stride << 1);
2005 2006
2006 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2007 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2007 SLDI_B2_0_SB(src10, src11, src_plus10, src_plus11, 2);2008 SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus10, src_plus11);
2008 2009
2009 ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11,2010 ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11,
2010 src_minus10, src_minus11);2011 src_minus10, src_minus11);
@@ -2048,8 +2049,8 @@ static void hevc_sao_edge_filter_45degree_8width_msa(uint8_t *dst, · 37 unmodified lines
2048 dst += dst_stride;2049 dst += dst_stride;
2049 }2050 }
2050 2051
2051 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2052 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2052 SLDI_B2_0_SB(src10, src11, src_plus10, src_plus11, 2);2053 SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus10, src_plus11);
2053 ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11, src_minus10,2054 ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11, src_minus10,
2054 src_minus11);2055 src_minus11);
2055 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,2056 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,
@@ -2130,12 +2131,11 @@ static void hevc_sao_edge_filter_45degree_16multiple_msa(uint8_t *dst, · 74 unmodified lines
2130 src_plus13 = LD_UB(src + 1 + v_cnt + (src_stride << 2));2131 src_plus13 = LD_UB(src + 1 + v_cnt + (src_stride << 2));
2131 src_orig += 16;2132 src_orig += 16;
2132 2133
2133 SLDI_B2_SB(src10, src11, src_minus11, src_minus12, src_zero0,2134 SLDI_B4_SB(src10, src_minus11, src11, src_minus12,
2134 src_zero1, 1);2135 src12, src_minus13, src13, src_minus14, 1,
2135 SLDI_B2_SB(src12, src13, src_minus13, src_minus14, src_zero2,2136 src_zero0, src_zero1, src_zero2, src_zero3);
2136 src_zero3, 1);2137 SLDI_B2_SB(src11, src_minus12, src12, src_minus13, 2, src_plus10,
2137 SLDI_B2_SB(src11, src12, src_minus12, src_minus13, src_plus10,2138 src_plus11);
2138 src_plus11, 2);
2139 2139
2140 src_plus12 = __msa_sldi_b((v16i8) src13, (v16i8) src_minus14, 2);2140 src_plus12 = __msa_sldi_b((v16i8) src13, (v16i8) src_minus14, 2);
2141 2141
@@ -2228,6 +2228,7 @@ static void hevc_sao_edge_filter_135degree_4width_msa(uint8_t *dst, · 86 unmodified lines
2228 v16u8 cmp_minus10, diff_minus10, cmp_minus11, diff_minus11;2228 v16u8 cmp_minus10, diff_minus10, cmp_minus11, diff_minus11;
2229 v16u8 src_minus10, src10, src_minus11, src11;2229 v16u8 src_minus10, src10, src_minus11, src11;
2230 v8i16 offset_mask0, offset_mask1;2230 v8i16 offset_mask0, offset_mask1;
2231 v16i8 zeros = { 0 };
2231 2232
2232 sao_offset = __msa_pckev_b(sao_offset, sao_offset);2233 sao_offset = __msa_pckev_b(sao_offset, sao_offset);
2233 src_orig = src - 1;2234 src_orig = src - 1;
@@ -2239,8 +2240,8 @@ static void hevc_sao_edge_filter_135degree_4width_msa(uint8_t *dst, · 5 unmodified lines
2239 for (height -= 2; height; height -= 2) {2240 for (height -= 2; height; height -= 2) {
2240 src_orig += (src_stride << 1);2241 src_orig += (src_stride << 1);
2241 2242
2242 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2243 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2243 SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2);2244 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11);
2244 2245
2245 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,2246 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,
2246 src_minus11);2247 src_minus11);
@@ -2286,8 +2287,8 @@ static void hevc_sao_edge_filter_135degree_4width_msa(uint8_t *dst, · 39 unmodified lines
2286 dst += dst_stride;2287 dst += dst_stride;
2287 }2288 }
2288 2289
2289 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2290 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2290 SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2);2291 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11);
2291 2292
2292 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,2293 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,
2293 src_minus11);2294 src_minus11);
@@ -2342,6 +2343,7 @@ static void hevc_sao_edge_filter_135degree_8width_msa(uint8_t *dst, · 48 unmodified lines
2342 v16u8 src_minus10, src10, src_minus11, src11;2343 v16u8 src_minus10, src10, src_minus11, src11;
2343 v16i8 src_zero0, src_zero1, dst0;2344 v16i8 src_zero0, src_zero1, dst0;
2344 v8i16 offset_mask0, offset_mask1;2345 v8i16 offset_mask0, offset_mask1;
2346 v16i8 zeros = { 0 };
2345 2347
2346 sao_offset = __msa_pckev_b(sao_offset, sao_offset);2348 sao_offset = __msa_pckev_b(sao_offset, sao_offset);
2347 src_orig = src - 1;2349 src_orig = src - 1;
@@ -2353,8 +2355,8 @@ static void hevc_sao_edge_filter_135degree_8width_msa(uint8_t *dst, · 5 unmodified lines
2353 for (height -= 2; height; height -= 2) {2355 for (height -= 2; height; height -= 2) {
2354 src_orig += (src_stride << 1);2356 src_orig += (src_stride << 1);
2355 2357
2356 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2358 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2357 SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2);2359 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11);
2358 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,2360 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,
2359 src_minus11);2361 src_minus11);
2360 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,2362 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,
@@ -2398,8 +2400,8 @@ static void hevc_sao_edge_filter_135degree_8width_msa(uint8_t *dst, · 37 unmodified lines
2398 dst += dst_stride;2400 dst += dst_stride;
2399 }2401 }
2400 2402
2401 SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1);2403 SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1);
2402 SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2);2404 SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11);
2403 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,2405 ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10,
2404 src_minus11);2406 src_minus11);
2405 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,2407 ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0,
libavcodec/mips/hevcpred_msa.c+16−14
@@ -998,7 +998,8 @@ static void hevc_intra_pred_angular_upper_4width_msa(const uint8_t *src_top, · 997 unmodified lines
998 ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3);998 ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3);
999 ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3,999 ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3,
1000 diff0, diff2, diff4, diff6);1000 diff0, diff2, diff4, diff6);
1001 SLDI_B4_0_SH(diff0, diff2, diff4, diff6, diff1, diff3, diff5, diff7, 2);1001 SLDI_B4_SH(zero, diff0, zero, diff2, zero, diff4, zero, diff6, 2,
1002 diff1, diff3, diff5, diff7);
1002 ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2);1003 ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2);
1003 ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3);1004 ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3);
1004 MUL2(diff1, fact0, diff3, fact2, diff1, diff3);1005 MUL2(diff1, fact0, diff3, fact2, diff1, diff3);
@@ -1093,8 +1094,8 @@ static void hevc_intra_pred_angular_upper_8width_msa(const uint8_t *src_top, · 88 unmodified lines
1093 UNPCK_UB_SH(top2, diff4, diff5);1094 UNPCK_UB_SH(top2, diff4, diff5);
1094 UNPCK_UB_SH(top3, diff6, diff7);1095 UNPCK_UB_SH(top3, diff6, diff7);
1095 1096
1096 SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2);1097 SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2,
1097 SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2);1098 diff1, diff3, diff5, diff7);
1098 MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6,1099 MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6,
1099 diff1, diff3, diff5, diff7);1100 diff1, diff3, diff5, diff7);
1100 1101
@@ -1186,8 +1187,8 @@ static void hevc_intra_pred_angular_upper_16width_msa(const uint8_t *src_top, · 85 unmodified lines
1186 fact6 = __msa_fill_h(fact_val3);1187 fact6 = __msa_fill_h(fact_val3);
1187 fact7 = __msa_fill_h(32 - fact_val3);1188 fact7 = __msa_fill_h(32 - fact_val3);
1188 1189
1189 SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1);1190 SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1,
1190 SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1);1191 top1, top3, top5, top7);
1191 UNPCK_UB_SH(top0, diff0, diff1);1192 UNPCK_UB_SH(top0, diff0, diff1);
1192 UNPCK_UB_SH(top1, diff2, diff3);1193 UNPCK_UB_SH(top1, diff2, diff3);
1193 UNPCK_UB_SH(top2, diff4, diff5);1194 UNPCK_UB_SH(top2, diff4, diff5);
@@ -1297,8 +1298,8 @@ static void hevc_intra_pred_angular_upper_32width_msa(const uint8_t *src_top, · 103 unmodified lines
1297 top2 = top1;1298 top2 = top1;
1298 top6 = top5;1299 top6 = top5;
1299 1300
1300 SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1);1301 SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1,
1301 SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1);1302 top1, top3, top5, top7);
1302 UNPCK_UB_SH(top0, diff0, diff1);1303 UNPCK_UB_SH(top0, diff0, diff1);
1303 UNPCK_UB_SH(top1, diff2, diff3);1304 UNPCK_UB_SH(top1, diff2, diff3);
1304 UNPCK_UB_SH(top2, diff4, diff5);1305 UNPCK_UB_SH(top2, diff4, diff5);
@@ -1407,7 +1408,8 @@ static void hevc_intra_pred_angular_lower_4width_msa(const uint8_t *src_top, · 102 unmodified lines
1407 ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3);1408 ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3);
1408 ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3,1409 ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3,
1409 diff0, diff2, diff4, diff6);1410 diff0, diff2, diff4, diff6);
1410 SLDI_B4_0_SH(diff0, diff2, diff4, diff6, diff1, diff3, diff5, diff7, 2);1411 SLDI_B4_SH(zero, diff0, zero, diff2, zero, diff4, zero, diff6, 2,
1412 diff1, diff3, diff5, diff7);
1411 ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2);1413 ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2);
1412 ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3);1414 ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3);
1413 MUL2(diff1, fact0, diff3, fact2, diff1, diff3);1415 MUL2(diff1, fact0, diff3, fact2, diff1, diff3);
@@ -1511,8 +1513,8 @@ static void hevc_intra_pred_angular_lower_8width_msa(const uint8_t *src_top, · 97 unmodified lines
1511 UNPCK_UB_SH(top1, diff2, diff3);1513 UNPCK_UB_SH(top1, diff2, diff3);
1512 UNPCK_UB_SH(top2, diff4, diff5);1514 UNPCK_UB_SH(top2, diff4, diff5);
1513 UNPCK_UB_SH(top3, diff6, diff7);1515 UNPCK_UB_SH(top3, diff6, diff7);
1514 SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2);1516 SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2,
1515 SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2);1517 diff1, diff3, diff5, diff7);
1516 MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6,1518 MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6,
1517 diff1, diff3, diff5, diff7);1519 diff1, diff3, diff5, diff7);
1518 1520
@@ -1606,8 +1608,8 @@ static void hevc_intra_pred_angular_lower_16width_msa(const uint8_t *src_top, · 87 unmodified lines
1606 fact6 = __msa_fill_h(fact_val3);1608 fact6 = __msa_fill_h(fact_val3);
1607 fact7 = __msa_fill_h(32 - fact_val3);1609 fact7 = __msa_fill_h(32 - fact_val3);
1608 1610
1609 SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1);1611 SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1,
1610 SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1);1612 top1, top3, top5, top7);
1611 1613
1612 UNPCK_UB_SH(top0, diff0, diff1);1614 UNPCK_UB_SH(top0, diff0, diff1);
1613 UNPCK_UB_SH(top1, diff2, diff3);1615 UNPCK_UB_SH(top1, diff2, diff3);
@@ -1713,8 +1715,8 @@ static void hevc_intra_pred_angular_lower_32width_msa(const uint8_t *src_top, · 99 unmodified lines
1713 top2 = top1;1715 top2 = top1;
1714 top6 = top5;1716 top6 = top5;
1715 1717
1716 SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1);1718 SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1,
1717 SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1);1719 top1, top3, top5, top7);
1718 1720
1719 UNPCK_UB_SH(top0, diff0, diff1);1721 UNPCK_UB_SH(top0, diff0, diff1);
1720 UNPCK_UB_SH(top1, diff2, diff3);1722 UNPCK_UB_SH(top1, diff2, diff3);
libavcodec/mips/hpeldsp_msa.c+42−24
@@ -59,12 +59,13 @@ static void common_hz_bil_4w_msa(const uint8_t *src, int32_t src_stride, · 58 unmodified lines
59 uint8_t loop_cnt;59 uint8_t loop_cnt;
60 uint32_t out0, out1;60 uint32_t out0, out1;
61 v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1;61 v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1;
62 v16i8 zeros = { 0 };
62 63
63 for (loop_cnt = (height >> 1); loop_cnt--;) {64 for (loop_cnt = (height >> 1); loop_cnt--;) {
64 LD_UB2(src, src_stride, src0, src1);65 LD_UB2(src, src_stride, src0, src1);
65 src += (2 * src_stride);66 src += (2 * src_stride);
66 67
67 SLDI_B2_0_UB(src0, src1, src0_sld1, src1_sld1, 1);68 SLDI_B2_UB(zeros, src0, zeros, src1, 1, src0_sld1, src1_sld1);
68 AVER_UB2_UB(src0_sld1, src0, src1_sld1, src1, res0, res1);69 AVER_UB2_UB(src0_sld1, src0, src1_sld1, src1, res0, res1);
69 70
70 out0 = __msa_copy_u_w((v4i32) res0, 0);71 out0 = __msa_copy_u_w((v4i32) res0, 0);
@@ -82,13 +83,14 @@ static void common_hz_bil_8w_msa(const uint8_t *src, int32_t src_stride, · 11 unmodified lines
82{83{
83 uint8_t loop_cnt;84 uint8_t loop_cnt;
84 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;85 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;
86 v16i8 zeros = { 0 };
85 87
86 for (loop_cnt = (height >> 2); loop_cnt--;) {88 for (loop_cnt = (height >> 2); loop_cnt--;) {
87 LD_SB4(src, src_stride, src0, src1, src2, src3);89 LD_SB4(src, src_stride, src0, src1, src2, src3);
88 src += (4 * src_stride);90 src += (4 * src_stride);
89 91
90 SLDI_B4_0_SB(src0, src1, src2, src3,92 SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1,
91 src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1);93 src0_sld1, src1_sld1, src2_sld1, src3_sld1);
92 AVER_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,94 AVER_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,
93 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);95 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);
94 dst += (4 * dst_stride);96 dst += (4 * dst_stride);
@@ -125,14 +127,15 @@ static void common_hz_bil_no_rnd_8x8_msa(const uint8_t *src, int32_t src_stride, · 30 unmodified lines
125 v16i8 src0, src1, src2, src3, src4, src5, src6, src7;127 v16i8 src0, src1, src2, src3, src4, src5, src6, src7;
126 v16i8 src0_sld1, src1_sld1, src2_sld1, src3_sld1;128 v16i8 src0_sld1, src1_sld1, src2_sld1, src3_sld1;
127 v16i8 src4_sld1, src5_sld1, src6_sld1, src7_sld1;129 v16i8 src4_sld1, src5_sld1, src6_sld1, src7_sld1;
130 v16i8 zeros = { 0 };
128 131
129 LD_SB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7);132 LD_SB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7);
130 src += (8 * src_stride);133 src += (8 * src_stride);
131 134
132 SLDI_B4_0_SB(src0, src1, src2, src3,135 SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1,
133 src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1);136 src0_sld1, src1_sld1, src2_sld1, src3_sld1);
134 SLDI_B4_0_SB(src4, src5, src6, src7,137 SLDI_B4_SB(zeros, src4, zeros, src5, zeros, src6, zeros, src7, 1,
135 src4_sld1, src5_sld1, src6_sld1, src7_sld1, 1);138 src4_sld1, src5_sld1, src6_sld1, src7_sld1);
136 139
137 AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,140 AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,
138 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);141 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);
@@ -145,10 +148,11 @@ static void common_hz_bil_no_rnd_4x8_msa(const uint8_t *src, int32_t src_stride, · 6 unmodified lines
145 uint8_t *dst, int32_t dst_stride)148 uint8_t *dst, int32_t dst_stride)
146{149{
147 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;150 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;
151 v16i8 zeros = { 0 };
148 152
149 LD_SB4(src, src_stride, src0, src1, src2, src3);153 LD_SB4(src, src_stride, src0, src1, src2, src3);
150 SLDI_B4_0_SB(src0, src1, src2, src3,154 SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1,
151 src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1);155 src0_sld1, src1_sld1, src2_sld1, src3_sld1);
152 AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,156 AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1,
153 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);157 src2, src2_sld1, src3, src3_sld1, dst, dst_stride);
154}158}
@@ -216,12 +220,13 @@ static void common_hz_bil_and_aver_dst_4w_msa(const uint8_t *src, · 61 unmodified lines
216 v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1;220 v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1;
217 v16u8 tmp0 = { 0 };221 v16u8 tmp0 = { 0 };
218 v16u8 tmp1 = { 0 };222 v16u8 tmp1 = { 0 };
223 v16i8 zeros = { 0 };
219 224
220 for (loop_cnt = (height >> 1); loop_cnt--;) {225 for (loop_cnt = (height >> 1); loop_cnt--;) {
221 LD_UB2(src, src_stride, src0, src1);226 LD_UB2(src, src_stride, src0, src1);
222 src += (2 * src_stride);227 src += (2 * src_stride);
223 228
224 SLDI_B2_0_UB(src0, src1, src0_sld1, src1_sld1, 1);229 SLDI_B2_UB(zeros, src0, zeros, src1, 1, src0_sld1, src1_sld1);
225 230
226 dst0 = LW(dst);231 dst0 = LW(dst);
227 dst1 = LW(dst + dst_stride);232 dst1 = LW(dst + dst_stride);
@@ -247,13 +252,14 @@ static void common_hz_bil_and_aver_dst_8w_msa(const uint8_t *src, · 19 unmodified lines
247{252{
248 uint8_t loop_cnt;253 uint8_t loop_cnt;
249 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;254 v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1;
255 v16i8 zeros = { 0 };
250 256
251 for (loop_cnt = (height >> 2); loop_cnt--;) {257 for (loop_cnt = (height >> 2); loop_cnt--;) {
252 LD_SB4(src, src_stride, src0, src1, src2, src3);258 LD_SB4(src, src_stride, src0, src1, src2, src3);
253 src += (4 * src_stride);259 src += (4 * src_stride);
254 260
255 SLDI_B4_0_SB(src0, src1, src2, src3,261 SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1,
256 src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1);262 src0_sld1, src1_sld1, src2_sld1, src3_sld1);
257 263
258 AVER_DST_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, src2, src2_sld1,264 AVER_DST_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, src2, src2_sld1,
259 src3, src3_sld1, dst, dst_stride);265 src3, src3_sld1, dst, dst_stride);
@@ -529,6 +535,7 @@ static void common_hv_bil_4w_msa(const uint8_t *src, int32_t src_stride, · 269 unmodified lines
529 v16i8 src0, src1, src2, src0_sld1, src1_sld1, src2_sld1;535 v16i8 src0, src1, src2, src0_sld1, src1_sld1, src2_sld1;
530 v16u8 src0_r, src1_r, src2_r, res;536 v16u8 src0_r, src1_r, src2_r, res;
531 v8u16 add0, add1, add2, sum0, sum1;537 v8u16 add0, add1, add2, sum0, sum1;
538 v16i8 zeros = { 0 };
532 539
533 src0 = LD_SB(src);540 src0 = LD_SB(src);
534 src += src_stride;541 src += src_stride;
@@ -537,7 +544,8 @@ static void common_hv_bil_4w_msa(const uint8_t *src, int32_t src_stride, · 2 unmodified lines
537 LD_SB2(src, src_stride, src1, src2);544 LD_SB2(src, src_stride, src1, src2);
538 src += (2 * src_stride);545 src += (2 * src_stride);
539 546
540 SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1);547 SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1,
548 src1_sld1, src2_sld1);
541 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2,549 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2,
542 src0_r, src1_r, src2_r);550 src0_r, src1_r, src2_r);
543 HADD_UB3_UH(src0_r, src1_r, src2_r, add0, add1, add2);551 HADD_UB3_UH(src0_r, src1_r, src2_r, add0, add1, add2);
@@ -565,6 +573,7 @@ static void common_hv_bil_8w_msa(const uint8_t *src, int32_t src_stride, · 21 unmodified lines
565 v16u8 src0_r, src1_r, src2_r, src3_r, src4_r;573 v16u8 src0_r, src1_r, src2_r, src3_r, src4_r;
566 v8u16 add0, add1, add2, add3, add4;574 v8u16 add0, add1, add2, add3, add4;
567 v8u16 sum0, sum1, sum2, sum3;575 v8u16 sum0, sum1, sum2, sum3;
576 v16i8 zeros = { 0 };
568 577
569 src0 = LD_SB(src);578 src0 = LD_SB(src);
570 src += src_stride;579 src += src_stride;
@@ -573,8 +582,9 @@ static void common_hv_bil_8w_msa(const uint8_t *src, int32_t src_stride, · 2 unmodified lines
573 LD_SB4(src, src_stride, src1, src2, src3, src4);582 LD_SB4(src, src_stride, src1, src2, src3, src4);
574 src += (4 * src_stride);583 src += (4 * src_stride);
575 584
576 SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1);585 SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1,
577 SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1);586 src1_sld1, src2_sld1);
587 SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1);
578 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,588 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,
579 src1_r, src2_r);589 src1_r, src2_r);
580 ILVR_B2_UB(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);590 ILVR_B2_UB(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);
@@ -659,15 +669,17 @@ static void common_hv_bil_no_rnd_8x8_msa(const uint8_t *src, int32_t src_stride, · 78 unmodified lines
659 v8u16 add0, add1, add2, add3, add4, add5, add6, add7, add8;669 v8u16 add0, add1, add2, add3, add4, add5, add6, add7, add8;
660 v8u16 sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7;670 v8u16 sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7;
661 v16i8 out0, out1;671 v16i8 out0, out1;
672 v16i8 zeros = { 0 };
662 673
663 LD_UB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7);674 LD_UB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7);
664 src += (8 * src_stride);675 src += (8 * src_stride);
665 src8 = LD_UB(src);676 src8 = LD_UB(src);
666 677
667 SLDI_B4_0_UB(src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1,678 SLDI_B4_UB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1,
668 src3_sld1, 1);679 src0_sld1, src1_sld1, src2_sld1, src3_sld1);
669 SLDI_B3_0_UB(src4, src5, src6, src4_sld1, src5_sld1, src6_sld1, 1);680 SLDI_B3_UB(zeros, src4, zeros, src5, zeros, src6, 1, src4_sld1,
670 SLDI_B2_0_UB(src7, src8, src7_sld1, src8_sld1, 1);681 src5_sld1, src6_sld1);
682 SLDI_B2_UB(zeros, src7, zeros, src8, 1, src7_sld1, src8_sld1);
671 ILVR_B4_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src3_sld1,683 ILVR_B4_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src3_sld1,
672 src3, src0_r, src1_r, src2_r, src3_r);684 src3, src0_r, src1_r, src2_r, src3_r);
673 ILVR_B3_UH(src4_sld1, src4, src5_sld1, src5, src6_sld1, src6, src4_r,685 ILVR_B3_UH(src4_sld1, src4, src5_sld1, src5, src6_sld1, src6, src4_r,
@@ -703,13 +715,15 @@ static void common_hv_bil_no_rnd_4x8_msa(const uint8_t *src, int32_t src_stride, · 29 unmodified lines
703 v8u16 add0, add1, add2, add3, add4;715 v8u16 add0, add1, add2, add3, add4;
704 v8u16 sum0, sum1, sum2, sum3;716 v8u16 sum0, sum1, sum2, sum3;
705 v16i8 out0, out1;717 v16i8 out0, out1;
718 v16i8 zeros = { 0 };
706 719
707 LD_SB4(src, src_stride, src0, src1, src2, src3);720 LD_SB4(src, src_stride, src0, src1, src2, src3);
708 src += (4 * src_stride);721 src += (4 * src_stride);
709 src4 = LD_SB(src);722 src4 = LD_SB(src);
710 723
711 SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1);724 SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1,
712 SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1);725 src1_sld1, src2_sld1);
726 SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1);
713 ILVR_B3_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,727 ILVR_B3_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,
714 src1_r, src2_r);728 src1_r, src2_r);
715 ILVR_B2_UH(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);729 ILVR_B2_UH(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);
@@ -918,6 +932,7 @@ static void common_hv_bil_and_aver_dst_4w_msa(const uint8_t *src, · 202 unmodified lines
918 v16u8 src0_r, src1_r, src2_r;932 v16u8 src0_r, src1_r, src2_r;
919 v8u16 add0, add1, add2, sum0, sum1;933 v8u16 add0, add1, add2, sum0, sum1;
920 v16u8 dst0, dst1, res0, res1;934 v16u8 dst0, dst1, res0, res1;
935 v16i8 zeros = { 0 };
921 936
922 src0 = LD_SB(src);937 src0 = LD_SB(src);
923 src += src_stride;938 src += src_stride;
@@ -927,7 +942,8 @@ static void common_hv_bil_and_aver_dst_4w_msa(const uint8_t *src, · 3 unmodified lines
927 src += (2 * src_stride);942 src += (2 * src_stride);
928 943
929 LD_UB2(dst, dst_stride, dst0, dst1);944 LD_UB2(dst, dst_stride, dst0, dst1);
930 SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1);945 SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1,
946 src1_sld1, src2_sld1);
931 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,947 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,
932 src1_r, src2_r);948 src1_r, src2_r);
933 HADD_UB3_UH(src0_r, src1_r, src2_r, add0, add1, add2);949 HADD_UB3_UH(src0_r, src1_r, src2_r, add0, add1, add2);
@@ -959,6 +975,7 @@ static void common_hv_bil_and_aver_dst_8w_msa(const uint8_t *src, · 25 unmodified lines
959 v16u8 src0_r, src1_r, src2_r, src3_r, src4_r;975 v16u8 src0_r, src1_r, src2_r, src3_r, src4_r;
960 v8u16 add0, add1, add2, add3, add4;976 v8u16 add0, add1, add2, add3, add4;
961 v8u16 sum0, sum1, sum2, sum3;977 v8u16 sum0, sum1, sum2, sum3;
978 v16i8 zeros = { 0 };
962 979
963 src0 = LD_SB(src);980 src0 = LD_SB(src);
964 src += src_stride;981 src += src_stride;
@@ -968,8 +985,9 @@ static void common_hv_bil_and_aver_dst_8w_msa(const uint8_t *src, · 3 unmodified lines
968 src += (4 * src_stride);985 src += (4 * src_stride);
969 986
970 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3);987 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3);
971 SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1);988 SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1,
972 SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1);989 src1_sld1, src2_sld1);
990 SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1);
973 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,991 ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r,
974 src1_r, src2_r);992 src1_r, src2_r);
975 ILVR_B2_UB(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);993 ILVR_B2_UB(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r);
libavcodec/mips/me_cmp_msa.c+4−4
@@ -87,8 +87,8 @@ static uint32_t sad_horiz_bilinear_filter_8width_msa(uint8_t *src, · 86 unmodified lines
87 87
88 PCKEV_D2_UB(src1, src0, src3, src2, src0, src1);88 PCKEV_D2_UB(src1, src0, src3, src2, src0, src1);
89 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5);89 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5);
90 SLDI_B2_UB(ref0, ref1, ref0, ref1, ref0, ref1, 1);90 SLDI_B4_UB(ref0, ref0, ref1, ref1, ref2, ref2, ref3, ref3, 1,
91 SLDI_B2_UB(ref2, ref3, ref2, ref3, ref2, ref3, 1);91 ref0, ref1, ref2, ref3);
92 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1);92 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1);
93 AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1);93 AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1);
94 sad += SAD_UB2_UH(src0, src1, comp0, comp1);94 sad += SAD_UB2_UH(src0, src1, comp0, comp1);
@@ -100,8 +100,8 @@ static uint32_t sad_horiz_bilinear_filter_8width_msa(uint8_t *src, · 5 unmodified lines
100 100
101 PCKEV_D2_UB(src1, src0, src3, src2, src0, src1);101 PCKEV_D2_UB(src1, src0, src3, src2, src0, src1);
102 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5);102 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5);
103 SLDI_B2_UB(ref0, ref1, ref0, ref1, ref0, ref1, 1);103 SLDI_B4_UB(ref0, ref0, ref1, ref1, ref2, ref2, ref3, ref3, 1,
104 SLDI_B2_UB(ref2, ref3, ref2, ref3, ref2, ref3, 1);104 ref0, ref1, ref2, ref3);
105 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1);105 PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1);
106 AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1);106 AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1);
107 sad += SAD_UB2_UH(src0, src1, comp0, comp1);107 sad += SAD_UB2_UH(src0, src1, comp0, comp1);
libavcodec/mips/qpeldsp_msa.c+42−42
@@ -480,8 +480,8 @@ static void horiz_mc_qpel_aver_src1_8width_msa(const uint8_t *src, · 479 unmodified lines
480 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3,480 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3,
481 mask0, mask1, mask2, mask3,481 mask0, mask1, mask2, mask3,
482 const20, const6, const3);482 const20, const6, const3);
483 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);483 SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1,
484 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);484 inp0, inp1, inp2, inp3);
485 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);485 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
486 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);486 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
487 AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1);487 AVER_UB2_UB(inp0, res0, inp2, res1, res0, res1);
@@ -710,8 +710,8 @@ static void horiz_mc_qpel_no_rnd_aver_src1_8width_msa(const uint8_t *src, · 222 unmodified lines
710 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,710 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
711 mask2, mask3, const20,711 mask2, mask3, const20,
712 const6, const3);712 const6, const3);
713 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);713 SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1,
714 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);714 inp0, inp1, inp2, inp3);
715 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);715 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
716 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);716 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
717 res0 = __msa_ave_u_b(inp0, res0);717 res0 = __msa_ave_u_b(inp0, res0);
@@ -948,8 +948,8 @@ static void horiz_mc_qpel_avg_dst_aver_src1_8width_msa(const uint8_t *src, · 230 unmodified lines
948 mask0, mask1, mask2, mask3,948 mask0, mask1, mask2, mask3,
949 const20, const6, const3);949 const20, const6, const3);
950 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3);950 LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3);
951 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);951 SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1,
952 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);952 inp0, inp1, inp2, inp3);
953 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);953 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
954 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);954 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
955 dst0 = (v16u8) __msa_insve_d((v2i64) dst0, 1, (v2i64) dst1);955 dst0 = (v16u8) __msa_insve_d((v2i64) dst0, 1, (v2i64) dst1);
@@ -3094,7 +3094,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, · 2138 unmodified lines
3094 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,3094 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,
3095 mask2, mask3, const20,3095 mask2, mask3, const20,
3096 const6, const3);3096 const6, const3);
3097 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3097 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3098 3098
3099 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3099 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3100 horiz0 = __msa_ave_u_b(inp0, res0);3100 horiz0 = __msa_ave_u_b(inp0, res0);
@@ -3104,7 +3104,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, · 3 unmodified lines
3104 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3104 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3105 mask2, mask3, const20,3105 mask2, mask3, const20,
3106 const6, const3);3106 const6, const3);
3107 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3107 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3108 3108
3109 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3109 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3110 horiz2 = __msa_ave_u_b(inp2, res1);3110 horiz2 = __msa_ave_u_b(inp2, res1);
@@ -3114,7 +3114,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, · 3 unmodified lines
3114 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,3114 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,
3115 mask2, mask3, const20,3115 mask2, mask3, const20,
3116 const6, const3);3116 const6, const3);
3117 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3117 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3118 3118
3119 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3119 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3120 horiz4 = __msa_ave_u_b(inp0, res0);3120 horiz4 = __msa_ave_u_b(inp0, res0);
@@ -3134,7 +3134,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src10_8x8_msa(const uint8_t *src, · 13 unmodified lines
3134 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3134 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3135 mask2, mask3, const20,3135 mask2, mask3, const20,
3136 const6, const3);3136 const6, const3);
3137 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3137 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3138 3138
3139 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3139 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3140 horiz6 = __msa_ave_u_b(inp2, res1);3140 horiz6 = __msa_ave_u_b(inp2, res1);
@@ -3389,7 +3389,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, · 248 unmodified lines
3389 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,3389 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,
3390 mask2, mask3, const20,3390 mask2, mask3, const20,
3391 const6, const3);3391 const6, const3);
3392 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3392 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3393 3393
3394 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3394 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3395 horiz0 = __msa_ave_u_b(inp0, res0);3395 horiz0 = __msa_ave_u_b(inp0, res0);
@@ -3399,7 +3399,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, · 3 unmodified lines
3399 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3399 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3400 mask2, mask3, const20,3400 mask2, mask3, const20,
3401 const6, const3);3401 const6, const3);
3402 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3402 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3403 3403
3404 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3404 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3405 horiz2 = __msa_ave_u_b(inp2, res1);3405 horiz2 = __msa_ave_u_b(inp2, res1);
@@ -3409,7 +3409,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, · 3 unmodified lines
3409 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,3409 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,
3410 mask2, mask3, const20,3410 mask2, mask3, const20,
3411 const6, const3);3411 const6, const3);
3412 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3412 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3413 3413
3414 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3414 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3415 horiz4 = __msa_ave_u_b(inp0, res0);3415 horiz4 = __msa_ave_u_b(inp0, res0);
@@ -3427,7 +3427,7 @@ static void hv_mc_qpel_no_rnd_aver_h_src1_8x8_msa(const uint8_t *src, · 11 unmodified lines
3427 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3427 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3428 mask2, mask3, const20,3428 mask2, mask3, const20,
3429 const6, const3);3429 const6, const3);
3430 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3430 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3431 3431
3432 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3432 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3433 horiz6 = __msa_ave_u_b(inp2, res1);3433 horiz6 = __msa_ave_u_b(inp2, res1);
@@ -3691,7 +3691,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, · 257 unmodified lines
3691 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,3691 res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1,
3692 mask2, mask3, const20,3692 mask2, mask3, const20,
3693 const6, const3);3693 const6, const3);
3694 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3694 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3695 3695
3696 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3696 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3697 horiz0 = __msa_ave_u_b(inp0, res0);3697 horiz0 = __msa_ave_u_b(inp0, res0);
@@ -3701,7 +3701,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, · 3 unmodified lines
3701 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3701 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3702 mask2, mask3, const20,3702 mask2, mask3, const20,
3703 const6, const3);3703 const6, const3);
3704 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3704 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3705 3705
3706 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3706 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3707 horiz2 = __msa_ave_u_b(inp2, res1);3707 horiz2 = __msa_ave_u_b(inp2, res1);
@@ -3712,7 +3712,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, · 4 unmodified lines
3712 mask2, mask3, const20,3712 mask2, mask3, const20,
3713 const6, const3);3713 const6, const3);
3714 3714
3715 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);3715 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
3716 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);3716 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
3717 horiz4 = __msa_ave_u_b(inp0, res0);3717 horiz4 = __msa_ave_u_b(inp0, res0);
3718 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);3718 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);
@@ -3731,7 +3731,7 @@ static void hv_mc_qpel_no_rnd_aver_hv_src11_8x8_msa(const uint8_t *src, · 12 unmodified lines
3731 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,3731 res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1,
3732 mask2, mask3, const20,3732 mask2, mask3, const20,
3733 const6, const3);3733 const6, const3);
3734 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);3734 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
3735 3735
3736 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);3736 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
3737 horiz6 = __msa_ave_u_b(inp2, res1);3737 horiz6 = __msa_ave_u_b(inp2, res1);
@@ -4134,12 +4134,12 @@ static void hv_mc_qpel_aver_hv_src10_8x8_msa(const uint8_t *src, · 396 unmodified lines
4134 const20, const6, const3);4134 const20, const6, const3);
4135 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4135 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4136 const20, const6, const3);4136 const20, const6, const3);
4137 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4137 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4138 4138
4139 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4139 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4140 horiz0 = __msa_aver_u_b(inp0, res0);4140 horiz0 = __msa_aver_u_b(inp0, res0);
4141 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);4141 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);
4142 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4142 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4143 4143
4144 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4144 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4145 horiz2 = __msa_aver_u_b(inp2, res1);4145 horiz2 = __msa_aver_u_b(inp2, res1);
@@ -4150,12 +4150,12 @@ static void hv_mc_qpel_aver_hv_src10_8x8_msa(const uint8_t *src, · 4 unmodified lines
4150 const20, const6, const3);4150 const20, const6, const3);
4151 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4151 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4152 const20, const6, const3);4152 const20, const6, const3);
4153 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4153 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4154 4154
4155 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4155 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4156 horiz4 = __msa_aver_u_b(inp0, res0);4156 horiz4 = __msa_aver_u_b(inp0, res0);
4157 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);4157 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);
4158 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4158 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4159 4159
4160 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4160 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4161 horiz6 = __msa_aver_u_b(inp2, res1);4161 horiz6 = __msa_aver_u_b(inp2, res1);
@@ -4410,12 +4410,12 @@ static void hv_mc_qpel_aver_h_src1_8x8_msa(const uint8_t *src, · 248 unmodified lines
4410 const20, const6, const3);4410 const20, const6, const3);
4411 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4411 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4412 const20, const6, const3);4412 const20, const6, const3);
4413 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4413 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4414 4414
4415 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4415 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4416 horiz0 = __msa_aver_u_b(inp0, res0);4416 horiz0 = __msa_aver_u_b(inp0, res0);
4417 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);4417 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);
4418 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4418 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4419 4419
4420 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4420 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4421 horiz2 = __msa_aver_u_b(inp2, res1);4421 horiz2 = __msa_aver_u_b(inp2, res1);
@@ -4426,12 +4426,12 @@ static void hv_mc_qpel_aver_h_src1_8x8_msa(const uint8_t *src, · 4 unmodified lines
4426 const20, const6, const3);4426 const20, const6, const3);
4427 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4427 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4428 const20, const6, const3);4428 const20, const6, const3);
4429 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4429 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4430 4430
4431 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4431 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4432 horiz4 = __msa_aver_u_b(inp0, res0);4432 horiz4 = __msa_aver_u_b(inp0, res0);
4433 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);4433 horiz5 = (v16u8) __msa_splati_d((v2i64) horiz4, 1);
4434 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4434 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4435 4435
4436 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4436 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4437 horiz6 = __msa_aver_u_b(inp2, res1);4437 horiz6 = __msa_aver_u_b(inp2, res1);
@@ -4690,14 +4690,14 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, · 252 unmodified lines
4690 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1,4690 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1,
4691 mask0, mask1, mask2, mask3,4691 mask0, mask1, mask2, mask3,
4692 const20, const6, const3);4692 const20, const6, const3);
4693 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4693 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4694 4694
4695 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4695 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4696 horiz0 = __msa_aver_u_b(inp0, res0);4696 horiz0 = __msa_aver_u_b(inp0, res0);
4697 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);4697 horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1);
4698 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4698 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4699 const20, const6, const3);4699 const20, const6, const3);
4700 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4700 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4701 4701
4702 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4702 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4703 horiz2 = __msa_aver_u_b(inp2, res1);4703 horiz2 = __msa_aver_u_b(inp2, res1);
@@ -4706,7 +4706,7 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, · 2 unmodified lines
4706 src += (2 * src_stride);4706 src += (2 * src_stride);
4707 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,4707 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,
4708 const20, const6, const3);4708 const20, const6, const3);
4709 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);4709 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
4710 4710
4711 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);4711 inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1);
4712 horiz4 = __msa_aver_u_b(inp0, res0);4712 horiz4 = __msa_aver_u_b(inp0, res0);
@@ -4725,7 +4725,7 @@ static void hv_mc_qpel_aver_hv_src11_8x8_msa(const uint8_t *src, · 12 unmodified lines
4725 4725
4726 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,4726 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
4727 const20, const6, const3);4727 const20, const6, const3);
4728 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);4728 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
4729 4729
4730 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);4730 inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3);
4731 horiz6 = __msa_aver_u_b(inp2, res1);4731 horiz6 = __msa_aver_u_b(inp2, res1);
@@ -5020,7 +5020,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, · 288 unmodified lines
5020 5020
5021 LD_UB2(src, src_stride, inp2, inp3);5021 LD_UB2(src, src_stride, inp2, inp3);
5022 src += (2 * src_stride);5022 src += (2 * src_stride);
5023 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5023 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5024 5024
5025 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5025 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5026 horiz0 = __msa_aver_u_b(inp0, res0);5026 horiz0 = __msa_aver_u_b(inp0, res0);
@@ -5029,7 +5029,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, · 2 unmodified lines
5029 const20, const6, const3);5029 const20, const6, const3);
5030 LD_UB2(src, src_stride, inp0, inp1);5030 LD_UB2(src, src_stride, inp0, inp1);
5031 src += (2 * src_stride);5031 src += (2 * src_stride);
5032 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5032 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5033 5033
5034 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5034 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5035 horiz2 = __msa_aver_u_b(inp2, res1);5035 horiz2 = __msa_aver_u_b(inp2, res1);
@@ -5037,7 +5037,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, · 1 unmodified line
5037 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,5037 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,
5038 const20, const6, const3);5038 const20, const6, const3);
5039 5039
5040 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5040 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5041 5041
5042 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5042 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5043 horiz4 = __msa_aver_u_b(inp0, res0);5043 horiz4 = __msa_aver_u_b(inp0, res0);
@@ -5060,7 +5060,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src10_8x8_msa(const uint8_t *src, · 16 unmodified lines
5060 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,5060 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
5061 const20, const6, const3);5061 const20, const6, const3);
5062 5062
5063 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5063 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5064 5064
5065 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5065 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5066 horiz6 = __msa_aver_u_b(inp2, res1);5066 horiz6 = __msa_aver_u_b(inp2, res1);
@@ -5347,7 +5347,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, · 280 unmodified lines
5347 const20, const6, const3);5347 const20, const6, const3);
5348 LD_UB2(src, src_stride, inp2, inp3);5348 LD_UB2(src, src_stride, inp2, inp3);
5349 src += (2 * src_stride);5349 src += (2 * src_stride);
5350 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5350 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5351 5351
5352 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5352 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5353 horiz0 = __msa_aver_u_b(inp0, res0);5353 horiz0 = __msa_aver_u_b(inp0, res0);
@@ -5356,7 +5356,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, · 2 unmodified lines
5356 const20, const6, const3);5356 const20, const6, const3);
5357 LD_UB2(src, src_stride, inp0, inp1);5357 LD_UB2(src, src_stride, inp0, inp1);
5358 src += (2 * src_stride);5358 src += (2 * src_stride);
5359 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5359 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5360 5360
5361 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5361 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5362 horiz2 = __msa_aver_u_b(inp2, res1);5362 horiz2 = __msa_aver_u_b(inp2, res1);
@@ -5364,7 +5364,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, · 1 unmodified line
5364 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,5364 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,
5365 const20, const6, const3);5365 const20, const6, const3);
5366 5366
5367 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5367 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5368 5368
5369 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5369 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5370 horiz4 = __msa_aver_u_b(inp0, res0);5370 horiz4 = __msa_aver_u_b(inp0, res0);
@@ -5385,7 +5385,7 @@ static void hv_mc_qpel_avg_dst_aver_h_src1_8x8_msa(const uint8_t *src, · 14 unmodified lines
5385 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,5385 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
5386 const20, const6, const3);5386 const20, const6, const3);
5387 5387
5388 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5388 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5389 5389
5390 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5390 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5391 horiz6 = __msa_aver_u_b(inp2, res1);5391 horiz6 = __msa_aver_u_b(inp2, res1);
@@ -5684,7 +5684,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, · 292 unmodified lines
5684 const20, const6, const3);5684 const20, const6, const3);
5685 LD_UB2(src, src_stride, inp2, inp3);5685 LD_UB2(src, src_stride, inp2, inp3);
5686 src += (2 * src_stride);5686 src += (2 * src_stride);
5687 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5687 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5688 5688
5689 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5689 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5690 horiz0 = __msa_aver_u_b(inp0, res0);5690 horiz0 = __msa_aver_u_b(inp0, res0);
@@ -5693,14 +5693,14 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, · 2 unmodified lines
5693 const20, const6, const3);5693 const20, const6, const3);
5694 LD_UB2(src, src_stride, inp0, inp1);5694 LD_UB2(src, src_stride, inp0, inp1);
5695 src += (2 * src_stride);5695 src += (2 * src_stride);
5696 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5696 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5697 5697
5698 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5698 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5699 horiz2 = __msa_aver_u_b(inp2, res1);5699 horiz2 = __msa_aver_u_b(inp2, res1);
5700 horiz3 = (v16u8) __msa_splati_d((v2i64) horiz2, 1);5700 horiz3 = (v16u8) __msa_splati_d((v2i64) horiz2, 1);
5701 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,5701 res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3,
5702 const20, const6, const3);5702 const20, const6, const3);
5703 SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1);5703 SLDI_B2_UB(inp0, inp0, inp1, inp1, 1, inp0, inp1);
5704 5704
5705 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);5705 inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0);
5706 horiz4 = __msa_aver_u_b(inp0, res0);5706 horiz4 = __msa_aver_u_b(inp0, res0);
@@ -5721,7 +5721,7 @@ static void hv_mc_qpel_avg_dst_aver_hv_src11_8x8_msa(const uint8_t *src, · 14 unmodified lines
5721 src += (2 * src_stride);5721 src += (2 * src_stride);
5722 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,5722 res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3,
5723 const20, const6, const3);5723 const20, const6, const3);
5724 SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1);5724 SLDI_B2_UB(inp2, inp2, inp3, inp3, 1, inp2, inp3);
5725 5725
5726 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);5726 inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2);
5727 horiz6 = __msa_aver_u_b(inp2, res1);5727 horiz6 = __msa_aver_u_b(inp2, res1);
libavcodec/mips/vp8_mc_msa.c+2−2
@@ -1995,8 +1995,8 @@ static void common_hv_2ht_2vt_4x8_msa(uint8_t *src, int32_t src_stride, · 1994 unmodified lines
1995 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);1995 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);
1996 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);1996 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);
1997 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);1997 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);
1998 SLDI_B3_UH(hz_out2, hz_out4, hz_out6, hz_out0, hz_out2, hz_out4, hz_out1,1998 SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1,
1999 hz_out3, hz_out5, 8);1999 hz_out3, hz_out5);
2000 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);2000 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);
2001 2001
2002 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1);2002 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1);
libavcodec/mips/vp9_idct_msa.c+2−1
@@ -249,6 +249,7 @@ static const int32_t sinpi_4_9 = 15212; · 248 unmodified lines
249 v8i16 c0_m, c1_m, c2_m, c3_m; \249 v8i16 c0_m, c1_m, c2_m, c3_m; \
250 v8i16 step0_m, step1_m; \250 v8i16 step0_m, step1_m; \
251 v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \251 v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \
252 v16i8 zeros = { 0 }; \
252 \253 \
253 c0_m = VP9_SET_COSPI_PAIR(cospi_16_64, cospi_16_64); \254 c0_m = VP9_SET_COSPI_PAIR(cospi_16_64, cospi_16_64); \
254 c1_m = VP9_SET_COSPI_PAIR(cospi_16_64, -cospi_16_64); \255 c1_m = VP9_SET_COSPI_PAIR(cospi_16_64, -cospi_16_64); \
@@ -262,7 +263,7 @@ static const int32_t sinpi_4_9 = 15212; · 7 unmodified lines
262 SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \263 SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \
263 \264 \
264 PCKEV_H2_SW(tmp1_m, tmp0_m, tmp3_m, tmp2_m, tmp0_m, tmp2_m); \265 PCKEV_H2_SW(tmp1_m, tmp0_m, tmp3_m, tmp2_m, tmp0_m, tmp2_m); \
265 SLDI_B2_0_SW(tmp0_m, tmp2_m, tmp1_m, tmp3_m, 8); \266 SLDI_B2_SW(zeros, tmp0_m, zeros, tmp2_m, 8, tmp1_m, tmp3_m); \
266 BUTTERFLY_4((v8i16) tmp0_m, (v8i16) tmp1_m, \267 BUTTERFLY_4((v8i16) tmp0_m, (v8i16) tmp1_m, \
267 (v8i16) tmp2_m, (v8i16) tmp3_m, \268 (v8i16) tmp2_m, (v8i16) tmp3_m, \
268 out0, out1, out2, out3); \269 out0, out1, out2, out3); \
libavcodec/mips/vp9_lpf_msa.c+2−1
@@ -1673,6 +1673,7 @@ static void vp9_transpose_16x8_to_8x16(uint8_t *input, int32_t in_pitch, · 1672 unmodified lines
1673 v16u8 p7_org, p6_org, p5_org, p4_org, p3_org, p2_org, p1_org, p0_org;1673 v16u8 p7_org, p6_org, p5_org, p4_org, p3_org, p2_org, p1_org, p0_org;
1674 v16i8 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;1674 v16i8 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
1675 v16u8 p7, p6, p5, p4, p3, p2, p1, p0, q0, q1, q2, q3, q4, q5, q6, q7;1675 v16u8 p7, p6, p5, p4, p3, p2, p1, p0, q0, q1, q2, q3, q4, q5, q6, q7;
1676 v16i8 zeros = { 0 };
1676 1677
1677 LD_UB8(input, in_pitch,1678 LD_UB8(input, in_pitch,
1678 p7_org, p6_org, p5_org, p4_org, p3_org, p2_org, p1_org, p0_org);1679 p7_org, p6_org, p5_org, p4_org, p3_org, p2_org, p1_org, p0_org);
@@ -1686,7 +1687,7 @@ static void vp9_transpose_16x8_to_8x16(uint8_t *input, int32_t in_pitch, · 7 unmodified lines
1686 ILVL_B2_SB(tmp1, tmp0, tmp3, tmp2, tmp5, tmp7);1687 ILVL_B2_SB(tmp1, tmp0, tmp3, tmp2, tmp5, tmp7);
1687 ILVR_W2_UB(tmp6, tmp4, tmp7, tmp5, q0, q4);1688 ILVR_W2_UB(tmp6, tmp4, tmp7, tmp5, q0, q4);
1688 ILVL_W2_UB(tmp6, tmp4, tmp7, tmp5, q2, q6);1689 ILVL_W2_UB(tmp6, tmp4, tmp7, tmp5, q2, q6);
1689 SLDI_B4_0_UB(q0, q2, q4, q6, q1, q3, q5, q7, 8);1690 SLDI_B4_UB(zeros, q0, zeros, q2, zeros, q4, zeros, q6, 8, q1, q3, q5, q7);
1690 1691
1691 ST_UB8(p7, p6, p5, p4, p3, p2, p1, p0, output, out_pitch);1692 ST_UB8(p7, p6, p5, p4, p3, p2, p1, p0, output, out_pitch);
1692 output += (8 * out_pitch);1693 output += (8 * out_pitch);
libavcodec/mips/vp9_mc_msa.c+8−8
@@ -795,7 +795,7 @@ static void common_hv_8ht_8vt_4w_msa(const uint8_t *src, int32_t src_stride, · 794 unmodified lines
795 filt_hz1, filt_hz2, filt_hz3);795 filt_hz1, filt_hz2, filt_hz3);
796 hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0,796 hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0,
797 filt_hz1, filt_hz2, filt_hz3);797 filt_hz1, filt_hz2, filt_hz3);
798 SLDI_B2_SH(hz_out2, hz_out4, hz_out0, hz_out2, hz_out1, hz_out3, 8);798 SLDI_B2_SH(hz_out2, hz_out0, hz_out4, hz_out2, 8, hz_out1, hz_out3);
799 799
800 filt = LD_SH(filter_vert);800 filt = LD_SH(filter_vert);
801 SPLATI_H4_SH(filt, 0, 1, 2, 3, filt_vt0, filt_vt1, filt_vt2, filt_vt3);801 SPLATI_H4_SH(filt, 0, 1, 2, 3, filt_vt0, filt_vt1, filt_vt2, filt_vt3);
@@ -1585,7 +1585,7 @@ static void common_hv_8ht_8vt_and_aver_dst_4w_msa(const uint8_t *src, · 783 unmodified lines
1585 filt_hz1, filt_hz2, filt_hz3);1585 filt_hz1, filt_hz2, filt_hz3);
1586 hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0,1586 hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0,
1587 filt_hz1, filt_hz2, filt_hz3);1587 filt_hz1, filt_hz2, filt_hz3);
1588 SLDI_B2_SH(hz_out2, hz_out4, hz_out0, hz_out2, hz_out1, hz_out3, 8);1588 SLDI_B2_SH(hz_out2, hz_out0, hz_out4, hz_out2, 8, hz_out1, hz_out3);
1589 1589
1590 filt = LD_SH(filter_vert);1590 filt = LD_SH(filter_vert);
1591 SPLATI_H4_SH(filt, 0, 1, 2, 3, filt_vt0, filt_vt1, filt_vt2, filt_vt3);1591 SPLATI_H4_SH(filt, 0, 1, 2, 3, filt_vt0, filt_vt1, filt_vt2, filt_vt3);
@@ -2093,7 +2093,7 @@ void ff_put_bilin_64h_msa(uint8_t *dst, ptrdiff_t dst_stride, · 501 unmodified lines
2093 src4 = LD_SB(src + 32);2093 src4 = LD_SB(src + 32);
2094 src6 = LD_SB(src + 48);2094 src6 = LD_SB(src + 48);
2095 src7 = LD_SB(src + 56);2095 src7 = LD_SB(src + 56);
2096 SLDI_B3_SB(src2, src4, src6, src0, src2, src4, src1, src3, src5, 8);2096 SLDI_B3_SB(src2, src0, src4, src2, src6, src4, 8, src1, src3, src5);
2097 src += src_stride;2097 src += src_stride;
2098 2098
2099 VSHF_B2_UB(src0, src0, src1, src1, mask, mask, vec0, vec1);2099 VSHF_B2_UB(src0, src0, src1, src1, mask, mask, vec0, vec1);
@@ -2544,8 +2544,8 @@ static void common_hv_2ht_2vt_4x8_msa(const uint8_t *src, int32_t src_stride, · 444 unmodified lines
2544 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);2544 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);
2545 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);2545 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);
2546 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);2546 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);
2547 SLDI_B3_UH(hz_out2, hz_out4, hz_out6, hz_out0, hz_out2, hz_out4, hz_out1,2547 SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1,
2548 hz_out3, hz_out5, 8);2548 hz_out3, hz_out5);
2549 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);2549 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);
2550 2550
2551 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1);2551 ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1);
@@ -3146,7 +3146,7 @@ void ff_avg_bilin_64h_msa(uint8_t *dst, ptrdiff_t dst_stride, · 594 unmodified lines
3146 for (loop_cnt = height; loop_cnt--;) {3146 for (loop_cnt = height; loop_cnt--;) {
3147 LD_SB4(src, 16, src0, src2, src4, src6);3147 LD_SB4(src, 16, src0, src2, src4, src6);
3148 src7 = LD_SB(src + 56);3148 src7 = LD_SB(src + 56);
3149 SLDI_B3_SB(src2, src4, src6, src0, src2, src4, src1, src3, src5, 8);3149 SLDI_B3_SB(src2, src0, src4, src2, src6, src4, 8, src1, src3, src5);
3150 src += src_stride;3150 src += src_stride;
3151 3151
3152 VSHF_B2_UB(src0, src0, src1, src1, mask, mask, vec0, vec1);3152 VSHF_B2_UB(src0, src0, src1, src1, mask, mask, vec0, vec1);
@@ -3655,8 +3655,8 @@ static void common_hv_2ht_2vt_and_aver_dst_4x8_msa(const uint8_t *src, · 502 unmodified lines
3655 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);3655 hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7);
3656 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);3656 hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7);
3657 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);3657 hz_out8 = HORIZ_2TAP_FILT_UH(src8, src8, mask, filt_hz, 7);
3658 SLDI_B3_UH(hz_out2, hz_out4, hz_out6, hz_out0, hz_out2, hz_out4, hz_out1,3658 SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1,
3659 hz_out3, hz_out5, 8);3659 hz_out3, hz_out5);
3660 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);3660 hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6);
3661 3661
3662 LW4(dst, dst_stride, tp0, tp1, tp2, tp3);3662 LW4(dst, dst_stride, tp0, tp1, tp2, tp3);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t