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.
Showing the changes to libavcodec/mips (11 of 12 files). Show all
Unified · Split
| @@ -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 | 619 | out0 = (v16u8) __msa_ilvr_b((v16i8) in1, (v16i8) in0); \ |
| 620 | 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 | 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 | 1024 | ILVR_W2_SB(tmp2, tmp0, tmp3, tmp1, src6, src3); |
| 1025 | 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 | 1029 | p0_asub_q0 = __msa_asub_u_b((v16u8) src2, (v16u8) src3); |
| 1029 | 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 | 1115 | ILVRL_H2_SH(zeros, dst2_x, tmp2, tmp3); |
| 1115 | 1116 | |
| 1116 | 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 | 1119 | dst2_x = (v16u8) __msa_ilvl_w((v4i32) tmp2, (v4i32) tmp0); |
| 1119 | 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 | 1123 | out0 = __msa_copy_u_w((v4i32) dst0, 0); |
| 1123 | 1124 | out1 = __msa_copy_u_h((v8i16) dst0, 2); |
| @@ -790,8 +790,8 @@ void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src, · 789 unmodified lines | ||
| 790 | 790 | minus5b, res4, res5, res6, res7); |
| 791 | 791 | DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b, |
| 792 | 792 | plus20b, res4, res5, res6, res7); |
| 793 | − SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 2); | |
| 794 | − SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 2); | |
| 793 | + SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 2, | |
| 794 | + src0, src2, src4, src6); | |
| 795 | 795 | SRARI_H4_SH(res0, res1, res2, res3, 5); |
| 796 | 796 | SRARI_H4_SH(res4, res5, res6, res7, 5); |
| 797 | 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 | 858 | minus5b, res4, res5, res6, res7); |
| 859 | 859 | DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b, |
| 860 | 860 | plus20b, res4, res5, res6, res7); |
| 861 | − SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 3); | |
| 862 | − SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 3); | |
| 861 | + SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 3, | |
| 862 | + src0, src2, src4, src6); | |
| 863 | 863 | SRARI_H4_SH(res0, res1, res2, res3, 5); |
| 864 | 864 | SRARI_H4_SH(res4, res5, res6, res7, 5); |
| 865 | 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 | 911 | VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11); |
| 912 | 912 | DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b, |
| 913 | 913 | res4, res5, res6, res7); |
| 914 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2); | |
| 915 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2); | |
| 916 | − SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 2); | |
| 917 | − SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 2); | |
| 914 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2, | |
| 915 | + src0, src1, src2, src3); | |
| 916 | + SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 2, | |
| 917 | + src4, src5, src6, src7); | |
| 918 | 918 | PCKEV_D2_SB(src1, src0, src3, src2, src0, src1); |
| 919 | 919 | PCKEV_D2_SB(src5, src4, src7, src6, src4, src5); |
| 920 | 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 | 966 | VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11); |
| 967 | 967 | DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b, |
| 968 | 968 | res4, res5, res6, res7); |
| 969 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3); | |
| 970 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3); | |
| 971 | − SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 3); | |
| 972 | − SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 3); | |
| 969 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3, | |
| 970 | + src0, src1, src2, src3); | |
| 971 | + SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 3, | |
| 972 | + src4, src5, src6, src7); | |
| 973 | 973 | PCKEV_D2_SB(src1, src0, src3, src2, src0, src1); |
| 974 | 974 | PCKEV_D2_SB(src5, src4, src7, src6, src4, src5); |
| 975 | 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 | 1007 | SRARI_H2_SH(res0, res1, 5); |
| 1008 | 1008 | SAT_SH2_SH(res0, res1, 7); |
| 1009 | 1009 | res = __msa_pckev_b((v16i8) res1, (v16i8) res0); |
| 1010 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2); | |
| 1011 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2); | |
| 1010 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2, | |
| 1011 | + src0, src1, src2, src3); | |
| 1012 | 1012 | src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1); |
| 1013 | 1013 | src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3); |
| 1014 | 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 | 1038 | SRARI_H2_SH(res0, res1, 5); |
| 1039 | 1039 | SAT_SH2_SH(res0, res1, 7); |
| 1040 | 1040 | res = __msa_pckev_b((v16i8) res1, (v16i8) res0); |
| 1041 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3); | |
| 1042 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3); | |
| 1041 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3, | |
| 1042 | + src0, src1, src2, src3); | |
| 1043 | 1043 | src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1); |
| 1044 | 1044 | src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3); |
| 1045 | 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 | 3194 | minus5b, res4, res5, res6, res7); |
| 3195 | 3195 | DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b, |
| 3196 | 3196 | plus20b, res4, res5, res6, res7); |
| 3197 | − SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 2); | |
| 3198 | − SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 2); | |
| 3197 | + SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 2, | |
| 3198 | + src0, src2, src4, src6); | |
| 3199 | 3199 | SRARI_H4_SH(res0, res1, res2, res3, 5); |
| 3200 | 3200 | SRARI_H4_SH(res4, res5, res6, res7, 5); |
| 3201 | 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 | 3266 | minus5b, res4, res5, res6, res7); |
| 3267 | 3267 | DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b, |
| 3268 | 3268 | plus20b, res4, res5, res6, res7); |
| 3269 | − SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 3); | |
| 3270 | − SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 3); | |
| 3269 | + SLDI_B4_SB(src1, src0, src3, src2, src5, src4, src7, src6, 3, | |
| 3270 | + src0, src2, src4, src6); | |
| 3271 | 3271 | SRARI_H4_SH(res0, res1, res2, res3, 5); |
| 3272 | 3272 | SRARI_H4_SH(res4, res5, res6, res7, 5); |
| 3273 | 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 | 3323 | VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11); |
| 3324 | 3324 | DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b, |
| 3325 | 3325 | res4, res5, res6, res7); |
| 3326 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2); | |
| 3327 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2); | |
| 3328 | − SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 2); | |
| 3329 | − SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 2); | |
| 3326 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2, | |
| 3327 | + src0, src1, src2, src3); | |
| 3328 | + SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 2, | |
| 3329 | + src4, src5, src6, src7); | |
| 3330 | 3330 | PCKEV_D2_SB(src1, src0, src3, src2, src0, src1); |
| 3331 | 3331 | PCKEV_D2_SB(src5, src4, src7, src6, src4, src5); |
| 3332 | 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 | 3388 | VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11); |
| 3389 | 3389 | DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b, |
| 3390 | 3390 | res4, res5, res6, res7); |
| 3391 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3); | |
| 3392 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3); | |
| 3393 | − SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 3); | |
| 3394 | − SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 3); | |
| 3391 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3, | |
| 3392 | + src0, src1, src2, src3); | |
| 3393 | + SLDI_B4_SB(src4, src4, src5, src5, src6, src6, src7, src7, 3, | |
| 3394 | + src4, src5, src6, src7); | |
| 3395 | 3395 | PCKEV_D2_SB(src1, src0, src3, src2, src0, src1); |
| 3396 | 3396 | PCKEV_D2_SB(src5, src4, src7, src6, src4, src5); |
| 3397 | 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 | 3439 | SRARI_H2_SH(out0, out1, 5); |
| 3440 | 3440 | SAT_SH2_SH(out0, out1, 7); |
| 3441 | 3441 | res = __msa_pckev_b((v16i8) out1, (v16i8) out0); |
| 3442 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2); | |
| 3443 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2); | |
| 3442 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 2, | |
| 3443 | + src0, src1, src2, src3); | |
| 3444 | 3444 | src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1); |
| 3445 | 3445 | src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3); |
| 3446 | 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 | 3475 | SRARI_H2_SH(out0, out1, 5); |
| 3476 | 3476 | SAT_SH2_SH(out0, out1, 7); |
| 3477 | 3477 | res = __msa_pckev_b((v16i8) out1, (v16i8) out0); |
| 3478 | − SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3); | |
| 3479 | − SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3); | |
| 3478 | + SLDI_B4_SB(src0, src0, src1, src1, src2, src2, src3, src3, 3, | |
| 3479 | + src0, src1, src2, src3); | |
| 3480 | 3480 | src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1); |
| 3481 | 3481 | src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3); |
| 3482 | 3482 | src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1); |
| @@ -1357,6 +1357,7 @@ static void hevc_sao_edge_filter_0degree_8width_msa(uint8_t *dst, · 1356 unmodified lines | ||
| 1357 | 1357 | v16u8 cmp_minus10, diff_minus10, diff_minus11; |
| 1358 | 1358 | v16u8 src0, src1, dst0, src_minus10, src_minus11, src_plus10, src_plus11; |
| 1359 | 1359 | v16i8 offset, sao_offset = LD_SB(sao_offset_val); |
| 1360 | + v16i8 zeros = { 0 }; | |
| 1360 | 1361 | |
| 1361 | 1362 | sao_offset = __msa_pckev_b(sao_offset, sao_offset); |
| 1362 | 1363 | src -= 1; |
| @@ -1367,8 +1368,8 @@ static void hevc_sao_edge_filter_0degree_8width_msa(uint8_t *dst, · 4 unmodified lines | ||
| 1367 | 1368 | for (height -= 2; height; height -= 2) { |
| 1368 | 1369 | src += (src_stride << 1); |
| 1369 | 1370 | |
| 1370 | − SLDI_B2_0_UB(src_minus10, src_minus11, src0, src1, 1); | |
| 1371 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_plus10, src_plus11, 2); | |
| 1371 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 1, src0, src1); | |
| 1372 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_plus10, src_plus11); | |
| 1372 | 1373 | |
| 1373 | 1374 | PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10, |
| 1374 | 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 | 1405 | dst += dst_stride; |
| 1405 | 1406 | } |
| 1406 | 1407 | |
| 1407 | − SLDI_B2_0_UB(src_minus10, src_minus11, src0, src1, 1); | |
| 1408 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_plus10, src_plus11, 2); | |
| 1408 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 1, src0, src1); | |
| 1409 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_plus10, src_plus11); | |
| 1409 | 1410 | |
| 1410 | 1411 | PCKEV_D2_UB(src_minus11, src_minus10, src_plus11, src_plus10, src_minus10, |
| 1411 | 1412 | src_plus10); |
| @@ -1473,14 +1474,12 @@ static void hevc_sao_edge_filter_0degree_16multiple_msa(uint8_t *dst, · 61 unmodified lines | ||
| 1473 | 1474 | dst_ptr = dst + v_cnt; |
| 1474 | 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 | − src_zero1, 1); | |
| 1478 | − SLDI_B2_SB(src12, src13, src_minus12, src_minus13, src_zero2, | |
| 1479 | − src_zero3, 1); | |
| 1480 | − SLDI_B2_SB(src10, src11, src_minus10, src_minus11, src_plus10, | |
| 1481 | − src_plus11, 2); | |
| 1482 | − SLDI_B2_SB(src12, src13, src_minus12, src_minus13, src_plus12, | |
| 1483 | − src_plus13, 2); | |
| 1477 | + SLDI_B4_SB(src10, src_minus10, src11, src_minus11, | |
| 1478 | + src12, src_minus12, src13, src_minus13, 1, | |
| 1479 | + src_zero0, src_zero1, src_zero2, src_zero3); | |
| 1480 | + SLDI_B4_SB(src10, src_minus10, src11, src_minus11, | |
| 1481 | + src12, src_minus12, src13, src_minus13, 2, | |
| 1482 | + src_plus10, src_plus11, src_plus12, src_plus13); | |
| 1484 | 1483 | |
| 1485 | 1484 | cmp_minus10 = ((v16u8) src_zero0 == src_minus10); |
| 1486 | 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 | 1879 | v16u8 src_minus11, src10, src11; |
| 1881 | 1880 | v16i8 src_plus0, src_zero0, src_plus1, src_zero1, dst0; |
| 1882 | 1881 | v8i16 offset_mask0, offset_mask1; |
| 1882 | + v16i8 zeros = { 0 }; | |
| 1883 | 1883 | |
| 1884 | 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 | 1892 | for (height -= 2; height; height -= 2) { |
| 1893 | 1893 | src_orig += (src_stride << 1); |
| 1894 | 1894 | |
| 1895 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 1896 | − SLDI_B2_0_SB(src10, src11, src_plus0, src_plus1, 2); | |
| 1895 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 1896 | + SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus0, src_plus1); | |
| 1897 | 1897 | |
| 1898 | 1898 | ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10, |
| 1899 | 1899 | src_minus11); |
| @@ -1938,8 +1938,8 @@ static void hevc_sao_edge_filter_45degree_4width_msa(uint8_t *dst, · 38 unmodified lines | ||
| 1938 | 1938 | dst += dst_stride; |
| 1939 | 1939 | } |
| 1940 | 1940 | |
| 1941 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 1942 | − SLDI_B2_0_SB(src10, src11, src_plus0, src_plus1, 2); | |
| 1941 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 1942 | + SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus0, src_plus1); | |
| 1943 | 1943 | |
| 1944 | 1944 | ILVR_B2_UB(src_plus0, src_minus10, src_plus1, src_minus11, src_minus10, |
| 1945 | 1945 | src_minus11); |
| @@ -1992,6 +1992,7 @@ static void hevc_sao_edge_filter_45degree_8width_msa(uint8_t *dst, · 46 unmodified lines | ||
| 1992 | 1992 | v16u8 src_minus10, src10, src_minus11, src11; |
| 1993 | 1993 | v16i8 src_zero0, src_plus10, src_zero1, src_plus11, dst0; |
| 1994 | 1994 | v8i16 offset_mask0, offset_mask1; |
| 1995 | + v16i8 zeros = { 0 }; | |
| 1995 | 1996 | |
| 1996 | 1997 | sao_offset = __msa_pckev_b(sao_offset, sao_offset); |
| 1997 | 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 | 2004 | for (height -= 2; height; height -= 2) { |
| 2004 | 2005 | src_orig += (src_stride << 1); |
| 2005 | 2006 | |
| 2006 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2007 | − SLDI_B2_0_SB(src10, src11, src_plus10, src_plus11, 2); | |
| 2007 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2008 | + SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus10, src_plus11); | |
| 2008 | 2009 | |
| 2009 | 2010 | ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11, |
| 2010 | 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 | 2049 | dst += dst_stride; |
| 2049 | 2050 | } |
| 2050 | 2051 | |
| 2051 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2052 | − SLDI_B2_0_SB(src10, src11, src_plus10, src_plus11, 2); | |
| 2052 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2053 | + SLDI_B2_SB(zeros, src10, zeros, src11, 2, src_plus10, src_plus11); | |
| 2053 | 2054 | ILVR_B2_UB(src_plus10, src_minus10, src_plus11, src_minus11, src_minus10, |
| 2054 | 2055 | src_minus11); |
| 2055 | 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 | 2131 | src_plus13 = LD_UB(src + 1 + v_cnt + (src_stride << 2)); |
| 2131 | 2132 | src_orig += 16; |
| 2132 | 2133 | |
| 2133 | − SLDI_B2_SB(src10, src11, src_minus11, src_minus12, src_zero0, | |
| 2134 | − src_zero1, 1); | |
| 2135 | − SLDI_B2_SB(src12, src13, src_minus13, src_minus14, src_zero2, | |
| 2136 | − src_zero3, 1); | |
| 2137 | − SLDI_B2_SB(src11, src12, src_minus12, src_minus13, src_plus10, | |
| 2138 | − src_plus11, 2); | |
| 2134 | + SLDI_B4_SB(src10, src_minus11, src11, src_minus12, | |
| 2135 | + src12, src_minus13, src13, src_minus14, 1, | |
| 2136 | + src_zero0, src_zero1, src_zero2, src_zero3); | |
| 2137 | + SLDI_B2_SB(src11, src_minus12, src12, src_minus13, 2, src_plus10, | |
| 2138 | + src_plus11); | |
| 2139 | 2139 | |
| 2140 | 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 | 2228 | v16u8 cmp_minus10, diff_minus10, cmp_minus11, diff_minus11; |
| 2229 | 2229 | v16u8 src_minus10, src10, src_minus11, src11; |
| 2230 | 2230 | v8i16 offset_mask0, offset_mask1; |
| 2231 | + v16i8 zeros = { 0 }; | |
| 2231 | 2232 | |
| 2232 | 2233 | sao_offset = __msa_pckev_b(sao_offset, sao_offset); |
| 2233 | 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 | 2240 | for (height -= 2; height; height -= 2) { |
| 2240 | 2241 | src_orig += (src_stride << 1); |
| 2241 | 2242 | |
| 2242 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2243 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2); | |
| 2243 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2244 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11); | |
| 2244 | 2245 | |
| 2245 | 2246 | ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10, |
| 2246 | 2247 | src_minus11); |
| @@ -2286,8 +2287,8 @@ static void hevc_sao_edge_filter_135degree_4width_msa(uint8_t *dst, · 39 unmodified lines | ||
| 2286 | 2287 | dst += dst_stride; |
| 2287 | 2288 | } |
| 2288 | 2289 | |
| 2289 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2290 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2); | |
| 2290 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2291 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11); | |
| 2291 | 2292 | |
| 2292 | 2293 | ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10, |
| 2293 | 2294 | src_minus11); |
| @@ -2342,6 +2343,7 @@ static void hevc_sao_edge_filter_135degree_8width_msa(uint8_t *dst, · 48 unmodified lines | ||
| 2342 | 2343 | v16u8 src_minus10, src10, src_minus11, src11; |
| 2343 | 2344 | v16i8 src_zero0, src_zero1, dst0; |
| 2344 | 2345 | v8i16 offset_mask0, offset_mask1; |
| 2346 | + v16i8 zeros = { 0 }; | |
| 2345 | 2347 | |
| 2346 | 2348 | sao_offset = __msa_pckev_b(sao_offset, sao_offset); |
| 2347 | 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 | 2355 | for (height -= 2; height; height -= 2) { |
| 2354 | 2356 | src_orig += (src_stride << 1); |
| 2355 | 2357 | |
| 2356 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2357 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2); | |
| 2358 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2359 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11); | |
| 2358 | 2360 | ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10, |
| 2359 | 2361 | src_minus11); |
| 2360 | 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 | 2400 | dst += dst_stride; |
| 2399 | 2401 | } |
| 2400 | 2402 | |
| 2401 | − SLDI_B2_0_SB(src_minus11, src10, src_zero0, src_zero1, 1); | |
| 2402 | − SLDI_B2_0_UB(src_minus10, src_minus11, src_minus10, src_minus11, 2); | |
| 2403 | + SLDI_B2_SB(zeros, src_minus11, zeros, src10, 1, src_zero0, src_zero1); | |
| 2404 | + SLDI_B2_UB(zeros, src_minus10, zeros, src_minus11, 2, src_minus10, src_minus11); | |
| 2403 | 2405 | ILVR_B2_UB(src10, src_minus10, src11, src_minus11, src_minus10, |
| 2404 | 2406 | src_minus11); |
| 2405 | 2407 | ILVR_B2_SB(src_zero0, src_zero0, src_zero1, src_zero1, src_zero0, |
| @@ -998,7 +998,8 @@ static void hevc_intra_pred_angular_upper_4width_msa(const uint8_t *src_top, · 997 unmodified lines | ||
| 998 | 998 | ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3); |
| 999 | 999 | ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3, |
| 1000 | 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 | 1003 | ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2); |
| 1003 | 1004 | ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3); |
| 1004 | 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 | 1094 | UNPCK_UB_SH(top2, diff4, diff5); |
| 1094 | 1095 | UNPCK_UB_SH(top3, diff6, diff7); |
| 1095 | 1096 | |
| 1096 | − SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2); | |
| 1097 | − SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2); | |
| 1097 | + SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2, | |
| 1098 | + diff1, diff3, diff5, diff7); | |
| 1098 | 1099 | MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6, |
| 1099 | 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 | 1187 | fact6 = __msa_fill_h(fact_val3); |
| 1187 | 1188 | fact7 = __msa_fill_h(32 - fact_val3); |
| 1188 | 1189 | |
| 1189 | − SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1); | |
| 1190 | − SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1); | |
| 1190 | + SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1, | |
| 1191 | + top1, top3, top5, top7); | |
| 1191 | 1192 | UNPCK_UB_SH(top0, diff0, diff1); |
| 1192 | 1193 | UNPCK_UB_SH(top1, diff2, diff3); |
| 1193 | 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 | 1298 | top2 = top1; |
| 1298 | 1299 | top6 = top5; |
| 1299 | 1300 | |
| 1300 | − SLDI_B2_UB(top1, top3, top0, top2, top1, top3, 1); | |
| 1301 | − SLDI_B2_UB(top5, top7, top4, top6, top5, top7, 1); | |
| 1301 | + SLDI_B4_UB(top1, top0, top3, top2, top5, top4, top7, top6, 1, | |
| 1302 | + top1, top3, top5, top7); | |
| 1302 | 1303 | UNPCK_UB_SH(top0, diff0, diff1); |
| 1303 | 1304 | UNPCK_UB_SH(top1, diff2, diff3); |
| 1304 | 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 | 1408 | ILVR_D2_SH(fact3, fact1, fact7, fact5, fact1, fact3); |
| 1408 | 1409 | ILVR_B4_SH(zero, top0, zero, top1, zero, top2, zero, top3, |
| 1409 | 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 | 1413 | ILVR_D2_SH(diff2, diff0, diff6, diff4, diff0, diff2); |
| 1412 | 1414 | ILVR_D2_SH(diff3, diff1, diff7, diff5, diff1, diff3); |
| 1413 | 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 | 1513 | UNPCK_UB_SH(top1, diff2, diff3); |
| 1512 | 1514 | UNPCK_UB_SH(top2, diff4, diff5); |
| 1513 | 1515 | UNPCK_UB_SH(top3, diff6, diff7); |
| 1514 | − SLDI_B2_SH(diff1, diff3, diff0, diff2, diff1, diff3, 2); | |
| 1515 | − SLDI_B2_SH(diff5, diff7, diff4, diff6, diff5, diff7, 2); | |
| 1516 | + SLDI_B4_SH(diff1, diff0, diff3, diff2, diff5, diff4, diff7, diff6, 2, | |
| 1517 | + diff1, diff3, diff5, diff7); | |
| 1516 | 1518 | MUL4(diff1, fact0, diff3, fact2, diff5, fact4, diff7, fact6, |
| 1517 | 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 | 1608 | fact6 = __msa_fill_h(fact_val3); |
| 1607 | 1609 | fact7 = __msa_fill_h(32 - fact_val3); |
| 1608 | 1610 | |
| 1609 | − SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1); | |
| 1610 | − SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1); | |
| 1611 | + SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1, | |
| 1612 | + top1, top3, top5, top7); | |
| 1611 | 1613 | |
| 1612 | 1614 | UNPCK_UB_SH(top0, diff0, diff1); |
| 1613 | 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 | 1715 | top2 = top1; |
| 1714 | 1716 | top6 = top5; |
| 1715 | 1717 | |
| 1716 | − SLDI_B2_SB(top1, top3, top0, top2, top1, top3, 1); | |
| 1717 | − SLDI_B2_SB(top5, top7, top4, top6, top5, top7, 1); | |
| 1718 | + SLDI_B4_SB(top1, top0, top3, top2, top5, top4, top7, top6, 1, | |
| 1719 | + top1, top3, top5, top7); | |
| 1718 | 1720 | |
| 1719 | 1721 | UNPCK_UB_SH(top0, diff0, diff1); |
| 1720 | 1722 | UNPCK_UB_SH(top1, diff2, diff3); |
| @@ -59,12 +59,13 @@ static void common_hz_bil_4w_msa(const uint8_t *src, int32_t src_stride, · 58 unmodified lines | ||
| 59 | 59 | uint8_t loop_cnt; |
| 60 | 60 | uint32_t out0, out1; |
| 61 | 61 | v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1; |
| 62 | + v16i8 zeros = { 0 }; | |
| 62 | 63 | |
| 63 | 64 | for (loop_cnt = (height >> 1); loop_cnt--;) { |
| 64 | 65 | LD_UB2(src, src_stride, src0, src1); |
| 65 | 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 | 69 | AVER_UB2_UB(src0_sld1, src0, src1_sld1, src1, res0, res1); |
| 69 | 70 | |
| 70 | 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 | 84 | uint8_t loop_cnt; |
| 84 | 85 | v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1; |
| 86 | + v16i8 zeros = { 0 }; | |
| 85 | 87 | |
| 86 | 88 | for (loop_cnt = (height >> 2); loop_cnt--;) { |
| 87 | 89 | LD_SB4(src, src_stride, src0, src1, src2, src3); |
| 88 | 90 | src += (4 * src_stride); |
| 89 | 91 | |
| 90 | − SLDI_B4_0_SB(src0, src1, src2, src3, | |
| 91 | − src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1); | |
| 92 | + SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1, | |
| 93 | + src0_sld1, src1_sld1, src2_sld1, src3_sld1); | |
| 92 | 94 | AVER_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, |
| 93 | 95 | src2, src2_sld1, src3, src3_sld1, dst, dst_stride); |
| 94 | 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 | 127 | v16i8 src0, src1, src2, src3, src4, src5, src6, src7; |
| 126 | 128 | v16i8 src0_sld1, src1_sld1, src2_sld1, src3_sld1; |
| 127 | 129 | v16i8 src4_sld1, src5_sld1, src6_sld1, src7_sld1; |
| 130 | + v16i8 zeros = { 0 }; | |
| 128 | 131 | |
| 129 | 132 | LD_SB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7); |
| 130 | 133 | src += (8 * src_stride); |
| 131 | 134 | |
| 132 | − SLDI_B4_0_SB(src0, src1, src2, src3, | |
| 133 | − src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1); | |
| 134 | − SLDI_B4_0_SB(src4, src5, src6, src7, | |
| 135 | − src4_sld1, src5_sld1, src6_sld1, src7_sld1, 1); | |
| 135 | + SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1, | |
| 136 | + src0_sld1, src1_sld1, src2_sld1, src3_sld1); | |
| 137 | + SLDI_B4_SB(zeros, src4, zeros, src5, zeros, src6, zeros, src7, 1, | |
| 138 | + src4_sld1, src5_sld1, src6_sld1, src7_sld1); | |
| 136 | 139 | |
| 137 | 140 | AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, |
| 138 | 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 | 148 | uint8_t *dst, int32_t dst_stride) |
| 146 | 149 | { |
| 147 | 150 | v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1; |
| 151 | + v16i8 zeros = { 0 }; | |
| 148 | 152 | |
| 149 | 153 | LD_SB4(src, src_stride, src0, src1, src2, src3); |
| 150 | − SLDI_B4_0_SB(src0, src1, src2, src3, | |
| 151 | − src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1); | |
| 154 | + SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1, | |
| 155 | + src0_sld1, src1_sld1, src2_sld1, src3_sld1); | |
| 152 | 156 | AVE_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, |
| 153 | 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 | 220 | v16u8 src0, src1, src0_sld1, src1_sld1, res0, res1; |
| 217 | 221 | v16u8 tmp0 = { 0 }; |
| 218 | 222 | v16u8 tmp1 = { 0 }; |
| 223 | + v16i8 zeros = { 0 }; | |
| 219 | 224 | |
| 220 | 225 | for (loop_cnt = (height >> 1); loop_cnt--;) { |
| 221 | 226 | LD_UB2(src, src_stride, src0, src1); |
| 222 | 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 | 231 | dst0 = LW(dst); |
| 227 | 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 | 253 | uint8_t loop_cnt; |
| 249 | 254 | v16i8 src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, src3_sld1; |
| 255 | + v16i8 zeros = { 0 }; | |
| 250 | 256 | |
| 251 | 257 | for (loop_cnt = (height >> 2); loop_cnt--;) { |
| 252 | 258 | LD_SB4(src, src_stride, src0, src1, src2, src3); |
| 253 | 259 | src += (4 * src_stride); |
| 254 | 260 | |
| 255 | − SLDI_B4_0_SB(src0, src1, src2, src3, | |
| 256 | − src0_sld1, src1_sld1, src2_sld1, src3_sld1, 1); | |
| 261 | + SLDI_B4_SB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1, | |
| 262 | + src0_sld1, src1_sld1, src2_sld1, src3_sld1); | |
| 257 | 263 | |
| 258 | 264 | AVER_DST_ST8x4_UB(src0, src0_sld1, src1, src1_sld1, src2, src2_sld1, |
| 259 | 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 | 535 | v16i8 src0, src1, src2, src0_sld1, src1_sld1, src2_sld1; |
| 530 | 536 | v16u8 src0_r, src1_r, src2_r, res; |
| 531 | 537 | v8u16 add0, add1, add2, sum0, sum1; |
| 538 | + v16i8 zeros = { 0 }; | |
| 532 | 539 | |
| 533 | 540 | src0 = LD_SB(src); |
| 534 | 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 | 544 | LD_SB2(src, src_stride, src1, src2); |
| 538 | 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 | 549 | ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, |
| 542 | 550 | src0_r, src1_r, src2_r); |
| 543 | 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 | 573 | v16u8 src0_r, src1_r, src2_r, src3_r, src4_r; |
| 566 | 574 | v8u16 add0, add1, add2, add3, add4; |
| 567 | 575 | v8u16 sum0, sum1, sum2, sum3; |
| 576 | + v16i8 zeros = { 0 }; | |
| 568 | 577 | |
| 569 | 578 | src0 = LD_SB(src); |
| 570 | 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 | 582 | LD_SB4(src, src_stride, src1, src2, src3, src4); |
| 574 | 583 | src += (4 * src_stride); |
| 575 | 584 | |
| 576 | − SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1); | |
| 577 | − SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1); | |
| 585 | + SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1, | |
| 586 | + src1_sld1, src2_sld1); | |
| 587 | + SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1); | |
| 578 | 588 | ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r, |
| 579 | 589 | src1_r, src2_r); |
| 580 | 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 | 669 | v8u16 add0, add1, add2, add3, add4, add5, add6, add7, add8; |
| 660 | 670 | v8u16 sum0, sum1, sum2, sum3, sum4, sum5, sum6, sum7; |
| 661 | 671 | v16i8 out0, out1; |
| 672 | + v16i8 zeros = { 0 }; | |
| 662 | 673 | |
| 663 | 674 | LD_UB8(src, src_stride, src0, src1, src2, src3, src4, src5, src6, src7); |
| 664 | 675 | src += (8 * src_stride); |
| 665 | 676 | src8 = LD_UB(src); |
| 666 | 677 | |
| 667 | − SLDI_B4_0_UB(src0, src1, src2, src3, src0_sld1, src1_sld1, src2_sld1, | |
| 668 | − src3_sld1, 1); | |
| 669 | − SLDI_B3_0_UB(src4, src5, src6, src4_sld1, src5_sld1, src6_sld1, 1); | |
| 670 | − SLDI_B2_0_UB(src7, src8, src7_sld1, src8_sld1, 1); | |
| 678 | + SLDI_B4_UB(zeros, src0, zeros, src1, zeros, src2, zeros, src3, 1, | |
| 679 | + src0_sld1, src1_sld1, src2_sld1, src3_sld1); | |
| 680 | + SLDI_B3_UB(zeros, src4, zeros, src5, zeros, src6, 1, src4_sld1, | |
| 681 | + src5_sld1, src6_sld1); | |
| 682 | + SLDI_B2_UB(zeros, src7, zeros, src8, 1, src7_sld1, src8_sld1); | |
| 671 | 683 | ILVR_B4_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src3_sld1, |
| 672 | 684 | src3, src0_r, src1_r, src2_r, src3_r); |
| 673 | 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 | 715 | v8u16 add0, add1, add2, add3, add4; |
| 704 | 716 | v8u16 sum0, sum1, sum2, sum3; |
| 705 | 717 | v16i8 out0, out1; |
| 718 | + v16i8 zeros = { 0 }; | |
| 706 | 719 | |
| 707 | 720 | LD_SB4(src, src_stride, src0, src1, src2, src3); |
| 708 | 721 | src += (4 * src_stride); |
| 709 | 722 | src4 = LD_SB(src); |
| 710 | 723 | |
| 711 | − SLDI_B3_0_SB(src0, src1, src2, src0_sld1, src1_sld1, src2_sld1, 1); | |
| 712 | − SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1); | |
| 724 | + SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1, | |
| 725 | + src1_sld1, src2_sld1); | |
| 726 | + SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1); | |
| 713 | 727 | ILVR_B3_UH(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r, |
| 714 | 728 | src1_r, src2_r); |
| 715 | 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 | 932 | v16u8 src0_r, src1_r, src2_r; |
| 919 | 933 | v8u16 add0, add1, add2, sum0, sum1; |
| 920 | 934 | v16u8 dst0, dst1, res0, res1; |
| 935 | + v16i8 zeros = { 0 }; | |
| 921 | 936 | |
| 922 | 937 | src0 = LD_SB(src); |
| 923 | 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 | 942 | src += (2 * src_stride); |
| 928 | 943 | |
| 929 | 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 | 947 | ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r, |
| 932 | 948 | src1_r, src2_r); |
| 933 | 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 | 975 | v16u8 src0_r, src1_r, src2_r, src3_r, src4_r; |
| 960 | 976 | v8u16 add0, add1, add2, add3, add4; |
| 961 | 977 | v8u16 sum0, sum1, sum2, sum3; |
| 978 | + v16i8 zeros = { 0 }; | |
| 962 | 979 | |
| 963 | 980 | src0 = LD_SB(src); |
| 964 | 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 | 985 | src += (4 * src_stride); |
| 969 | 986 | |
| 970 | 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); | |
| 972 | − SLDI_B2_0_SB(src3, src4, src3_sld1, src4_sld1, 1); | |
| 988 | + SLDI_B3_SB(zeros, src0, zeros, src1, zeros, src2, 1, src0_sld1, | |
| 989 | + src1_sld1, src2_sld1); | |
| 990 | + SLDI_B2_SB(zeros, src3, zeros, src4, 1, src3_sld1, src4_sld1); | |
| 973 | 991 | ILVR_B3_UB(src0_sld1, src0, src1_sld1, src1, src2_sld1, src2, src0_r, |
| 974 | 992 | src1_r, src2_r); |
| 975 | 993 | ILVR_B2_UB(src3_sld1, src3, src4_sld1, src4, src3_r, src4_r); |
| @@ -87,8 +87,8 @@ static uint32_t sad_horiz_bilinear_filter_8width_msa(uint8_t *src, · 86 unmodified lines | ||
| 87 | 87 | |
| 88 | 88 | PCKEV_D2_UB(src1, src0, src3, src2, src0, src1); |
| 89 | 89 | PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5); |
| 90 | − SLDI_B2_UB(ref0, ref1, ref0, ref1, ref0, ref1, 1); | |
| 91 | − SLDI_B2_UB(ref2, ref3, ref2, ref3, ref2, ref3, 1); | |
| 90 | + SLDI_B4_UB(ref0, ref0, ref1, ref1, ref2, ref2, ref3, ref3, 1, | |
| 91 | + ref0, ref1, ref2, ref3); | |
| 92 | 92 | PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1); |
| 93 | 93 | AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1); |
| 94 | 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 | 101 | PCKEV_D2_UB(src1, src0, src3, src2, src0, src1); |
| 102 | 102 | PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref4, ref5); |
| 103 | − SLDI_B2_UB(ref0, ref1, ref0, ref1, ref0, ref1, 1); | |
| 104 | − SLDI_B2_UB(ref2, ref3, ref2, ref3, ref2, ref3, 1); | |
| 103 | + SLDI_B4_UB(ref0, ref0, ref1, ref1, ref2, ref2, ref3, ref3, 1, | |
| 104 | + ref0, ref1, ref2, ref3); | |
| 105 | 105 | PCKEV_D2_UB(ref1, ref0, ref3, ref2, ref0, ref1); |
| 106 | 106 | AVER_UB2_UB(ref4, ref0, ref5, ref1, comp0, comp1); |
| 107 | 107 | sad += SAD_UB2_UH(src0, src1, comp0, comp1); |
| @@ -480,8 +480,8 @@ static void horiz_mc_qpel_aver_src1_8width_msa(const uint8_t *src, · 479 unmodified lines | ||
| 480 | 480 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, |
| 481 | 481 | mask0, mask1, mask2, mask3, |
| 482 | 482 | const20, const6, const3); |
| 483 | − SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1); | |
| 484 | − SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1); | |
| 483 | + SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1, | |
| 484 | + inp0, inp1, inp2, inp3); | |
| 485 | 485 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 486 | 486 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 487 | 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 | 710 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 711 | 711 | mask2, mask3, const20, |
| 712 | 712 | const6, const3); |
| 713 | − SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1); | |
| 714 | − SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1); | |
| 713 | + SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1, | |
| 714 | + inp0, inp1, inp2, inp3); | |
| 715 | 715 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 716 | 716 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 717 | 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 | 948 | mask0, mask1, mask2, mask3, |
| 949 | 949 | const20, const6, const3); |
| 950 | 950 | LD_UB4(dst, dst_stride, dst0, dst1, dst2, dst3); |
| 951 | − SLDI_B2_UB(inp0, inp1, inp0, inp1, inp0, inp1, 1); | |
| 952 | − SLDI_B2_UB(inp2, inp3, inp2, inp3, inp2, inp3, 1); | |
| 951 | + SLDI_B4_UB(inp0, inp0, inp1, inp1, inp2, inp2, inp3, inp3, 1, | |
| 952 | + inp0, inp1, inp2, inp3); | |
| 953 | 953 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 954 | 954 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 955 | 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 | 3094 | res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1, |
| 3095 | 3095 | mask2, mask3, const20, |
| 3096 | 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 | 3099 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3100 | 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 | 3104 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3105 | 3105 | mask2, mask3, const20, |
| 3106 | 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 | 3109 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3110 | 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 | 3114 | res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1, |
| 3115 | 3115 | mask2, mask3, const20, |
| 3116 | 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 | 3119 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3120 | 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 | 3134 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3135 | 3135 | mask2, mask3, const20, |
| 3136 | 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 | 3139 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3140 | 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 | 3389 | res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1, |
| 3390 | 3390 | mask2, mask3, const20, |
| 3391 | 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 | 3394 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3395 | 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 | 3399 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3400 | 3400 | mask2, mask3, const20, |
| 3401 | 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 | 3404 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3405 | 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 | 3409 | res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1, |
| 3410 | 3410 | mask2, mask3, const20, |
| 3411 | 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 | 3414 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3415 | 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 | 3427 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3428 | 3428 | mask2, mask3, const20, |
| 3429 | 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 | 3432 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3433 | 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 | 3691 | res0 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp0, inp1, mask0, mask1, |
| 3692 | 3692 | mask2, mask3, const20, |
| 3693 | 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 | 3696 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3697 | 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 | 3701 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3702 | 3702 | mask2, mask3, const20, |
| 3703 | 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 | 3706 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3707 | 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 | 3712 | mask2, mask3, const20, |
| 3713 | 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 | 3716 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 3717 | 3717 | horiz4 = __msa_ave_u_b(inp0, res0); |
| 3718 | 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 | 3731 | res1 = APPLY_HORIZ_QPEL_NO_ROUND_FILTER_8BYTE(inp2, inp3, mask0, mask1, |
| 3732 | 3732 | mask2, mask3, const20, |
| 3733 | 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 | 3736 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 3737 | 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 | 4134 | const20, const6, const3); |
| 4135 | 4135 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4136 | 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 | 4139 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4140 | 4140 | horiz0 = __msa_aver_u_b(inp0, res0); |
| 4141 | 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 | 4144 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4145 | 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 | 4150 | const20, const6, const3); |
| 4151 | 4151 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4152 | 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 | 4155 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4156 | 4156 | horiz4 = __msa_aver_u_b(inp0, res0); |
| 4157 | 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 | 4160 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4161 | 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 | 4410 | const20, const6, const3); |
| 4411 | 4411 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4412 | 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 | 4415 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4416 | 4416 | horiz0 = __msa_aver_u_b(inp0, res0); |
| 4417 | 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 | 4420 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4421 | 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 | 4426 | const20, const6, const3); |
| 4427 | 4427 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4428 | 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 | 4431 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4432 | 4432 | horiz4 = __msa_aver_u_b(inp0, res0); |
| 4433 | 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 | 4436 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4437 | 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 | 4690 | res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, |
| 4691 | 4691 | mask0, mask1, mask2, mask3, |
| 4692 | 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 | 4695 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4696 | 4696 | horiz0 = __msa_aver_u_b(inp0, res0); |
| 4697 | 4697 | horiz1 = (v16u8) __msa_splati_d((v2i64) horiz0, 1); |
| 4698 | 4698 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4699 | 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 | 4702 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4703 | 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 | 4706 | src += (2 * src_stride); |
| 4707 | 4707 | res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3, |
| 4708 | 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 | 4711 | inp0 = (v16u8) __msa_insve_d((v2i64) inp0, 1, (v2i64) inp1); |
| 4712 | 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 | 4726 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 4727 | 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 | 4730 | inp2 = (v16u8) __msa_insve_d((v2i64) inp2, 1, (v2i64) inp3); |
| 4731 | 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 | 5021 | LD_UB2(src, src_stride, inp2, inp3); |
| 5022 | 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 | 5025 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5026 | 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 | 5029 | const20, const6, const3); |
| 5030 | 5030 | LD_UB2(src, src_stride, inp0, inp1); |
| 5031 | 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 | 5034 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5035 | 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 | 5037 | res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3, |
| 5038 | 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 | 5042 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5043 | 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 | 5060 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 5061 | 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 | 5065 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5066 | 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 | 5347 | const20, const6, const3); |
| 5348 | 5348 | LD_UB2(src, src_stride, inp2, inp3); |
| 5349 | 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 | 5352 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5353 | 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 | 5356 | const20, const6, const3); |
| 5357 | 5357 | LD_UB2(src, src_stride, inp0, inp1); |
| 5358 | 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 | 5361 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5362 | 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 | 5364 | res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3, |
| 5365 | 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 | 5369 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5370 | 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 | 5385 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 5386 | 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 | 5390 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5391 | 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 | 5684 | const20, const6, const3); |
| 5685 | 5685 | LD_UB2(src, src_stride, inp2, inp3); |
| 5686 | 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 | 5689 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5690 | 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 | 5693 | const20, const6, const3); |
| 5694 | 5694 | LD_UB2(src, src_stride, inp0, inp1); |
| 5695 | 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 | 5698 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5699 | 5699 | horiz2 = __msa_aver_u_b(inp2, res1); |
| 5700 | 5700 | horiz3 = (v16u8) __msa_splati_d((v2i64) horiz2, 1); |
| 5701 | 5701 | res0 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp0, inp1, mask0, mask1, mask2, mask3, |
| 5702 | 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 | 5705 | inp0 = (v16u8) __msa_ilvr_d((v2i64) inp1, (v2i64) inp0); |
| 5706 | 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 | 5721 | src += (2 * src_stride); |
| 5722 | 5722 | res1 = APPLY_HORIZ_QPEL_FILTER_8BYTE(inp2, inp3, mask0, mask1, mask2, mask3, |
| 5723 | 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 | 5726 | inp2 = (v16u8) __msa_ilvr_d((v2i64) inp3, (v2i64) inp2); |
| 5727 | 5727 | horiz6 = __msa_aver_u_b(inp2, res1); |
| @@ -1995,8 +1995,8 @@ static void common_hv_2ht_2vt_4x8_msa(uint8_t *src, int32_t src_stride, · 1994 unmodified lines | ||
| 1995 | 1995 | hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7); |
| 1996 | 1996 | hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7); |
| 1997 | 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, | |
| 1999 | − hz_out3, hz_out5, 8); | |
| 1998 | + SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1, | |
| 1999 | + hz_out3, hz_out5); | |
| 2000 | 2000 | hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6); |
| 2001 | 2001 | |
| 2002 | 2002 | ILVEV_B2_UB(hz_out0, hz_out1, hz_out2, hz_out3, vec0, vec1); |
| @@ -249,6 +249,7 @@ static const int32_t sinpi_4_9 = 15212; · 248 unmodified lines | ||
| 249 | 249 | v8i16 c0_m, c1_m, c2_m, c3_m; \ |
| 250 | 250 | v8i16 step0_m, step1_m; \ |
| 251 | 251 | v4i32 tmp0_m, tmp1_m, tmp2_m, tmp3_m; \ |
| 252 | + v16i8 zeros = { 0 }; \ | |
| 252 | 253 | \ |
| 253 | 254 | c0_m = VP9_SET_COSPI_PAIR(cospi_16_64, cospi_16_64); \ |
| 254 | 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 | 263 | SRARI_W4_SW(tmp0_m, tmp1_m, tmp2_m, tmp3_m, VP9_DCT_CONST_BITS); \ |
| 263 | 264 | \ |
| 264 | 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 | 267 | BUTTERFLY_4((v8i16) tmp0_m, (v8i16) tmp1_m, \ |
| 267 | 268 | (v8i16) tmp2_m, (v8i16) tmp3_m, \ |
| 268 | 269 | out0, out1, out2, out3); \ |
| @@ -1673,6 +1673,7 @@ static void vp9_transpose_16x8_to_8x16(uint8_t *input, int32_t in_pitch, · 1672 unmodified lines | ||
| 1673 | 1673 | v16u8 p7_org, p6_org, p5_org, p4_org, p3_org, p2_org, p1_org, p0_org; |
| 1674 | 1674 | v16i8 tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; |
| 1675 | 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 | 1678 | LD_UB8(input, in_pitch, |
| 1678 | 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 | 1687 | ILVL_B2_SB(tmp1, tmp0, tmp3, tmp2, tmp5, tmp7); |
| 1687 | 1688 | ILVR_W2_UB(tmp6, tmp4, tmp7, tmp5, q0, q4); |
| 1688 | 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 | 1692 | ST_UB8(p7, p6, p5, p4, p3, p2, p1, p0, output, out_pitch); |
| 1692 | 1693 | output += (8 * out_pitch); |
| @@ -795,7 +795,7 @@ static void common_hv_8ht_8vt_4w_msa(const uint8_t *src, int32_t src_stride, · 794 unmodified lines | ||
| 795 | 795 | filt_hz1, filt_hz2, filt_hz3); |
| 796 | 796 | hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0, |
| 797 | 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 | 800 | filt = LD_SH(filter_vert); |
| 801 | 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 | 1585 | filt_hz1, filt_hz2, filt_hz3); |
| 1586 | 1586 | hz_out5 = HORIZ_8TAP_FILT(src5, src6, mask0, mask1, mask2, mask3, filt_hz0, |
| 1587 | 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 | 1590 | filt = LD_SH(filter_vert); |
| 1591 | 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 | 2093 | src4 = LD_SB(src + 32); |
| 2094 | 2094 | src6 = LD_SB(src + 48); |
| 2095 | 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 | 2097 | src += src_stride; |
| 2098 | 2098 | |
| 2099 | 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 | 2544 | hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7); |
| 2545 | 2545 | hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7); |
| 2546 | 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, | |
| 2548 | − hz_out3, hz_out5, 8); | |
| 2547 | + SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1, | |
| 2548 | + hz_out3, hz_out5); | |
| 2549 | 2549 | hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6); |
| 2550 | 2550 | |
| 2551 | 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 | 3146 | for (loop_cnt = height; loop_cnt--;) { |
| 3147 | 3147 | LD_SB4(src, 16, src0, src2, src4, src6); |
| 3148 | 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 | 3150 | src += src_stride; |
| 3151 | 3151 | |
| 3152 | 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 | 3655 | hz_out4 = HORIZ_2TAP_FILT_UH(src4, src5, mask, filt_hz, 7); |
| 3656 | 3656 | hz_out6 = HORIZ_2TAP_FILT_UH(src6, src7, mask, filt_hz, 7); |
| 3657 | 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, | |
| 3659 | − hz_out3, hz_out5, 8); | |
| 3658 | + SLDI_B3_UH(hz_out2, hz_out0, hz_out4, hz_out2, hz_out6, hz_out4, 8, hz_out1, | |
| 3659 | + hz_out3, hz_out5); | |
| 3660 | 3660 | hz_out7 = (v8u16) __msa_pckod_d((v2i64) hz_out8, (v2i64) hz_out6); |
| 3661 | 3661 | |
| 3662 | 3662 | LW4(dst, dst_stride, tp0, tp1, tp2, tp3); |