tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

vpx_dsp_rtcd.h (63716B)


      1 /*
      2 *  Copyright (c) 2025 The WebM project authors. All Rights Reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 // This file is generated. Do not edit.
     12 #ifndef VPX_DSP_RTCD_H_
     13 #define VPX_DSP_RTCD_H_
     14 
     15 #ifdef RTCD_C
     16 #define RTCD_EXTERN
     17 #else
     18 #define RTCD_EXTERN extern
     19 #endif
     20 
     21 /*
     22 * DSP
     23 */
     24 
     25 #include "vpx/vpx_integer.h"
     26 #include "vpx_dsp/vpx_dsp_common.h"
     27 #include "vpx_dsp/vpx_filter.h"
     28 #if CONFIG_VP9_ENCODER
     29 struct macroblock_plane;
     30 struct ScanOrder;
     31 #endif
     32 
     33 
     34 #ifdef __cplusplus
     35 extern "C" {
     36 #endif
     37 
     38 unsigned int vpx_avg_4x4_c(const uint8_t *, int p);
     39 #define vpx_avg_4x4 vpx_avg_4x4_c
     40 
     41 unsigned int vpx_avg_8x8_c(const uint8_t *, int p);
     42 #define vpx_avg_8x8 vpx_avg_8x8_c
     43 
     44 void vpx_comp_avg_pred_c(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
     45 void vpx_comp_avg_pred_lsx(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
     46 RTCD_EXTERN void (*vpx_comp_avg_pred)(uint8_t *comp_pred, const uint8_t *pred, int width, int height, const uint8_t *ref, int ref_stride);
     47 
     48 void vpx_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     49 void vpx_convolve8_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     50 RTCD_EXTERN void (*vpx_convolve8)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     51 
     52 void vpx_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     53 void vpx_convolve8_avg_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     54 RTCD_EXTERN void (*vpx_convolve8_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     55 
     56 void vpx_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     57 void vpx_convolve8_avg_horiz_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     58 RTCD_EXTERN void (*vpx_convolve8_avg_horiz)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     59 
     60 void vpx_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     61 void vpx_convolve8_avg_vert_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     62 RTCD_EXTERN void (*vpx_convolve8_avg_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     63 
     64 void vpx_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     65 void vpx_convolve8_horiz_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     66 RTCD_EXTERN void (*vpx_convolve8_horiz)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     67 
     68 void vpx_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     69 void vpx_convolve8_vert_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     70 RTCD_EXTERN void (*vpx_convolve8_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     71 
     72 void vpx_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     73 void vpx_convolve_avg_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     74 RTCD_EXTERN void (*vpx_convolve_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     75 
     76 void vpx_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     77 void vpx_convolve_copy_lsx(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     78 RTCD_EXTERN void (*vpx_convolve_copy)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
     79 
     80 void vpx_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     81 #define vpx_d117_predictor_16x16 vpx_d117_predictor_16x16_c
     82 
     83 void vpx_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     84 #define vpx_d117_predictor_32x32 vpx_d117_predictor_32x32_c
     85 
     86 void vpx_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     87 #define vpx_d117_predictor_4x4 vpx_d117_predictor_4x4_c
     88 
     89 void vpx_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     90 #define vpx_d117_predictor_8x8 vpx_d117_predictor_8x8_c
     91 
     92 void vpx_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     93 #define vpx_d135_predictor_16x16 vpx_d135_predictor_16x16_c
     94 
     95 void vpx_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     96 #define vpx_d135_predictor_32x32 vpx_d135_predictor_32x32_c
     97 
     98 void vpx_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
     99 #define vpx_d135_predictor_4x4 vpx_d135_predictor_4x4_c
    100 
    101 void vpx_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    102 #define vpx_d135_predictor_8x8 vpx_d135_predictor_8x8_c
    103 
    104 void vpx_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    105 #define vpx_d153_predictor_16x16 vpx_d153_predictor_16x16_c
    106 
    107 void vpx_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    108 #define vpx_d153_predictor_32x32 vpx_d153_predictor_32x32_c
    109 
    110 void vpx_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    111 #define vpx_d153_predictor_4x4 vpx_d153_predictor_4x4_c
    112 
    113 void vpx_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    114 #define vpx_d153_predictor_8x8 vpx_d153_predictor_8x8_c
    115 
    116 void vpx_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    117 #define vpx_d207_predictor_16x16 vpx_d207_predictor_16x16_c
    118 
    119 void vpx_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    120 #define vpx_d207_predictor_32x32 vpx_d207_predictor_32x32_c
    121 
    122 void vpx_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    123 #define vpx_d207_predictor_4x4 vpx_d207_predictor_4x4_c
    124 
    125 void vpx_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    126 #define vpx_d207_predictor_8x8 vpx_d207_predictor_8x8_c
    127 
    128 void vpx_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    129 #define vpx_d45_predictor_16x16 vpx_d45_predictor_16x16_c
    130 
    131 void vpx_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    132 #define vpx_d45_predictor_32x32 vpx_d45_predictor_32x32_c
    133 
    134 void vpx_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    135 #define vpx_d45_predictor_4x4 vpx_d45_predictor_4x4_c
    136 
    137 void vpx_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    138 #define vpx_d45_predictor_8x8 vpx_d45_predictor_8x8_c
    139 
    140 void vpx_d45e_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    141 #define vpx_d45e_predictor_4x4 vpx_d45e_predictor_4x4_c
    142 
    143 void vpx_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    144 #define vpx_d63_predictor_16x16 vpx_d63_predictor_16x16_c
    145 
    146 void vpx_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    147 #define vpx_d63_predictor_32x32 vpx_d63_predictor_32x32_c
    148 
    149 void vpx_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    150 #define vpx_d63_predictor_4x4 vpx_d63_predictor_4x4_c
    151 
    152 void vpx_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    153 #define vpx_d63_predictor_8x8 vpx_d63_predictor_8x8_c
    154 
    155 void vpx_d63e_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    156 #define vpx_d63e_predictor_4x4 vpx_d63e_predictor_4x4_c
    157 
    158 void vpx_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    159 #define vpx_dc_128_predictor_16x16 vpx_dc_128_predictor_16x16_c
    160 
    161 void vpx_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    162 #define vpx_dc_128_predictor_32x32 vpx_dc_128_predictor_32x32_c
    163 
    164 void vpx_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    165 #define vpx_dc_128_predictor_4x4 vpx_dc_128_predictor_4x4_c
    166 
    167 void vpx_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    168 #define vpx_dc_128_predictor_8x8 vpx_dc_128_predictor_8x8_c
    169 
    170 void vpx_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    171 #define vpx_dc_left_predictor_16x16 vpx_dc_left_predictor_16x16_c
    172 
    173 void vpx_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    174 #define vpx_dc_left_predictor_32x32 vpx_dc_left_predictor_32x32_c
    175 
    176 void vpx_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    177 #define vpx_dc_left_predictor_4x4 vpx_dc_left_predictor_4x4_c
    178 
    179 void vpx_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    180 #define vpx_dc_left_predictor_8x8 vpx_dc_left_predictor_8x8_c
    181 
    182 void vpx_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    183 void vpx_dc_predictor_16x16_lsx(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    184 RTCD_EXTERN void (*vpx_dc_predictor_16x16)(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    185 
    186 void vpx_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    187 #define vpx_dc_predictor_32x32 vpx_dc_predictor_32x32_c
    188 
    189 void vpx_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    190 #define vpx_dc_predictor_4x4 vpx_dc_predictor_4x4_c
    191 
    192 void vpx_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    193 void vpx_dc_predictor_8x8_lsx(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    194 RTCD_EXTERN void (*vpx_dc_predictor_8x8)(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    195 
    196 void vpx_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    197 #define vpx_dc_top_predictor_16x16 vpx_dc_top_predictor_16x16_c
    198 
    199 void vpx_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    200 #define vpx_dc_top_predictor_32x32 vpx_dc_top_predictor_32x32_c
    201 
    202 void vpx_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    203 #define vpx_dc_top_predictor_4x4 vpx_dc_top_predictor_4x4_c
    204 
    205 void vpx_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    206 #define vpx_dc_top_predictor_8x8 vpx_dc_top_predictor_8x8_c
    207 
    208 void vpx_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
    209 void vpx_fdct16x16_lsx(const int16_t *input, tran_low_t *output, int stride);
    210 RTCD_EXTERN void (*vpx_fdct16x16)(const int16_t *input, tran_low_t *output, int stride);
    211 
    212 void vpx_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
    213 #define vpx_fdct16x16_1 vpx_fdct16x16_1_c
    214 
    215 void vpx_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
    216 void vpx_fdct32x32_lsx(const int16_t *input, tran_low_t *output, int stride);
    217 RTCD_EXTERN void (*vpx_fdct32x32)(const int16_t *input, tran_low_t *output, int stride);
    218 
    219 void vpx_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
    220 #define vpx_fdct32x32_1 vpx_fdct32x32_1_c
    221 
    222 void vpx_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
    223 void vpx_fdct32x32_rd_lsx(const int16_t *input, tran_low_t *output, int stride);
    224 RTCD_EXTERN void (*vpx_fdct32x32_rd)(const int16_t *input, tran_low_t *output, int stride);
    225 
    226 void vpx_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
    227 void vpx_fdct4x4_lsx(const int16_t *input, tran_low_t *output, int stride);
    228 RTCD_EXTERN void (*vpx_fdct4x4)(const int16_t *input, tran_low_t *output, int stride);
    229 
    230 void vpx_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
    231 #define vpx_fdct4x4_1 vpx_fdct4x4_1_c
    232 
    233 void vpx_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
    234 void vpx_fdct8x8_lsx(const int16_t *input, tran_low_t *output, int stride);
    235 RTCD_EXTERN void (*vpx_fdct8x8)(const int16_t *input, tran_low_t *output, int stride);
    236 
    237 void vpx_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
    238 #define vpx_fdct8x8_1 vpx_fdct8x8_1_c
    239 
    240 void vpx_get16x16var_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    241 void vpx_get16x16var_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    242 RTCD_EXTERN void (*vpx_get16x16var)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    243 
    244 unsigned int vpx_get4x4sse_cs_c(const unsigned char *src_ptr, int src_stride, const unsigned char *ref_ptr, int ref_stride);
    245 #define vpx_get4x4sse_cs vpx_get4x4sse_cs_c
    246 
    247 void vpx_get8x8var_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    248 #define vpx_get8x8var vpx_get8x8var_c
    249 
    250 unsigned int vpx_get_mb_ss_c(const int16_t *);
    251 #define vpx_get_mb_ss vpx_get_mb_ss_c
    252 
    253 void vpx_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    254 #define vpx_h_predictor_16x16 vpx_h_predictor_16x16_c
    255 
    256 void vpx_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    257 #define vpx_h_predictor_32x32 vpx_h_predictor_32x32_c
    258 
    259 void vpx_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    260 #define vpx_h_predictor_4x4 vpx_h_predictor_4x4_c
    261 
    262 void vpx_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    263 #define vpx_h_predictor_8x8 vpx_h_predictor_8x8_c
    264 
    265 void vpx_hadamard_16x16_c(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    266 void vpx_hadamard_16x16_lsx(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    267 RTCD_EXTERN void (*vpx_hadamard_16x16)(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    268 
    269 void vpx_hadamard_32x32_c(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    270 #define vpx_hadamard_32x32 vpx_hadamard_32x32_c
    271 
    272 void vpx_hadamard_8x8_c(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    273 void vpx_hadamard_8x8_lsx(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    274 RTCD_EXTERN void (*vpx_hadamard_8x8)(const int16_t *src_diff, ptrdiff_t src_stride, int16_t *coeff);
    275 
    276 void vpx_he_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    277 #define vpx_he_predictor_4x4 vpx_he_predictor_4x4_c
    278 
    279 void vpx_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    280 #define vpx_idct16x16_10_add vpx_idct16x16_10_add_c
    281 
    282 void vpx_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    283 #define vpx_idct16x16_1_add vpx_idct16x16_1_add_c
    284 
    285 void vpx_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    286 #define vpx_idct16x16_256_add vpx_idct16x16_256_add_c
    287 
    288 void vpx_idct16x16_38_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    289 #define vpx_idct16x16_38_add vpx_idct16x16_38_add_c
    290 
    291 void vpx_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    292 void vpx_idct32x32_1024_add_lsx(const tran_low_t *input, uint8_t *dest, int stride);
    293 RTCD_EXTERN void (*vpx_idct32x32_1024_add)(const tran_low_t *input, uint8_t *dest, int stride);
    294 
    295 void vpx_idct32x32_135_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    296 void vpx_idct32x32_1024_add_lsx(const tran_low_t *input, uint8_t *dest, int stride);
    297 RTCD_EXTERN void (*vpx_idct32x32_135_add)(const tran_low_t *input, uint8_t *dest, int stride);
    298 
    299 void vpx_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    300 void vpx_idct32x32_1_add_lsx(const tran_low_t *input, uint8_t *dest, int stride);
    301 RTCD_EXTERN void (*vpx_idct32x32_1_add)(const tran_low_t *input, uint8_t *dest, int stride);
    302 
    303 void vpx_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    304 void vpx_idct32x32_34_add_lsx(const tran_low_t *input, uint8_t *dest, int stride);
    305 RTCD_EXTERN void (*vpx_idct32x32_34_add)(const tran_low_t *input, uint8_t *dest, int stride);
    306 
    307 void vpx_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    308 #define vpx_idct4x4_16_add vpx_idct4x4_16_add_c
    309 
    310 void vpx_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    311 #define vpx_idct4x4_1_add vpx_idct4x4_1_add_c
    312 
    313 void vpx_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    314 #define vpx_idct8x8_12_add vpx_idct8x8_12_add_c
    315 
    316 void vpx_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    317 #define vpx_idct8x8_1_add vpx_idct8x8_1_add_c
    318 
    319 void vpx_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    320 #define vpx_idct8x8_64_add vpx_idct8x8_64_add_c
    321 
    322 int16_t vpx_int_pro_col_c(const uint8_t *ref, const int width);
    323 #define vpx_int_pro_col vpx_int_pro_col_c
    324 
    325 void vpx_int_pro_row_c(int16_t hbuf[16], const uint8_t *ref, const int ref_stride, const int height);
    326 #define vpx_int_pro_row vpx_int_pro_row_c
    327 
    328 void vpx_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    329 #define vpx_iwht4x4_16_add vpx_iwht4x4_16_add_c
    330 
    331 void vpx_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int stride);
    332 #define vpx_iwht4x4_1_add vpx_iwht4x4_1_add_c
    333 
    334 void vpx_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    335 #define vpx_lpf_horizontal_16 vpx_lpf_horizontal_16_c
    336 
    337 void vpx_lpf_horizontal_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    338 void vpx_lpf_horizontal_16_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    339 RTCD_EXTERN void (*vpx_lpf_horizontal_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    340 
    341 void vpx_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    342 void vpx_lpf_horizontal_4_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    343 RTCD_EXTERN void (*vpx_lpf_horizontal_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    344 
    345 void vpx_lpf_horizontal_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    346 void vpx_lpf_horizontal_4_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    347 RTCD_EXTERN void (*vpx_lpf_horizontal_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    348 
    349 void vpx_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    350 void vpx_lpf_horizontal_8_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    351 RTCD_EXTERN void (*vpx_lpf_horizontal_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    352 
    353 void vpx_lpf_horizontal_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    354 void vpx_lpf_horizontal_8_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    355 RTCD_EXTERN void (*vpx_lpf_horizontal_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    356 
    357 void vpx_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    358 #define vpx_lpf_vertical_16 vpx_lpf_vertical_16_c
    359 
    360 void vpx_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    361 void vpx_lpf_vertical_16_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    362 RTCD_EXTERN void (*vpx_lpf_vertical_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    363 
    364 void vpx_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    365 void vpx_lpf_vertical_4_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    366 RTCD_EXTERN void (*vpx_lpf_vertical_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    367 
    368 void vpx_lpf_vertical_4_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    369 void vpx_lpf_vertical_4_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    370 RTCD_EXTERN void (*vpx_lpf_vertical_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    371 
    372 void vpx_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    373 void vpx_lpf_vertical_8_lsx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    374 RTCD_EXTERN void (*vpx_lpf_vertical_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    375 
    376 void vpx_lpf_vertical_8_dual_c(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    377 void vpx_lpf_vertical_8_dual_lsx(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    378 RTCD_EXTERN void (*vpx_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1);
    379 
    380 void vpx_minmax_8x8_c(const uint8_t *s, int p, const uint8_t *d, int dp, int *min, int *max);
    381 #define vpx_minmax_8x8 vpx_minmax_8x8_c
    382 
    383 unsigned int vpx_mse16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    384 unsigned int vpx_mse16x16_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    385 RTCD_EXTERN unsigned int (*vpx_mse16x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    386 
    387 unsigned int vpx_mse16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    388 #define vpx_mse16x8 vpx_mse16x8_c
    389 
    390 unsigned int vpx_mse8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    391 #define vpx_mse8x16 vpx_mse8x16_c
    392 
    393 unsigned int vpx_mse8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    394 #define vpx_mse8x8 vpx_mse8x8_c
    395 
    396 void vpx_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    397 void vpx_quantize_b_lsx(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    398 RTCD_EXTERN void (*vpx_quantize_b)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    399 
    400 void vpx_quantize_b_32x32_c(const tran_low_t *coeff_ptr, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    401 void vpx_quantize_b_32x32_lsx(const tran_low_t *coeff_ptr, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    402 RTCD_EXTERN void (*vpx_quantize_b_32x32)(const tran_low_t *coeff_ptr, const struct macroblock_plane *const mb_plane, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, uint16_t *eob_ptr, const struct ScanOrder *const scan_order);
    403 
    404 unsigned int vpx_sad16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    405 unsigned int vpx_sad16x16_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    406 RTCD_EXTERN unsigned int (*vpx_sad16x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    407 
    408 unsigned int vpx_sad16x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    409 #define vpx_sad16x16_avg vpx_sad16x16_avg_c
    410 
    411 void vpx_sad16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    412 void vpx_sad16x16x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    413 RTCD_EXTERN void (*vpx_sad16x16x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    414 
    415 unsigned int vpx_sad16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    416 #define vpx_sad16x32 vpx_sad16x32_c
    417 
    418 unsigned int vpx_sad16x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    419 #define vpx_sad16x32_avg vpx_sad16x32_avg_c
    420 
    421 void vpx_sad16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    422 #define vpx_sad16x32x4d vpx_sad16x32x4d_c
    423 
    424 unsigned int vpx_sad16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    425 #define vpx_sad16x8 vpx_sad16x8_c
    426 
    427 unsigned int vpx_sad16x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    428 #define vpx_sad16x8_avg vpx_sad16x8_avg_c
    429 
    430 void vpx_sad16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    431 #define vpx_sad16x8x4d vpx_sad16x8x4d_c
    432 
    433 unsigned int vpx_sad32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    434 #define vpx_sad32x16 vpx_sad32x16_c
    435 
    436 unsigned int vpx_sad32x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    437 #define vpx_sad32x16_avg vpx_sad32x16_avg_c
    438 
    439 void vpx_sad32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    440 #define vpx_sad32x16x4d vpx_sad32x16x4d_c
    441 
    442 unsigned int vpx_sad32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    443 unsigned int vpx_sad32x32_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    444 RTCD_EXTERN unsigned int (*vpx_sad32x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    445 
    446 unsigned int vpx_sad32x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    447 unsigned int vpx_sad32x32_avg_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    448 RTCD_EXTERN unsigned int (*vpx_sad32x32_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    449 
    450 void vpx_sad32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    451 void vpx_sad32x32x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    452 RTCD_EXTERN void (*vpx_sad32x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    453 
    454 unsigned int vpx_sad32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    455 #define vpx_sad32x64 vpx_sad32x64_c
    456 
    457 unsigned int vpx_sad32x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    458 #define vpx_sad32x64_avg vpx_sad32x64_avg_c
    459 
    460 void vpx_sad32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    461 void vpx_sad32x64x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    462 RTCD_EXTERN void (*vpx_sad32x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    463 
    464 unsigned int vpx_sad4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    465 #define vpx_sad4x4 vpx_sad4x4_c
    466 
    467 unsigned int vpx_sad4x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    468 #define vpx_sad4x4_avg vpx_sad4x4_avg_c
    469 
    470 void vpx_sad4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    471 #define vpx_sad4x4x4d vpx_sad4x4x4d_c
    472 
    473 unsigned int vpx_sad4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    474 #define vpx_sad4x8 vpx_sad4x8_c
    475 
    476 unsigned int vpx_sad4x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    477 #define vpx_sad4x8_avg vpx_sad4x8_avg_c
    478 
    479 void vpx_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    480 #define vpx_sad4x8x4d vpx_sad4x8x4d_c
    481 
    482 unsigned int vpx_sad64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    483 #define vpx_sad64x32 vpx_sad64x32_c
    484 
    485 unsigned int vpx_sad64x32_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    486 #define vpx_sad64x32_avg vpx_sad64x32_avg_c
    487 
    488 void vpx_sad64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    489 void vpx_sad64x32x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    490 RTCD_EXTERN void (*vpx_sad64x32x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    491 
    492 unsigned int vpx_sad64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    493 unsigned int vpx_sad64x64_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    494 RTCD_EXTERN unsigned int (*vpx_sad64x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    495 
    496 unsigned int vpx_sad64x64_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    497 unsigned int vpx_sad64x64_avg_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    498 RTCD_EXTERN unsigned int (*vpx_sad64x64_avg)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    499 
    500 void vpx_sad64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    501 void vpx_sad64x64x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    502 RTCD_EXTERN void (*vpx_sad64x64x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    503 
    504 unsigned int vpx_sad8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    505 #define vpx_sad8x16 vpx_sad8x16_c
    506 
    507 unsigned int vpx_sad8x16_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    508 #define vpx_sad8x16_avg vpx_sad8x16_avg_c
    509 
    510 void vpx_sad8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    511 #define vpx_sad8x16x4d vpx_sad8x16x4d_c
    512 
    513 unsigned int vpx_sad8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    514 #define vpx_sad8x4 vpx_sad8x4_c
    515 
    516 unsigned int vpx_sad8x4_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    517 #define vpx_sad8x4_avg vpx_sad8x4_avg_c
    518 
    519 void vpx_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    520 #define vpx_sad8x4x4d vpx_sad8x4x4d_c
    521 
    522 unsigned int vpx_sad8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    523 unsigned int vpx_sad8x8_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    524 RTCD_EXTERN unsigned int (*vpx_sad8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    525 
    526 unsigned int vpx_sad8x8_avg_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    527 #define vpx_sad8x8_avg vpx_sad8x8_avg_c
    528 
    529 void vpx_sad8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    530 void vpx_sad8x8x4d_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    531 RTCD_EXTERN void (*vpx_sad8x8x4d)(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    532 
    533 unsigned int vpx_sad_skip_16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    534 #define vpx_sad_skip_16x16 vpx_sad_skip_16x16_c
    535 
    536 void vpx_sad_skip_16x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    537 #define vpx_sad_skip_16x16x4d vpx_sad_skip_16x16x4d_c
    538 
    539 unsigned int vpx_sad_skip_16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    540 #define vpx_sad_skip_16x32 vpx_sad_skip_16x32_c
    541 
    542 void vpx_sad_skip_16x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    543 #define vpx_sad_skip_16x32x4d vpx_sad_skip_16x32x4d_c
    544 
    545 unsigned int vpx_sad_skip_16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    546 #define vpx_sad_skip_16x8 vpx_sad_skip_16x8_c
    547 
    548 void vpx_sad_skip_16x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    549 #define vpx_sad_skip_16x8x4d vpx_sad_skip_16x8x4d_c
    550 
    551 unsigned int vpx_sad_skip_32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    552 #define vpx_sad_skip_32x16 vpx_sad_skip_32x16_c
    553 
    554 void vpx_sad_skip_32x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    555 #define vpx_sad_skip_32x16x4d vpx_sad_skip_32x16x4d_c
    556 
    557 unsigned int vpx_sad_skip_32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    558 #define vpx_sad_skip_32x32 vpx_sad_skip_32x32_c
    559 
    560 void vpx_sad_skip_32x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    561 #define vpx_sad_skip_32x32x4d vpx_sad_skip_32x32x4d_c
    562 
    563 unsigned int vpx_sad_skip_32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    564 #define vpx_sad_skip_32x64 vpx_sad_skip_32x64_c
    565 
    566 void vpx_sad_skip_32x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    567 #define vpx_sad_skip_32x64x4d vpx_sad_skip_32x64x4d_c
    568 
    569 unsigned int vpx_sad_skip_4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    570 #define vpx_sad_skip_4x4 vpx_sad_skip_4x4_c
    571 
    572 void vpx_sad_skip_4x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    573 #define vpx_sad_skip_4x4x4d vpx_sad_skip_4x4x4d_c
    574 
    575 unsigned int vpx_sad_skip_4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    576 #define vpx_sad_skip_4x8 vpx_sad_skip_4x8_c
    577 
    578 void vpx_sad_skip_4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    579 #define vpx_sad_skip_4x8x4d vpx_sad_skip_4x8x4d_c
    580 
    581 unsigned int vpx_sad_skip_64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    582 #define vpx_sad_skip_64x32 vpx_sad_skip_64x32_c
    583 
    584 void vpx_sad_skip_64x32x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    585 #define vpx_sad_skip_64x32x4d vpx_sad_skip_64x32x4d_c
    586 
    587 unsigned int vpx_sad_skip_64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    588 #define vpx_sad_skip_64x64 vpx_sad_skip_64x64_c
    589 
    590 void vpx_sad_skip_64x64x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    591 #define vpx_sad_skip_64x64x4d vpx_sad_skip_64x64x4d_c
    592 
    593 unsigned int vpx_sad_skip_8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    594 #define vpx_sad_skip_8x16 vpx_sad_skip_8x16_c
    595 
    596 void vpx_sad_skip_8x16x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    597 #define vpx_sad_skip_8x16x4d vpx_sad_skip_8x16x4d_c
    598 
    599 unsigned int vpx_sad_skip_8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    600 #define vpx_sad_skip_8x4 vpx_sad_skip_8x4_c
    601 
    602 void vpx_sad_skip_8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    603 #define vpx_sad_skip_8x4x4d vpx_sad_skip_8x4x4d_c
    604 
    605 unsigned int vpx_sad_skip_8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride);
    606 #define vpx_sad_skip_8x8 vpx_sad_skip_8x8_c
    607 
    608 void vpx_sad_skip_8x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t *const ref_array[4], int ref_stride, uint32_t sad_array[4]);
    609 #define vpx_sad_skip_8x8x4d vpx_sad_skip_8x8x4d_c
    610 
    611 int vpx_satd_c(const int16_t *coeff, int length);
    612 #define vpx_satd vpx_satd_c
    613 
    614 void vpx_scaled_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    615 #define vpx_scaled_2d vpx_scaled_2d_c
    616 
    617 void vpx_scaled_avg_2d_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    618 #define vpx_scaled_avg_2d vpx_scaled_avg_2d_c
    619 
    620 void vpx_scaled_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    621 #define vpx_scaled_avg_horiz vpx_scaled_avg_horiz_c
    622 
    623 void vpx_scaled_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    624 #define vpx_scaled_avg_vert vpx_scaled_avg_vert_c
    625 
    626 void vpx_scaled_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    627 #define vpx_scaled_horiz vpx_scaled_horiz_c
    628 
    629 void vpx_scaled_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const InterpKernel *filter, int x0_q4, int x_step_q4, int y0_q4, int y_step_q4, int w, int h);
    630 #define vpx_scaled_vert vpx_scaled_vert_c
    631 
    632 int64_t vpx_sse_c(const uint8_t *src, int src_stride, const uint8_t *ref, int ref_stride, int width, int height);
    633 #define vpx_sse vpx_sse_c
    634 
    635 uint32_t vpx_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    636 #define vpx_sub_pixel_avg_variance16x16 vpx_sub_pixel_avg_variance16x16_c
    637 
    638 uint32_t vpx_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    639 #define vpx_sub_pixel_avg_variance16x32 vpx_sub_pixel_avg_variance16x32_c
    640 
    641 uint32_t vpx_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    642 #define vpx_sub_pixel_avg_variance16x8 vpx_sub_pixel_avg_variance16x8_c
    643 
    644 uint32_t vpx_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    645 #define vpx_sub_pixel_avg_variance32x16 vpx_sub_pixel_avg_variance32x16_c
    646 
    647 uint32_t vpx_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    648 #define vpx_sub_pixel_avg_variance32x32 vpx_sub_pixel_avg_variance32x32_c
    649 
    650 uint32_t vpx_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    651 #define vpx_sub_pixel_avg_variance32x64 vpx_sub_pixel_avg_variance32x64_c
    652 
    653 uint32_t vpx_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    654 #define vpx_sub_pixel_avg_variance4x4 vpx_sub_pixel_avg_variance4x4_c
    655 
    656 uint32_t vpx_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    657 #define vpx_sub_pixel_avg_variance4x8 vpx_sub_pixel_avg_variance4x8_c
    658 
    659 uint32_t vpx_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    660 #define vpx_sub_pixel_avg_variance64x32 vpx_sub_pixel_avg_variance64x32_c
    661 
    662 uint32_t vpx_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    663 uint32_t vpx_sub_pixel_avg_variance64x64_lsx(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    664 RTCD_EXTERN uint32_t (*vpx_sub_pixel_avg_variance64x64)(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    665 
    666 uint32_t vpx_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    667 #define vpx_sub_pixel_avg_variance8x16 vpx_sub_pixel_avg_variance8x16_c
    668 
    669 uint32_t vpx_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    670 #define vpx_sub_pixel_avg_variance8x4 vpx_sub_pixel_avg_variance8x4_c
    671 
    672 uint32_t vpx_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse, const uint8_t *second_pred);
    673 #define vpx_sub_pixel_avg_variance8x8 vpx_sub_pixel_avg_variance8x8_c
    674 
    675 uint32_t vpx_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    676 uint32_t vpx_sub_pixel_variance16x16_lsx(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    677 RTCD_EXTERN uint32_t (*vpx_sub_pixel_variance16x16)(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    678 
    679 uint32_t vpx_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    680 #define vpx_sub_pixel_variance16x32 vpx_sub_pixel_variance16x32_c
    681 
    682 uint32_t vpx_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    683 #define vpx_sub_pixel_variance16x8 vpx_sub_pixel_variance16x8_c
    684 
    685 uint32_t vpx_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    686 #define vpx_sub_pixel_variance32x16 vpx_sub_pixel_variance32x16_c
    687 
    688 uint32_t vpx_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    689 uint32_t vpx_sub_pixel_variance32x32_lsx(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    690 RTCD_EXTERN uint32_t (*vpx_sub_pixel_variance32x32)(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    691 
    692 uint32_t vpx_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    693 #define vpx_sub_pixel_variance32x64 vpx_sub_pixel_variance32x64_c
    694 
    695 uint32_t vpx_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    696 #define vpx_sub_pixel_variance4x4 vpx_sub_pixel_variance4x4_c
    697 
    698 uint32_t vpx_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    699 #define vpx_sub_pixel_variance4x8 vpx_sub_pixel_variance4x8_c
    700 
    701 uint32_t vpx_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    702 #define vpx_sub_pixel_variance64x32 vpx_sub_pixel_variance64x32_c
    703 
    704 uint32_t vpx_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    705 #define vpx_sub_pixel_variance64x64 vpx_sub_pixel_variance64x64_c
    706 
    707 uint32_t vpx_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    708 #define vpx_sub_pixel_variance8x16 vpx_sub_pixel_variance8x16_c
    709 
    710 uint32_t vpx_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    711 #define vpx_sub_pixel_variance8x4 vpx_sub_pixel_variance8x4_c
    712 
    713 uint32_t vpx_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    714 uint32_t vpx_sub_pixel_variance8x8_lsx(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    715 RTCD_EXTERN uint32_t (*vpx_sub_pixel_variance8x8)(const uint8_t *src_ptr, int src_stride, int x_offset, int y_offset, const uint8_t *ref_ptr, int ref_stride, uint32_t *sse);
    716 
    717 void vpx_subtract_block_c(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
    718 void vpx_subtract_block_lsx(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
    719 RTCD_EXTERN void (*vpx_subtract_block)(int rows, int cols, int16_t *diff_ptr, ptrdiff_t diff_stride, const uint8_t *src_ptr, ptrdiff_t src_stride, const uint8_t *pred_ptr, ptrdiff_t pred_stride);
    720 
    721 uint64_t vpx_sum_squares_2d_i16_c(const int16_t *src, int stride, int size);
    722 #define vpx_sum_squares_2d_i16 vpx_sum_squares_2d_i16_c
    723 
    724 void vpx_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    725 #define vpx_tm_predictor_16x16 vpx_tm_predictor_16x16_c
    726 
    727 void vpx_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    728 #define vpx_tm_predictor_32x32 vpx_tm_predictor_32x32_c
    729 
    730 void vpx_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    731 #define vpx_tm_predictor_4x4 vpx_tm_predictor_4x4_c
    732 
    733 void vpx_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    734 #define vpx_tm_predictor_8x8 vpx_tm_predictor_8x8_c
    735 
    736 void vpx_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    737 #define vpx_v_predictor_16x16 vpx_v_predictor_16x16_c
    738 
    739 void vpx_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    740 #define vpx_v_predictor_32x32 vpx_v_predictor_32x32_c
    741 
    742 void vpx_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    743 #define vpx_v_predictor_4x4 vpx_v_predictor_4x4_c
    744 
    745 void vpx_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    746 #define vpx_v_predictor_8x8 vpx_v_predictor_8x8_c
    747 
    748 unsigned int vpx_variance16x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    749 unsigned int vpx_variance16x16_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    750 RTCD_EXTERN unsigned int (*vpx_variance16x16)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    751 
    752 unsigned int vpx_variance16x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    753 #define vpx_variance16x32 vpx_variance16x32_c
    754 
    755 unsigned int vpx_variance16x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    756 #define vpx_variance16x8 vpx_variance16x8_c
    757 
    758 unsigned int vpx_variance32x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    759 #define vpx_variance32x16 vpx_variance32x16_c
    760 
    761 unsigned int vpx_variance32x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    762 unsigned int vpx_variance32x32_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    763 RTCD_EXTERN unsigned int (*vpx_variance32x32)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    764 
    765 unsigned int vpx_variance32x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    766 #define vpx_variance32x64 vpx_variance32x64_c
    767 
    768 unsigned int vpx_variance4x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    769 #define vpx_variance4x4 vpx_variance4x4_c
    770 
    771 unsigned int vpx_variance4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    772 #define vpx_variance4x8 vpx_variance4x8_c
    773 
    774 unsigned int vpx_variance64x32_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    775 #define vpx_variance64x32 vpx_variance64x32_c
    776 
    777 unsigned int vpx_variance64x64_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    778 unsigned int vpx_variance64x64_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    779 RTCD_EXTERN unsigned int (*vpx_variance64x64)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    780 
    781 unsigned int vpx_variance8x16_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    782 #define vpx_variance8x16 vpx_variance8x16_c
    783 
    784 unsigned int vpx_variance8x4_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    785 #define vpx_variance8x4 vpx_variance8x4_c
    786 
    787 unsigned int vpx_variance8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    788 unsigned int vpx_variance8x8_lsx(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    789 RTCD_EXTERN unsigned int (*vpx_variance8x8)(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    790 
    791 void vpx_ve_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride, const uint8_t *above, const uint8_t *left);
    792 #define vpx_ve_predictor_4x4 vpx_ve_predictor_4x4_c
    793 
    794 int vpx_vector_var_c(const int16_t *ref, const int16_t *src, const int bwl);
    795 #define vpx_vector_var vpx_vector_var_c
    796 
    797 void vpx_dsp_rtcd(void);
    798 
    799 #include "vpx_config.h"
    800 
    801 #ifdef RTCD_C
    802 #include "vpx_ports/loongarch.h"
    803 static void setup_rtcd_internal(void)
    804 {
    805    int flags = loongarch_cpu_caps();
    806 
    807    (void)flags;
    808    vpx_comp_avg_pred = vpx_comp_avg_pred_c;
    809    if (flags & HAS_LSX) vpx_comp_avg_pred = vpx_comp_avg_pred_lsx;
    810    vpx_convolve8 = vpx_convolve8_c;
    811    if (flags & HAS_LSX) vpx_convolve8 = vpx_convolve8_lsx;
    812    vpx_convolve8_avg = vpx_convolve8_avg_c;
    813    if (flags & HAS_LSX) vpx_convolve8_avg = vpx_convolve8_avg_lsx;
    814    vpx_convolve8_avg_horiz = vpx_convolve8_avg_horiz_c;
    815    if (flags & HAS_LSX) vpx_convolve8_avg_horiz = vpx_convolve8_avg_horiz_lsx;
    816    vpx_convolve8_avg_vert = vpx_convolve8_avg_vert_c;
    817    if (flags & HAS_LSX) vpx_convolve8_avg_vert = vpx_convolve8_avg_vert_lsx;
    818    vpx_convolve8_horiz = vpx_convolve8_horiz_c;
    819    if (flags & HAS_LSX) vpx_convolve8_horiz = vpx_convolve8_horiz_lsx;
    820    vpx_convolve8_vert = vpx_convolve8_vert_c;
    821    if (flags & HAS_LSX) vpx_convolve8_vert = vpx_convolve8_vert_lsx;
    822    vpx_convolve_avg = vpx_convolve_avg_c;
    823    if (flags & HAS_LSX) vpx_convolve_avg = vpx_convolve_avg_lsx;
    824    vpx_convolve_copy = vpx_convolve_copy_c;
    825    if (flags & HAS_LSX) vpx_convolve_copy = vpx_convolve_copy_lsx;
    826    vpx_dc_predictor_16x16 = vpx_dc_predictor_16x16_c;
    827    if (flags & HAS_LSX) vpx_dc_predictor_16x16 = vpx_dc_predictor_16x16_lsx;
    828    vpx_dc_predictor_8x8 = vpx_dc_predictor_8x8_c;
    829    if (flags & HAS_LSX) vpx_dc_predictor_8x8 = vpx_dc_predictor_8x8_lsx;
    830    vpx_fdct16x16 = vpx_fdct16x16_c;
    831    if (flags & HAS_LSX) vpx_fdct16x16 = vpx_fdct16x16_lsx;
    832    vpx_fdct32x32 = vpx_fdct32x32_c;
    833    if (flags & HAS_LSX) vpx_fdct32x32 = vpx_fdct32x32_lsx;
    834    vpx_fdct32x32_rd = vpx_fdct32x32_rd_c;
    835    if (flags & HAS_LSX) vpx_fdct32x32_rd = vpx_fdct32x32_rd_lsx;
    836    vpx_fdct4x4 = vpx_fdct4x4_c;
    837    if (flags & HAS_LSX) vpx_fdct4x4 = vpx_fdct4x4_lsx;
    838    vpx_fdct8x8 = vpx_fdct8x8_c;
    839    if (flags & HAS_LSX) vpx_fdct8x8 = vpx_fdct8x8_lsx;
    840    vpx_get16x16var = vpx_get16x16var_c;
    841    if (flags & HAS_LSX) vpx_get16x16var = vpx_get16x16var_lsx;
    842    vpx_hadamard_16x16 = vpx_hadamard_16x16_c;
    843    if (flags & HAS_LSX) vpx_hadamard_16x16 = vpx_hadamard_16x16_lsx;
    844    vpx_hadamard_8x8 = vpx_hadamard_8x8_c;
    845    if (flags & HAS_LSX) vpx_hadamard_8x8 = vpx_hadamard_8x8_lsx;
    846    vpx_idct32x32_1024_add = vpx_idct32x32_1024_add_c;
    847    if (flags & HAS_LSX) vpx_idct32x32_1024_add = vpx_idct32x32_1024_add_lsx;
    848    vpx_idct32x32_135_add = vpx_idct32x32_135_add_c;
    849    if (flags & HAS_LSX) vpx_idct32x32_135_add = vpx_idct32x32_1024_add_lsx;
    850    vpx_idct32x32_1_add = vpx_idct32x32_1_add_c;
    851    if (flags & HAS_LSX) vpx_idct32x32_1_add = vpx_idct32x32_1_add_lsx;
    852    vpx_idct32x32_34_add = vpx_idct32x32_34_add_c;
    853    if (flags & HAS_LSX) vpx_idct32x32_34_add = vpx_idct32x32_34_add_lsx;
    854    vpx_lpf_horizontal_16_dual = vpx_lpf_horizontal_16_dual_c;
    855    if (flags & HAS_LSX) vpx_lpf_horizontal_16_dual = vpx_lpf_horizontal_16_dual_lsx;
    856    vpx_lpf_horizontal_4 = vpx_lpf_horizontal_4_c;
    857    if (flags & HAS_LSX) vpx_lpf_horizontal_4 = vpx_lpf_horizontal_4_lsx;
    858    vpx_lpf_horizontal_4_dual = vpx_lpf_horizontal_4_dual_c;
    859    if (flags & HAS_LSX) vpx_lpf_horizontal_4_dual = vpx_lpf_horizontal_4_dual_lsx;
    860    vpx_lpf_horizontal_8 = vpx_lpf_horizontal_8_c;
    861    if (flags & HAS_LSX) vpx_lpf_horizontal_8 = vpx_lpf_horizontal_8_lsx;
    862    vpx_lpf_horizontal_8_dual = vpx_lpf_horizontal_8_dual_c;
    863    if (flags & HAS_LSX) vpx_lpf_horizontal_8_dual = vpx_lpf_horizontal_8_dual_lsx;
    864    vpx_lpf_vertical_16_dual = vpx_lpf_vertical_16_dual_c;
    865    if (flags & HAS_LSX) vpx_lpf_vertical_16_dual = vpx_lpf_vertical_16_dual_lsx;
    866    vpx_lpf_vertical_4 = vpx_lpf_vertical_4_c;
    867    if (flags & HAS_LSX) vpx_lpf_vertical_4 = vpx_lpf_vertical_4_lsx;
    868    vpx_lpf_vertical_4_dual = vpx_lpf_vertical_4_dual_c;
    869    if (flags & HAS_LSX) vpx_lpf_vertical_4_dual = vpx_lpf_vertical_4_dual_lsx;
    870    vpx_lpf_vertical_8 = vpx_lpf_vertical_8_c;
    871    if (flags & HAS_LSX) vpx_lpf_vertical_8 = vpx_lpf_vertical_8_lsx;
    872    vpx_lpf_vertical_8_dual = vpx_lpf_vertical_8_dual_c;
    873    if (flags & HAS_LSX) vpx_lpf_vertical_8_dual = vpx_lpf_vertical_8_dual_lsx;
    874    vpx_mse16x16 = vpx_mse16x16_c;
    875    if (flags & HAS_LSX) vpx_mse16x16 = vpx_mse16x16_lsx;
    876    vpx_quantize_b = vpx_quantize_b_c;
    877    if (flags & HAS_LSX) vpx_quantize_b = vpx_quantize_b_lsx;
    878    vpx_quantize_b_32x32 = vpx_quantize_b_32x32_c;
    879    if (flags & HAS_LSX) vpx_quantize_b_32x32 = vpx_quantize_b_32x32_lsx;
    880    vpx_sad16x16 = vpx_sad16x16_c;
    881    if (flags & HAS_LSX) vpx_sad16x16 = vpx_sad16x16_lsx;
    882    vpx_sad16x16x4d = vpx_sad16x16x4d_c;
    883    if (flags & HAS_LSX) vpx_sad16x16x4d = vpx_sad16x16x4d_lsx;
    884    vpx_sad32x32 = vpx_sad32x32_c;
    885    if (flags & HAS_LSX) vpx_sad32x32 = vpx_sad32x32_lsx;
    886    vpx_sad32x32_avg = vpx_sad32x32_avg_c;
    887    if (flags & HAS_LSX) vpx_sad32x32_avg = vpx_sad32x32_avg_lsx;
    888    vpx_sad32x32x4d = vpx_sad32x32x4d_c;
    889    if (flags & HAS_LSX) vpx_sad32x32x4d = vpx_sad32x32x4d_lsx;
    890    vpx_sad32x64x4d = vpx_sad32x64x4d_c;
    891    if (flags & HAS_LSX) vpx_sad32x64x4d = vpx_sad32x64x4d_lsx;
    892    vpx_sad64x32x4d = vpx_sad64x32x4d_c;
    893    if (flags & HAS_LSX) vpx_sad64x32x4d = vpx_sad64x32x4d_lsx;
    894    vpx_sad64x64 = vpx_sad64x64_c;
    895    if (flags & HAS_LSX) vpx_sad64x64 = vpx_sad64x64_lsx;
    896    vpx_sad64x64_avg = vpx_sad64x64_avg_c;
    897    if (flags & HAS_LSX) vpx_sad64x64_avg = vpx_sad64x64_avg_lsx;
    898    vpx_sad64x64x4d = vpx_sad64x64x4d_c;
    899    if (flags & HAS_LSX) vpx_sad64x64x4d = vpx_sad64x64x4d_lsx;
    900    vpx_sad8x8 = vpx_sad8x8_c;
    901    if (flags & HAS_LSX) vpx_sad8x8 = vpx_sad8x8_lsx;
    902    vpx_sad8x8x4d = vpx_sad8x8x4d_c;
    903    if (flags & HAS_LSX) vpx_sad8x8x4d = vpx_sad8x8x4d_lsx;
    904    vpx_sub_pixel_avg_variance64x64 = vpx_sub_pixel_avg_variance64x64_c;
    905    if (flags & HAS_LSX) vpx_sub_pixel_avg_variance64x64 = vpx_sub_pixel_avg_variance64x64_lsx;
    906    vpx_sub_pixel_variance16x16 = vpx_sub_pixel_variance16x16_c;
    907    if (flags & HAS_LSX) vpx_sub_pixel_variance16x16 = vpx_sub_pixel_variance16x16_lsx;
    908    vpx_sub_pixel_variance32x32 = vpx_sub_pixel_variance32x32_c;
    909    if (flags & HAS_LSX) vpx_sub_pixel_variance32x32 = vpx_sub_pixel_variance32x32_lsx;
    910    vpx_sub_pixel_variance8x8 = vpx_sub_pixel_variance8x8_c;
    911    if (flags & HAS_LSX) vpx_sub_pixel_variance8x8 = vpx_sub_pixel_variance8x8_lsx;
    912    vpx_subtract_block = vpx_subtract_block_c;
    913    if (flags & HAS_LSX) vpx_subtract_block = vpx_subtract_block_lsx;
    914    vpx_variance16x16 = vpx_variance16x16_c;
    915    if (flags & HAS_LSX) vpx_variance16x16 = vpx_variance16x16_lsx;
    916    vpx_variance32x32 = vpx_variance32x32_c;
    917    if (flags & HAS_LSX) vpx_variance32x32 = vpx_variance32x32_lsx;
    918    vpx_variance64x64 = vpx_variance64x64_c;
    919    if (flags & HAS_LSX) vpx_variance64x64 = vpx_variance64x64_lsx;
    920    vpx_variance8x8 = vpx_variance8x8_c;
    921    if (flags & HAS_LSX) vpx_variance8x8 = vpx_variance8x8_lsx;
    922 }
    923 #endif
    924 
    925 #ifdef __cplusplus
    926 }  // extern "C"
    927 #endif
    928 
    929 #endif  // VPX_DSP_RTCD_H_