History

avcodec/mips: Unrolled loops and expanded functions in avc put mc 10 & 30 msa functions

Kaustubh Raste committed 9 years ago

Commit b5da07d1 parent 598e4161 file · +278 −6Browse files

Unified · Split

libavcodec/mips/h264qpel_msa.c+278−6
@@ -3065,37 +3065,309 @@ void ff_avg_h264_qpel4_mc00_msa(uint8_t *dst, const uint8_t *src, · 3064 unmodified lines
3065void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,3065void ff_put_h264_qpel16_mc10_msa(uint8_t *dst, const uint8_t *src,
3066 ptrdiff_t stride)3066 ptrdiff_t stride)
3067{3067{
3068 avc_luma_hz_qrt_16w_msa(src - 2, stride, dst, stride, 16, 0);3068 uint32_t loop_cnt;
3069 v16i8 dst0, dst1, dst2, dst3, src0, src1, src2, src3, src4, src5, src6;
3070 v16i8 mask0, mask1, mask2, mask3, mask4, mask5, src7, vec11;
3071 v16i8 vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9, vec10;
3072 v8i16 res0, res1, res2, res3, res4, res5, res6, res7;
3073 v16i8 minus5b = __msa_ldi_b(-5);
3074 v16i8 plus20b = __msa_ldi_b(20);
3075
3076 LD_SB3(&luma_mask_arr[0], 16, mask0, mask1, mask2);
3077 mask3 = mask0 + 8;
3078 mask4 = mask1 + 8;
3079 mask5 = mask2 + 8;
3080 src -= 2;
3081
3082 for (loop_cnt = 4; loop_cnt--;) {
3083 LD_SB2(src, 16, src0, src1);
3084 src += stride;
3085 LD_SB2(src, 16, src2, src3);
3086 src += stride;
3087 LD_SB2(src, 16, src4, src5);
3088 src += stride;
3089 LD_SB2(src, 16, src6, src7);
3090 src += stride;
3091
3092 XORI_B8_128_SB(src0, src1, src2, src3, src4, src5, src6, src7);
3093 VSHF_B2_SB(src0, src0, src0, src1, mask0, mask3, vec0, vec3);
3094 VSHF_B2_SB(src2, src2, src2, src3, mask0, mask3, vec6, vec9);
3095 VSHF_B2_SB(src0, src0, src0, src1, mask1, mask4, vec1, vec4);
3096 VSHF_B2_SB(src2, src2, src2, src3, mask1, mask4, vec7, vec10);
3097 VSHF_B2_SB(src0, src0, src0, src1, mask2, mask5, vec2, vec5);
3098 VSHF_B2_SB(src2, src2, src2, src3, mask2, mask5, vec8, vec11);
3099 HADD_SB4_SH(vec0, vec3, vec6, vec9, res0, res1, res2, res3);
3100 DPADD_SB4_SH(vec1, vec4, vec7, vec10, minus5b, minus5b, minus5b,
3101 minus5b, res0, res1, res2, res3);
3102 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3103 plus20b, res0, res1, res2, res3);
3104 VSHF_B2_SB(src4, src4, src4, src5, mask0, mask3, vec0, vec3);
3105 VSHF_B2_SB(src6, src6, src6, src7, mask0, mask3, vec6, vec9);
3106 VSHF_B2_SB(src4, src4, src4, src5, mask1, mask4, vec1, vec4);
3107 VSHF_B2_SB(src6, src6, src6, src7, mask1, mask4, vec7, vec10);
3108 VSHF_B2_SB(src4, src4, src4, src5, mask2, mask5, vec2, vec5);
3109 VSHF_B2_SB(src6, src6, src6, src7, mask2, mask5, vec8, vec11);
3110 HADD_SB4_SH(vec0, vec3, vec6, vec9, res4, res5, res6, res7);
3111 DPADD_SB4_SH(vec1, vec4, vec7, vec10, minus5b, minus5b, minus5b,
3112 minus5b, res4, res5, res6, res7);
3113 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3114 plus20b, res4, res5, res6, res7);
3115 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 2);
3116 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 2);
3117 SRARI_H4_SH(res0, res1, res2, res3, 5);
3118 SRARI_H4_SH(res4, res5, res6, res7, 5);
3119 SAT_SH4_SH(res0, res1, res2, res3, 7);
3120 SAT_SH4_SH(res4, res5, res6, res7, 7);
3121 PCKEV_B2_SB(res1, res0, res3, res2, dst0, dst1);
3122 PCKEV_B2_SB(res5, res4, res7, res6, dst2, dst3);
3123 dst0 = __msa_aver_s_b(dst0, src0);
3124 dst1 = __msa_aver_s_b(dst1, src2);
3125 dst2 = __msa_aver_s_b(dst2, src4);
3126 dst3 = __msa_aver_s_b(dst3, src6);
3127 XORI_B4_128_SB(dst0, dst1, dst2, dst3);
3128 ST_SB4(dst0, dst1, dst2, dst3, dst, stride);
3129 dst += (4 * stride);
3130 }
3069}3131}
3070 3132
3071void ff_put_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,3133void ff_put_h264_qpel16_mc30_msa(uint8_t *dst, const uint8_t *src,
3072 ptrdiff_t stride)3134 ptrdiff_t stride)
3073{3135{
3074 avc_luma_hz_qrt_16w_msa(src - 2, stride, dst, stride, 16, 1);3136 uint32_t loop_cnt;
3137 v16i8 dst0, dst1, dst2, dst3, src0, src1, src2, src3, src4, src5, src6;
3138 v16i8 mask0, mask1, mask2, mask3, mask4, mask5, src7, vec11;
3139 v16i8 vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9, vec10;
3140 v8i16 res0, res1, res2, res3, res4, res5, res6, res7;
3141 v16i8 minus5b = __msa_ldi_b(-5);
3142 v16i8 plus20b = __msa_ldi_b(20);
3143
3144 LD_SB3(&luma_mask_arr[0], 16, mask0, mask1, mask2);
3145 mask3 = mask0 + 8;
3146 mask4 = mask1 + 8;
3147 mask5 = mask2 + 8;
3148 src -= 2;
3149
3150 for (loop_cnt = 4; loop_cnt--;) {
3151 LD_SB2(src, 16, src0, src1);
3152 src += stride;
3153 LD_SB2(src, 16, src2, src3);
3154 src += stride;
3155 LD_SB2(src, 16, src4, src5);
3156 src += stride;
3157 LD_SB2(src, 16, src6, src7);
3158 src += stride;
3159
3160 XORI_B8_128_SB(src0, src1, src2, src3, src4, src5, src6, src7);
3161 VSHF_B2_SB(src0, src0, src0, src1, mask0, mask3, vec0, vec3);
3162 VSHF_B2_SB(src2, src2, src2, src3, mask0, mask3, vec6, vec9);
3163 VSHF_B2_SB(src0, src0, src0, src1, mask1, mask4, vec1, vec4);
3164 VSHF_B2_SB(src2, src2, src2, src3, mask1, mask4, vec7, vec10);
3165 VSHF_B2_SB(src0, src0, src0, src1, mask2, mask5, vec2, vec5);
3166 VSHF_B2_SB(src2, src2, src2, src3, mask2, mask5, vec8, vec11);
3167 HADD_SB4_SH(vec0, vec3, vec6, vec9, res0, res1, res2, res3);
3168 DPADD_SB4_SH(vec1, vec4, vec7, vec10, minus5b, minus5b, minus5b,
3169 minus5b, res0, res1, res2, res3);
3170 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3171 plus20b, res0, res1, res2, res3);
3172 VSHF_B2_SB(src4, src4, src4, src5, mask0, mask3, vec0, vec3);
3173 VSHF_B2_SB(src6, src6, src6, src7, mask0, mask3, vec6, vec9);
3174 VSHF_B2_SB(src4, src4, src4, src5, mask1, mask4, vec1, vec4);
3175 VSHF_B2_SB(src6, src6, src6, src7, mask1, mask4, vec7, vec10);
3176 VSHF_B2_SB(src4, src4, src4, src5, mask2, mask5, vec2, vec5);
3177 VSHF_B2_SB(src6, src6, src6, src7, mask2, mask5, vec8, vec11);
3178 HADD_SB4_SH(vec0, vec3, vec6, vec9, res4, res5, res6, res7);
3179 DPADD_SB4_SH(vec1, vec4, vec7, vec10, minus5b, minus5b, minus5b,
3180 minus5b, res4, res5, res6, res7);
3181 DPADD_SB4_SH(vec2, vec5, vec8, vec11, plus20b, plus20b, plus20b,
3182 plus20b, res4, res5, res6, res7);
3183 SLDI_B2_SB(src1, src3, src0, src2, src0, src2, 3);
3184 SLDI_B2_SB(src5, src7, src4, src6, src4, src6, 3);
3185 SRARI_H4_SH(res0, res1, res2, res3, 5);
3186 SRARI_H4_SH(res4, res5, res6, res7, 5);
3187 SAT_SH4_SH(res0, res1, res2, res3, 7);
3188 SAT_SH4_SH(res4, res5, res6, res7, 7);
3189 PCKEV_B2_SB(res1, res0, res3, res2, dst0, dst1);
3190 PCKEV_B2_SB(res5, res4, res7, res6, dst2, dst3);
3191 dst0 = __msa_aver_s_b(dst0, src0);
3192 dst1 = __msa_aver_s_b(dst1, src2);
3193 dst2 = __msa_aver_s_b(dst2, src4);
3194 dst3 = __msa_aver_s_b(dst3, src6);
3195 XORI_B4_128_SB(dst0, dst1, dst2, dst3);
3196 ST_SB4(dst0, dst1, dst2, dst3, dst, stride);
3197 dst += (4 * stride);
3198 }
3075}3199}
3076 3200
3077void ff_put_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,3201void ff_put_h264_qpel8_mc10_msa(uint8_t *dst, const uint8_t *src,
3078 ptrdiff_t stride)3202 ptrdiff_t stride)
3079{3203{
3080 avc_luma_hz_qrt_8w_msa(src - 2, stride, dst, stride, 8, 0);3204 v16i8 src0, src1, src2, src3, src4, src5, src6, src7, mask0, mask1, mask2;
3205 v16i8 tmp0, tmp1, tmp2, tmp3, vec11;
3206 v16i8 vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9, vec10;
3207 v8i16 res0, res1, res2, res3, res4, res5, res6, res7;
3208 v16i8 minus5b = __msa_ldi_b(-5);
3209 v16i8 plus20b = __msa_ldi_b(20);
3210
3211 LD_SB3(&luma_mask_arr[0], 16, mask0, mask1, mask2);
3212 LD_SB8(src - 2, stride, src0, src1, src2, src3, src4, src5, src6, src7);
3213 XORI_B8_128_SB(src0, src1, src2, src3, src4, src5, src6, src7);
3214 VSHF_B2_SB(src0, src0, src1, src1, mask0, mask0, vec0, vec1);
3215 VSHF_B2_SB(src2, src2, src3, src3, mask0, mask0, vec2, vec3);
3216 HADD_SB4_SH(vec0, vec1, vec2, vec3, res0, res1, res2, res3);
3217 VSHF_B2_SB(src0, src0, src1, src1, mask1, mask1, vec4, vec5);
3218 VSHF_B2_SB(src2, src2, src3, src3, mask1, mask1, vec6, vec7);
3219 DPADD_SB4_SH(vec4, vec5, vec6, vec7, minus5b, minus5b, minus5b, minus5b,
3220 res0, res1, res2, res3);
3221 VSHF_B2_SB(src0, src0, src1, src1, mask2, mask2, vec8, vec9);
3222 VSHF_B2_SB(src2, src2, src3, src3, mask2, mask2, vec10, vec11);
3223 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3224 res0, res1, res2, res3);
3225 VSHF_B2_SB(src4, src4, src5, src5, mask0, mask0, vec0, vec1);
3226 VSHF_B2_SB(src6, src6, src7, src7, mask0, mask0, vec2, vec3);
3227 HADD_SB4_SH(vec0, vec1, vec2, vec3, res4, res5, res6, res7);
3228 VSHF_B2_SB(src4, src4, src5, src5, mask1, mask1, vec4, vec5);
3229 VSHF_B2_SB(src6, src6, src7, src7, mask1, mask1, vec6, vec7);
3230 DPADD_SB4_SH(vec4, vec5, vec6, vec7, minus5b, minus5b, minus5b, minus5b,
3231 res4, res5, res6, res7);
3232 VSHF_B2_SB(src4, src4, src5, src5, mask2, mask2, vec8, vec9);
3233 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
3234 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3235 res4, res5, res6, res7);
3236 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);
3237 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);
3238 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 2);
3239 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 2);
3240 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
3241 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
3242 SRARI_H4_SH(res0, res1, res2, res3, 5);
3243 SRARI_H4_SH(res4, res5, res6, res7, 5);
3244 SAT_SH4_SH(res0, res1, res2, res3, 7);
3245 SAT_SH4_SH(res4, res5, res6, res7, 7);
3246 PCKEV_B2_SB(res1, res0, res3, res2, tmp0, tmp1);
3247 PCKEV_B2_SB(res5, res4, res7, res6, tmp2, tmp3);
3248 tmp0 = __msa_aver_s_b(tmp0, src0);
3249 tmp1 = __msa_aver_s_b(tmp1, src1);
3250 tmp2 = __msa_aver_s_b(tmp2, src4);
3251 tmp3 = __msa_aver_s_b(tmp3, src5);
3252 XORI_B4_128_SB(tmp0, tmp1, tmp2, tmp3);
3253 ST8x8_UB(tmp0, tmp1, tmp2, tmp3, dst, stride);
3081}3254}
3082 3255
3083void ff_put_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,3256void ff_put_h264_qpel8_mc30_msa(uint8_t *dst, const uint8_t *src,
3084 ptrdiff_t stride)3257 ptrdiff_t stride)
3085{3258{
3086 avc_luma_hz_qrt_8w_msa(src - 2, stride, dst, stride, 8, 1);3259 v16i8 src0, src1, src2, src3, src4, src5, src6, src7, mask0, mask1, mask2;
3260 v16i8 tmp0, tmp1, tmp2, tmp3, vec11;
3261 v16i8 vec0, vec1, vec2, vec3, vec4, vec5, vec6, vec7, vec8, vec9, vec10;
3262 v8i16 res0, res1, res2, res3, res4, res5, res6, res7;
3263 v16i8 minus5b = __msa_ldi_b(-5);
3264 v16i8 plus20b = __msa_ldi_b(20);
3265
3266 LD_SB3(&luma_mask_arr[0], 16, mask0, mask1, mask2);
3267 LD_SB8(src - 2, stride, src0, src1, src2, src3, src4, src5, src6, src7);
3268 XORI_B8_128_SB(src0, src1, src2, src3, src4, src5, src6, src7);
3269 VSHF_B2_SB(src0, src0, src1, src1, mask0, mask0, vec0, vec1);
3270 VSHF_B2_SB(src2, src2, src3, src3, mask0, mask0, vec2, vec3);
3271 HADD_SB4_SH(vec0, vec1, vec2, vec3, res0, res1, res2, res3);
3272 VSHF_B2_SB(src0, src0, src1, src1, mask1, mask1, vec4, vec5);
3273 VSHF_B2_SB(src2, src2, src3, src3, mask1, mask1, vec6, vec7);
3274 DPADD_SB4_SH(vec4, vec5, vec6, vec7, minus5b, minus5b, minus5b, minus5b,
3275 res0, res1, res2, res3);
3276 VSHF_B2_SB(src0, src0, src1, src1, mask2, mask2, vec8, vec9);
3277 VSHF_B2_SB(src2, src2, src3, src3, mask2, mask2, vec10, vec11);
3278 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3279 res0, res1, res2, res3);
3280 VSHF_B2_SB(src4, src4, src5, src5, mask0, mask0, vec0, vec1);
3281 VSHF_B2_SB(src6, src6, src7, src7, mask0, mask0, vec2, vec3);
3282 HADD_SB4_SH(vec0, vec1, vec2, vec3, res4, res5, res6, res7);
3283 VSHF_B2_SB(src4, src4, src5, src5, mask1, mask1, vec4, vec5);
3284 VSHF_B2_SB(src6, src6, src7, src7, mask1, mask1, vec6, vec7);
3285 DPADD_SB4_SH(vec4, vec5, vec6, vec7, minus5b, minus5b, minus5b, minus5b,
3286 res4, res5, res6, res7);
3287 VSHF_B2_SB(src4, src4, src5, src5, mask2, mask2, vec8, vec9);
3288 VSHF_B2_SB(src6, src6, src7, src7, mask2, mask2, vec10, vec11);
3289 DPADD_SB4_SH(vec8, vec9, vec10, vec11, plus20b, plus20b, plus20b, plus20b,
3290 res4, res5, res6, res7);
3291 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);
3292 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);
3293 SLDI_B2_SB(src4, src5, src4, src5, src4, src5, 3);
3294 SLDI_B2_SB(src6, src7, src6, src7, src6, src7, 3);
3295 PCKEV_D2_SB(src1, src0, src3, src2, src0, src1);
3296 PCKEV_D2_SB(src5, src4, src7, src6, src4, src5);
3297 SRARI_H4_SH(res0, res1, res2, res3, 5);
3298 SRARI_H4_SH(res4, res5, res6, res7, 5);
3299 SAT_SH4_SH(res0, res1, res2, res3, 7);
3300 SAT_SH4_SH(res4, res5, res6, res7, 7);
3301 PCKEV_B2_SB(res1, res0, res3, res2, tmp0, tmp1);
3302 PCKEV_B2_SB(res5, res4, res7, res6, tmp2, tmp3);
3303 tmp0 = __msa_aver_s_b(tmp0, src0);
3304 tmp1 = __msa_aver_s_b(tmp1, src1);
3305 tmp2 = __msa_aver_s_b(tmp2, src4);
3306 tmp3 = __msa_aver_s_b(tmp3, src5);
3307 XORI_B4_128_SB(tmp0, tmp1, tmp2, tmp3);
3308 ST8x8_UB(tmp0, tmp1, tmp2, tmp3, dst, stride);
3087}3309}
3088 3310
3089void ff_put_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,3311void ff_put_h264_qpel4_mc10_msa(uint8_t *dst, const uint8_t *src,
3090 ptrdiff_t stride)3312 ptrdiff_t stride)
3091{3313{
3092 avc_luma_hz_qrt_4w_msa(src - 2, stride, dst, stride, 4, 0);3314 v16i8 src0, src1, src2, src3, res, mask0, mask1, mask2;
3315 v16i8 vec0, vec1, vec2, vec3, vec4, vec5;
3316 v8i16 res0, res1;
3317 v16i8 minus5b = __msa_ldi_b(-5);
3318 v16i8 plus20b = __msa_ldi_b(20);
3319
3320 LD_SB3(&luma_mask_arr[48], 16, mask0, mask1, mask2);
3321 LD_SB4(src - 2, stride, src0, src1, src2, src3);
3322 XORI_B4_128_SB(src0, src1, src2, src3);
3323 VSHF_B2_SB(src0, src1, src2, src3, mask0, mask0, vec0, vec1);
3324 HADD_SB2_SH(vec0, vec1, res0, res1);
3325 VSHF_B2_SB(src0, src1, src2, src3, mask1, mask1, vec2, vec3);
3326 DPADD_SB2_SH(vec2, vec3, minus5b, minus5b, res0, res1);
3327 VSHF_B2_SB(src0, src1, src2, src3, mask2, mask2, vec4, vec5);
3328 DPADD_SB2_SH(vec4, vec5, plus20b, plus20b, res0, res1);
3329 SRARI_H2_SH(res0, res1, 5);
3330 SAT_SH2_SH(res0, res1, 7);
3331 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);
3332 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 2);
3333 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 2);
3334 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
3335 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
3336 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
3337 res = __msa_aver_s_b(res, src0);
3338 res = (v16i8) __msa_xori_b((v16u8) res, 128);
3339 ST4x4_UB(res, res, 0, 1, 2, 3, dst, stride);
3093}3340}
3094 3341
3095void ff_put_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,3342void ff_put_h264_qpel4_mc30_msa(uint8_t *dst, const uint8_t *src,
3096 ptrdiff_t stride)3343 ptrdiff_t stride)
3097{3344{
3098 avc_luma_hz_qrt_4w_msa(src - 2, stride, dst, stride, 4, 1);3345 v16i8 src0, src1, src2, src3, res, mask0, mask1, mask2;
3346 v16i8 vec0, vec1, vec2, vec3, vec4, vec5;
3347 v8i16 res0, res1;
3348 v16i8 minus5b = __msa_ldi_b(-5);
3349 v16i8 plus20b = __msa_ldi_b(20);
3350
3351 LD_SB3(&luma_mask_arr[48], 16, mask0, mask1, mask2);
3352 LD_SB4(src - 2, stride, src0, src1, src2, src3);
3353 XORI_B4_128_SB(src0, src1, src2, src3);
3354 VSHF_B2_SB(src0, src1, src2, src3, mask0, mask0, vec0, vec1);
3355 HADD_SB2_SH(vec0, vec1, res0, res1);
3356 VSHF_B2_SB(src0, src1, src2, src3, mask1, mask1, vec2, vec3);
3357 DPADD_SB2_SH(vec2, vec3, minus5b, minus5b, res0, res1);
3358 VSHF_B2_SB(src0, src1, src2, src3, mask2, mask2, vec4, vec5);
3359 DPADD_SB2_SH(vec4, vec5, plus20b, plus20b, res0, res1);
3360 SRARI_H2_SH(res0, res1, 5);
3361 SAT_SH2_SH(res0, res1, 7);
3362 res = __msa_pckev_b((v16i8) res1, (v16i8) res0);
3363 SLDI_B2_SB(src0, src1, src0, src1, src0, src1, 3);
3364 SLDI_B2_SB(src2, src3, src2, src3, src2, src3, 3);
3365 src0 = (v16i8) __msa_insve_w((v4i32) src0, 1, (v4i32) src1);
3366 src1 = (v16i8) __msa_insve_w((v4i32) src2, 1, (v4i32) src3);
3367 src0 = (v16i8) __msa_insve_d((v2i64) src0, 1, (v2i64) src1);
3368 res = __msa_aver_s_b(res, src0);
3369 res = (v16i8) __msa_xori_b((v16u8) res, 128);
3370 ST4x4_UB(res, res, 0, 1, 2, 3, dst, stride);
3099}3371}
3100 3372
3101void ff_put_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,3373void ff_put_h264_qpel16_mc20_msa(uint8_t *dst, const uint8_t *src,

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