Home | History | Annotate | Download | only in arm-neon-cpu-detect
      1 #ifndef VP9_RTCD_H_
      2 #define VP9_RTCD_H_
      3 
      4 #ifdef RTCD_C
      5 #define RTCD_EXTERN
      6 #else
      7 #define RTCD_EXTERN extern
      8 #endif
      9 
     10 /*
     11  * VP9
     12  */
     13 
     14 #include "vpx/vpx_integer.h"
     15 #include "vp9/common/vp9_enums.h"
     16 #include "vp9/common/vp9_idct.h"
     17 
     18 struct macroblockd;
     19 
     20 /* Encoder forward decls */
     21 struct macroblock;
     22 struct vp9_variance_vtable;
     23 struct search_site_config;
     24 struct mv;
     25 union int_mv;
     26 struct yv12_buffer_config;
     27 
     28 #ifdef __cplusplus
     29 extern "C" {
     30 #endif
     31 
     32 int64_t vp9_block_error_c(const tran_low_t *coeff, const tran_low_t *dqcoeff, intptr_t block_size, int64_t *ssz);
     33 #define vp9_block_error vp9_block_error_c
     34 
     35 void vp9_convolve8_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     36 void vp9_convolve8_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     37 RTCD_EXTERN void (*vp9_convolve8)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     38 
     39 void vp9_convolve8_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     40 void vp9_convolve8_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     41 RTCD_EXTERN void (*vp9_convolve8_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     42 
     43 void vp9_convolve8_avg_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     44 void vp9_convolve8_avg_horiz_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     45 RTCD_EXTERN void (*vp9_convolve8_avg_horiz)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     46 
     47 void vp9_convolve8_avg_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     48 void vp9_convolve8_avg_vert_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     49 RTCD_EXTERN void (*vp9_convolve8_avg_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     50 
     51 void vp9_convolve8_horiz_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     52 void vp9_convolve8_horiz_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     53 RTCD_EXTERN void (*vp9_convolve8_horiz)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     54 
     55 void vp9_convolve8_vert_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     56 void vp9_convolve8_vert_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     57 RTCD_EXTERN void (*vp9_convolve8_vert)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     58 
     59 void vp9_convolve_avg_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     60 void vp9_convolve_avg_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     61 RTCD_EXTERN void (*vp9_convolve_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     62 
     63 void vp9_convolve_copy_c(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     64 void vp9_convolve_copy_neon(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     65 RTCD_EXTERN void (*vp9_convolve_copy)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h);
     66 
     67 void vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     68 #define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
     69 
     70 void vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     71 #define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c
     72 
     73 void vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     74 #define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c
     75 
     76 void vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     77 #define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c
     78 
     79 void vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     80 #define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c
     81 
     82 void vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     83 #define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c
     84 
     85 void vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     86 #define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c
     87 
     88 void vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     89 #define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
     90 
     91 void vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     92 #define vp9_d153_predictor_16x16 vp9_d153_predictor_16x16_c
     93 
     94 void vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     95 #define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
     96 
     97 void vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
     98 #define vp9_d153_predictor_4x4 vp9_d153_predictor_4x4_c
     99 
    100 void vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    101 #define vp9_d153_predictor_8x8 vp9_d153_predictor_8x8_c
    102 
    103 void vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    104 #define vp9_d207_predictor_16x16 vp9_d207_predictor_16x16_c
    105 
    106 void vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    107 #define vp9_d207_predictor_32x32 vp9_d207_predictor_32x32_c
    108 
    109 void vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    110 #define vp9_d207_predictor_4x4 vp9_d207_predictor_4x4_c
    111 
    112 void vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    113 #define vp9_d207_predictor_8x8 vp9_d207_predictor_8x8_c
    114 
    115 void vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    116 #define vp9_d45_predictor_16x16 vp9_d45_predictor_16x16_c
    117 
    118 void vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    119 #define vp9_d45_predictor_32x32 vp9_d45_predictor_32x32_c
    120 
    121 void vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    122 #define vp9_d45_predictor_4x4 vp9_d45_predictor_4x4_c
    123 
    124 void vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    125 #define vp9_d45_predictor_8x8 vp9_d45_predictor_8x8_c
    126 
    127 void vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    128 #define vp9_d63_predictor_16x16 vp9_d63_predictor_16x16_c
    129 
    130 void vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    131 #define vp9_d63_predictor_32x32 vp9_d63_predictor_32x32_c
    132 
    133 void vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    134 #define vp9_d63_predictor_4x4 vp9_d63_predictor_4x4_c
    135 
    136 void vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    137 #define vp9_d63_predictor_8x8 vp9_d63_predictor_8x8_c
    138 
    139 void vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    140 #define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
    141 
    142 void vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    143 #define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
    144 
    145 void vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    146 #define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
    147 
    148 void vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    149 #define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
    150 
    151 void vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    152 #define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
    153 
    154 void vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    155 #define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
    156 
    157 void vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    158 #define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
    159 
    160 void vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    161 #define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
    162 
    163 void vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    164 #define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_c
    165 
    166 void vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    167 #define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_c
    168 
    169 void vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    170 #define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_c
    171 
    172 void vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    173 #define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_c
    174 
    175 void vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    176 #define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
    177 
    178 void vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    179 #define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
    180 
    181 void vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    182 #define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
    183 
    184 void vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    185 #define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
    186 
    187 int vp9_diamond_search_sad_c(const struct macroblock *x, const struct search_site_config *cfg,  struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
    188 #define vp9_diamond_search_sad vp9_diamond_search_sad_c
    189 
    190 void vp9_fdct16x16_c(const int16_t *input, tran_low_t *output, int stride);
    191 #define vp9_fdct16x16 vp9_fdct16x16_c
    192 
    193 void vp9_fdct16x16_1_c(const int16_t *input, tran_low_t *output, int stride);
    194 #define vp9_fdct16x16_1 vp9_fdct16x16_1_c
    195 
    196 void vp9_fdct32x32_c(const int16_t *input, tran_low_t *output, int stride);
    197 #define vp9_fdct32x32 vp9_fdct32x32_c
    198 
    199 void vp9_fdct32x32_1_c(const int16_t *input, tran_low_t *output, int stride);
    200 #define vp9_fdct32x32_1 vp9_fdct32x32_1_c
    201 
    202 void vp9_fdct32x32_rd_c(const int16_t *input, tran_low_t *output, int stride);
    203 #define vp9_fdct32x32_rd vp9_fdct32x32_rd_c
    204 
    205 void vp9_fdct4x4_c(const int16_t *input, tran_low_t *output, int stride);
    206 #define vp9_fdct4x4 vp9_fdct4x4_c
    207 
    208 void vp9_fdct4x4_1_c(const int16_t *input, tran_low_t *output, int stride);
    209 #define vp9_fdct4x4_1 vp9_fdct4x4_1_c
    210 
    211 void vp9_fdct8x8_c(const int16_t *input, tran_low_t *output, int stride);
    212 void vp9_fdct8x8_neon(const int16_t *input, tran_low_t *output, int stride);
    213 RTCD_EXTERN void (*vp9_fdct8x8)(const int16_t *input, tran_low_t *output, int stride);
    214 
    215 void vp9_fdct8x8_1_c(const int16_t *input, tran_low_t *output, int stride);
    216 void vp9_fdct8x8_1_neon(const int16_t *input, tran_low_t *output, int stride);
    217 RTCD_EXTERN void (*vp9_fdct8x8_1)(const int16_t *input, tran_low_t *output, int stride);
    218 
    219 void vp9_fht16x16_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
    220 #define vp9_fht16x16 vp9_fht16x16_c
    221 
    222 void vp9_fht4x4_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
    223 #define vp9_fht4x4 vp9_fht4x4_c
    224 
    225 void vp9_fht8x8_c(const int16_t *input, tran_low_t *output, int stride, int tx_type);
    226 #define vp9_fht8x8 vp9_fht8x8_c
    227 
    228 int vp9_full_range_search_c(const struct macroblock *x, const struct search_site_config *cfg, struct mv *ref_mv, struct mv *best_mv, int search_param, int sad_per_bit, int *num00, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
    229 #define vp9_full_range_search vp9_full_range_search_c
    230 
    231 int vp9_full_search_sad_c(const struct macroblock *x, const struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv, struct mv *best_mv);
    232 #define vp9_full_search_sad vp9_full_search_sad_c
    233 
    234 void vp9_fwht4x4_c(const int16_t *input, tran_low_t *output, int stride);
    235 #define vp9_fwht4x4 vp9_fwht4x4_c
    236 
    237 void vp9_get16x16var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    238 void vp9_get16x16var_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    239 RTCD_EXTERN void (*vp9_get16x16var)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    240 
    241 void vp9_get8x8var_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    242 void vp9_get8x8var_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    243 RTCD_EXTERN void (*vp9_get8x8var)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, int *sum);
    244 
    245 unsigned int vp9_get_mb_ss_c(const int16_t *);
    246 #define vp9_get_mb_ss vp9_get_mb_ss_c
    247 
    248 void vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    249 void vp9_h_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    250 RTCD_EXTERN void (*vp9_h_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    251 
    252 void vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    253 void vp9_h_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    254 RTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    255 
    256 void vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    257 void vp9_h_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    258 RTCD_EXTERN void (*vp9_h_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    259 
    260 void vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    261 void vp9_h_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    262 RTCD_EXTERN void (*vp9_h_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    263 
    264 void vp9_idct16x16_10_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    265 void vp9_idct16x16_10_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    266 RTCD_EXTERN void (*vp9_idct16x16_10_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    267 
    268 void vp9_idct16x16_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    269 void vp9_idct16x16_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    270 RTCD_EXTERN void (*vp9_idct16x16_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    271 
    272 void vp9_idct16x16_256_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    273 void vp9_idct16x16_256_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    274 RTCD_EXTERN void (*vp9_idct16x16_256_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    275 
    276 void vp9_idct32x32_1024_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    277 void vp9_idct32x32_1024_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    278 RTCD_EXTERN void (*vp9_idct32x32_1024_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    279 
    280 void vp9_idct32x32_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    281 void vp9_idct32x32_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    282 RTCD_EXTERN void (*vp9_idct32x32_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    283 
    284 void vp9_idct32x32_34_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    285 void vp9_idct32x32_1024_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    286 RTCD_EXTERN void (*vp9_idct32x32_34_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    287 
    288 void vp9_idct4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    289 void vp9_idct4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    290 RTCD_EXTERN void (*vp9_idct4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    291 
    292 void vp9_idct4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    293 void vp9_idct4x4_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    294 RTCD_EXTERN void (*vp9_idct4x4_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    295 
    296 void vp9_idct8x8_12_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    297 void vp9_idct8x8_12_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    298 RTCD_EXTERN void (*vp9_idct8x8_12_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    299 
    300 void vp9_idct8x8_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    301 void vp9_idct8x8_1_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    302 RTCD_EXTERN void (*vp9_idct8x8_1_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    303 
    304 void vp9_idct8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    305 void vp9_idct8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride);
    306 RTCD_EXTERN void (*vp9_idct8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride);
    307 
    308 void vp9_iht16x16_256_add_c(const tran_low_t *input, uint8_t *output, int pitch, int tx_type);
    309 #define vp9_iht16x16_256_add vp9_iht16x16_256_add_c
    310 
    311 void vp9_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    312 void vp9_iht4x4_16_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    313 RTCD_EXTERN void (*vp9_iht4x4_16_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    314 
    315 void vp9_iht8x8_64_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    316 void vp9_iht8x8_64_add_neon(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    317 RTCD_EXTERN void (*vp9_iht8x8_64_add)(const tran_low_t *input, uint8_t *dest, int dest_stride, int tx_type);
    318 
    319 void vp9_iwht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    320 #define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c
    321 
    322 void vp9_iwht4x4_1_add_c(const tran_low_t *input, uint8_t *dest, int dest_stride);
    323 #define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c
    324 
    325 void vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    326 void vp9_lpf_horizontal_16_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    327 RTCD_EXTERN void (*vp9_lpf_horizontal_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    328 
    329 void vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    330 void vp9_lpf_horizontal_4_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    331 RTCD_EXTERN void (*vp9_lpf_horizontal_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    332 
    333 void vp9_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);
    334 void vp9_lpf_horizontal_4_dual_neon(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);
    335 RTCD_EXTERN void (*vp9_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);
    336 
    337 void vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    338 void vp9_lpf_horizontal_8_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    339 RTCD_EXTERN void (*vp9_lpf_horizontal_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    340 
    341 void vp9_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);
    342 void vp9_lpf_horizontal_8_dual_neon(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);
    343 RTCD_EXTERN void (*vp9_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);
    344 
    345 void vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    346 void vp9_lpf_vertical_16_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    347 RTCD_EXTERN void (*vp9_lpf_vertical_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    348 
    349 void vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    350 void vp9_lpf_vertical_16_dual_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    351 RTCD_EXTERN void (*vp9_lpf_vertical_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
    352 
    353 void vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    354 void vp9_lpf_vertical_4_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    355 RTCD_EXTERN void (*vp9_lpf_vertical_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    356 
    357 void vp9_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);
    358 void vp9_lpf_vertical_4_dual_neon(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);
    359 RTCD_EXTERN void (*vp9_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);
    360 
    361 void vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    362 void vp9_lpf_vertical_8_neon(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    363 RTCD_EXTERN void (*vp9_lpf_vertical_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
    364 
    365 void vp9_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);
    366 void vp9_lpf_vertical_8_dual_neon(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);
    367 RTCD_EXTERN void (*vp9_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);
    368 
    369 unsigned int vp9_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
    370 #define vp9_mse16x16 vp9_mse16x16_c
    371 
    372 unsigned int vp9_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
    373 #define vp9_mse16x8 vp9_mse16x8_c
    374 
    375 unsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
    376 #define vp9_mse8x16 vp9_mse8x16_c
    377 
    378 unsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
    379 #define vp9_mse8x8 vp9_mse8x8_c
    380 
    381 void vp9_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    382 #define vp9_quantize_b vp9_quantize_b_c
    383 
    384 void vp9_quantize_b_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    385 #define vp9_quantize_b_32x32 vp9_quantize_b_32x32_c
    386 
    387 void vp9_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    388 void vp9_quantize_fp_neon(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    389 RTCD_EXTERN void (*vp9_quantize_fp)(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    390 
    391 void vp9_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, int skip_block, const int16_t *zbin_ptr, const int16_t *round_ptr, const int16_t *quant_ptr, const int16_t *quant_shift_ptr, tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
    392 #define vp9_quantize_fp_32x32 vp9_quantize_fp_32x32_c
    393 
    394 int vp9_refining_search_sad_c(const struct macroblock *x, struct mv *ref_mv, int sad_per_bit, int distance, const struct vp9_variance_vtable *fn_ptr, const struct mv *center_mv);
    395 #define vp9_refining_search_sad vp9_refining_search_sad_c
    396 
    397 unsigned int vp9_sad16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    398 unsigned int vp9_sad16x16_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    399 RTCD_EXTERN unsigned int (*vp9_sad16x16)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    400 
    401 unsigned int vp9_sad16x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    402 #define vp9_sad16x16_avg vp9_sad16x16_avg_c
    403 
    404 void vp9_sad16x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    405 #define vp9_sad16x16x3 vp9_sad16x16x3_c
    406 
    407 void vp9_sad16x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    408 #define vp9_sad16x16x4d vp9_sad16x16x4d_c
    409 
    410 void vp9_sad16x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    411 #define vp9_sad16x16x8 vp9_sad16x16x8_c
    412 
    413 unsigned int vp9_sad16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    414 #define vp9_sad16x32 vp9_sad16x32_c
    415 
    416 unsigned int vp9_sad16x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    417 #define vp9_sad16x32_avg vp9_sad16x32_avg_c
    418 
    419 void vp9_sad16x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    420 #define vp9_sad16x32x4d vp9_sad16x32x4d_c
    421 
    422 unsigned int vp9_sad16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    423 #define vp9_sad16x8 vp9_sad16x8_c
    424 
    425 unsigned int vp9_sad16x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    426 #define vp9_sad16x8_avg vp9_sad16x8_avg_c
    427 
    428 void vp9_sad16x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    429 #define vp9_sad16x8x3 vp9_sad16x8x3_c
    430 
    431 void vp9_sad16x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    432 #define vp9_sad16x8x4d vp9_sad16x8x4d_c
    433 
    434 void vp9_sad16x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    435 #define vp9_sad16x8x8 vp9_sad16x8x8_c
    436 
    437 unsigned int vp9_sad32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    438 #define vp9_sad32x16 vp9_sad32x16_c
    439 
    440 unsigned int vp9_sad32x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    441 #define vp9_sad32x16_avg vp9_sad32x16_avg_c
    442 
    443 void vp9_sad32x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    444 #define vp9_sad32x16x4d vp9_sad32x16x4d_c
    445 
    446 unsigned int vp9_sad32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    447 unsigned int vp9_sad32x32_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    448 RTCD_EXTERN unsigned int (*vp9_sad32x32)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    449 
    450 unsigned int vp9_sad32x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    451 #define vp9_sad32x32_avg vp9_sad32x32_avg_c
    452 
    453 void vp9_sad32x32x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    454 #define vp9_sad32x32x3 vp9_sad32x32x3_c
    455 
    456 void vp9_sad32x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    457 #define vp9_sad32x32x4d vp9_sad32x32x4d_c
    458 
    459 void vp9_sad32x32x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    460 #define vp9_sad32x32x8 vp9_sad32x32x8_c
    461 
    462 unsigned int vp9_sad32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    463 #define vp9_sad32x64 vp9_sad32x64_c
    464 
    465 unsigned int vp9_sad32x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    466 #define vp9_sad32x64_avg vp9_sad32x64_avg_c
    467 
    468 void vp9_sad32x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    469 #define vp9_sad32x64x4d vp9_sad32x64x4d_c
    470 
    471 unsigned int vp9_sad4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    472 #define vp9_sad4x4 vp9_sad4x4_c
    473 
    474 unsigned int vp9_sad4x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    475 #define vp9_sad4x4_avg vp9_sad4x4_avg_c
    476 
    477 void vp9_sad4x4x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    478 #define vp9_sad4x4x3 vp9_sad4x4x3_c
    479 
    480 void vp9_sad4x4x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    481 #define vp9_sad4x4x4d vp9_sad4x4x4d_c
    482 
    483 void vp9_sad4x4x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    484 #define vp9_sad4x4x8 vp9_sad4x4x8_c
    485 
    486 unsigned int vp9_sad4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    487 #define vp9_sad4x8 vp9_sad4x8_c
    488 
    489 unsigned int vp9_sad4x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    490 #define vp9_sad4x8_avg vp9_sad4x8_avg_c
    491 
    492 void vp9_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
    493 #define vp9_sad4x8x4d vp9_sad4x8x4d_c
    494 
    495 void vp9_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
    496 #define vp9_sad4x8x8 vp9_sad4x8x8_c
    497 
    498 unsigned int vp9_sad64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    499 #define vp9_sad64x32 vp9_sad64x32_c
    500 
    501 unsigned int vp9_sad64x32_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    502 #define vp9_sad64x32_avg vp9_sad64x32_avg_c
    503 
    504 void vp9_sad64x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    505 #define vp9_sad64x32x4d vp9_sad64x32x4d_c
    506 
    507 unsigned int vp9_sad64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    508 unsigned int vp9_sad64x64_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    509 RTCD_EXTERN unsigned int (*vp9_sad64x64)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    510 
    511 unsigned int vp9_sad64x64_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    512 #define vp9_sad64x64_avg vp9_sad64x64_avg_c
    513 
    514 void vp9_sad64x64x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    515 #define vp9_sad64x64x3 vp9_sad64x64x3_c
    516 
    517 void vp9_sad64x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    518 #define vp9_sad64x64x4d vp9_sad64x64x4d_c
    519 
    520 void vp9_sad64x64x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    521 #define vp9_sad64x64x8 vp9_sad64x64x8_c
    522 
    523 unsigned int vp9_sad8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    524 #define vp9_sad8x16 vp9_sad8x16_c
    525 
    526 unsigned int vp9_sad8x16_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    527 #define vp9_sad8x16_avg vp9_sad8x16_avg_c
    528 
    529 void vp9_sad8x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    530 #define vp9_sad8x16x3 vp9_sad8x16x3_c
    531 
    532 void vp9_sad8x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    533 #define vp9_sad8x16x4d vp9_sad8x16x4d_c
    534 
    535 void vp9_sad8x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    536 #define vp9_sad8x16x8 vp9_sad8x16x8_c
    537 
    538 unsigned int vp9_sad8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride);
    539 #define vp9_sad8x4 vp9_sad8x4_c
    540 
    541 unsigned int vp9_sad8x4_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred);
    542 #define vp9_sad8x4_avg vp9_sad8x4_avg_c
    543 
    544 void vp9_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
    545 #define vp9_sad8x4x4d vp9_sad8x4x4d_c
    546 
    547 void vp9_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
    548 #define vp9_sad8x4x8 vp9_sad8x4x8_c
    549 
    550 unsigned int vp9_sad8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    551 unsigned int vp9_sad8x8_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    552 RTCD_EXTERN unsigned int (*vp9_sad8x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride);
    553 
    554 unsigned int vp9_sad8x8_avg_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred);
    555 #define vp9_sad8x8_avg vp9_sad8x8_avg_c
    556 
    557 void vp9_sad8x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
    558 #define vp9_sad8x8x3 vp9_sad8x8x3_c
    559 
    560 void vp9_sad8x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
    561 #define vp9_sad8x8x4d vp9_sad8x8x4d_c
    562 
    563 void vp9_sad8x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
    564 #define vp9_sad8x8x8 vp9_sad8x8x8_c
    565 
    566 unsigned int vp9_sub_pixel_avg_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    567 #define vp9_sub_pixel_avg_variance16x16 vp9_sub_pixel_avg_variance16x16_c
    568 
    569 unsigned int vp9_sub_pixel_avg_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    570 #define vp9_sub_pixel_avg_variance16x32 vp9_sub_pixel_avg_variance16x32_c
    571 
    572 unsigned int vp9_sub_pixel_avg_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    573 #define vp9_sub_pixel_avg_variance16x8 vp9_sub_pixel_avg_variance16x8_c
    574 
    575 unsigned int vp9_sub_pixel_avg_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    576 #define vp9_sub_pixel_avg_variance32x16 vp9_sub_pixel_avg_variance32x16_c
    577 
    578 unsigned int vp9_sub_pixel_avg_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    579 #define vp9_sub_pixel_avg_variance32x32 vp9_sub_pixel_avg_variance32x32_c
    580 
    581 unsigned int vp9_sub_pixel_avg_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    582 #define vp9_sub_pixel_avg_variance32x64 vp9_sub_pixel_avg_variance32x64_c
    583 
    584 unsigned int vp9_sub_pixel_avg_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    585 #define vp9_sub_pixel_avg_variance4x4 vp9_sub_pixel_avg_variance4x4_c
    586 
    587 unsigned int vp9_sub_pixel_avg_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    588 #define vp9_sub_pixel_avg_variance4x8 vp9_sub_pixel_avg_variance4x8_c
    589 
    590 unsigned int vp9_sub_pixel_avg_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    591 #define vp9_sub_pixel_avg_variance64x32 vp9_sub_pixel_avg_variance64x32_c
    592 
    593 unsigned int vp9_sub_pixel_avg_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    594 #define vp9_sub_pixel_avg_variance64x64 vp9_sub_pixel_avg_variance64x64_c
    595 
    596 unsigned int vp9_sub_pixel_avg_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    597 #define vp9_sub_pixel_avg_variance8x16 vp9_sub_pixel_avg_variance8x16_c
    598 
    599 unsigned int vp9_sub_pixel_avg_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    600 #define vp9_sub_pixel_avg_variance8x4 vp9_sub_pixel_avg_variance8x4_c
    601 
    602 unsigned int vp9_sub_pixel_avg_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, const uint8_t *second_pred);
    603 #define vp9_sub_pixel_avg_variance8x8 vp9_sub_pixel_avg_variance8x8_c
    604 
    605 unsigned int vp9_sub_pixel_variance16x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    606 unsigned int vp9_sub_pixel_variance16x16_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    607 RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    608 
    609 unsigned int vp9_sub_pixel_variance16x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    610 #define vp9_sub_pixel_variance16x32 vp9_sub_pixel_variance16x32_c
    611 
    612 unsigned int vp9_sub_pixel_variance16x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    613 #define vp9_sub_pixel_variance16x8 vp9_sub_pixel_variance16x8_c
    614 
    615 unsigned int vp9_sub_pixel_variance32x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    616 #define vp9_sub_pixel_variance32x16 vp9_sub_pixel_variance32x16_c
    617 
    618 unsigned int vp9_sub_pixel_variance32x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    619 unsigned int vp9_sub_pixel_variance32x32_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    620 RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    621 
    622 unsigned int vp9_sub_pixel_variance32x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    623 #define vp9_sub_pixel_variance32x64 vp9_sub_pixel_variance32x64_c
    624 
    625 unsigned int vp9_sub_pixel_variance4x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    626 #define vp9_sub_pixel_variance4x4 vp9_sub_pixel_variance4x4_c
    627 
    628 unsigned int vp9_sub_pixel_variance4x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    629 #define vp9_sub_pixel_variance4x8 vp9_sub_pixel_variance4x8_c
    630 
    631 unsigned int vp9_sub_pixel_variance64x32_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    632 #define vp9_sub_pixel_variance64x32 vp9_sub_pixel_variance64x32_c
    633 
    634 unsigned int vp9_sub_pixel_variance64x64_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    635 #define vp9_sub_pixel_variance64x64 vp9_sub_pixel_variance64x64_c
    636 
    637 unsigned int vp9_sub_pixel_variance8x16_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    638 #define vp9_sub_pixel_variance8x16 vp9_sub_pixel_variance8x16_c
    639 
    640 unsigned int vp9_sub_pixel_variance8x4_c(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    641 #define vp9_sub_pixel_variance8x4 vp9_sub_pixel_variance8x4_c
    642 
    643 unsigned int vp9_sub_pixel_variance8x8_c(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    644 unsigned int vp9_sub_pixel_variance8x8_neon(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    645 RTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    646 
    647 void vp9_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);
    648 void vp9_subtract_block_neon(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);
    649 RTCD_EXTERN void (*vp9_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);
    650 
    651 void vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_width, unsigned int block_height, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
    652 #define vp9_temporal_filter_apply vp9_temporal_filter_apply_c
    653 
    654 void vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    655 void vp9_tm_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    656 RTCD_EXTERN void (*vp9_tm_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    657 
    658 void vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    659 void vp9_tm_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    660 RTCD_EXTERN void (*vp9_tm_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    661 
    662 void vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    663 void vp9_tm_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    664 RTCD_EXTERN void (*vp9_tm_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    665 
    666 void vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    667 void vp9_tm_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    668 RTCD_EXTERN void (*vp9_tm_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    669 
    670 void vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    671 void vp9_v_predictor_16x16_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    672 RTCD_EXTERN void (*vp9_v_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    673 
    674 void vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    675 void vp9_v_predictor_32x32_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    676 RTCD_EXTERN void (*vp9_v_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    677 
    678 void vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    679 void vp9_v_predictor_4x4_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    680 RTCD_EXTERN void (*vp9_v_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    681 
    682 void vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    683 void vp9_v_predictor_8x8_neon(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    684 RTCD_EXTERN void (*vp9_v_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
    685 
    686 unsigned int vp9_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    687 unsigned int vp9_variance16x16_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    688 RTCD_EXTERN unsigned int (*vp9_variance16x16)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    689 
    690 unsigned int vp9_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    691 #define vp9_variance16x32 vp9_variance16x32_c
    692 
    693 unsigned int vp9_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    694 #define vp9_variance16x8 vp9_variance16x8_c
    695 
    696 unsigned int vp9_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    697 #define vp9_variance32x16 vp9_variance32x16_c
    698 
    699 unsigned int vp9_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    700 unsigned int vp9_variance32x32_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    701 RTCD_EXTERN unsigned int (*vp9_variance32x32)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    702 
    703 unsigned int vp9_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    704 #define vp9_variance32x64 vp9_variance32x64_c
    705 
    706 unsigned int vp9_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    707 #define vp9_variance4x4 vp9_variance4x4_c
    708 
    709 unsigned int vp9_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    710 #define vp9_variance4x8 vp9_variance4x8_c
    711 
    712 unsigned int vp9_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    713 #define vp9_variance64x32 vp9_variance64x32_c
    714 
    715 unsigned int vp9_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    716 #define vp9_variance64x64 vp9_variance64x64_c
    717 
    718 unsigned int vp9_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    719 #define vp9_variance8x16 vp9_variance8x16_c
    720 
    721 unsigned int vp9_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    722 #define vp9_variance8x4 vp9_variance8x4_c
    723 
    724 unsigned int vp9_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    725 unsigned int vp9_variance8x8_neon(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    726 RTCD_EXTERN unsigned int (*vp9_variance8x8)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
    727 
    728 void vp9_rtcd(void);
    729 
    730 #include "vpx_config.h"
    731 
    732 #ifdef RTCD_C
    733 #include "vpx_ports/arm.h"
    734 static void setup_rtcd_internal(void)
    735 {
    736     int flags = arm_cpu_caps();
    737 
    738     (void)flags;
    739 
    740     vp9_convolve8 = vp9_convolve8_c;
    741     if (flags & HAS_NEON) vp9_convolve8 = vp9_convolve8_neon;
    742     vp9_convolve8_avg = vp9_convolve8_avg_c;
    743     if (flags & HAS_NEON) vp9_convolve8_avg = vp9_convolve8_avg_neon;
    744     vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_c;
    745     if (flags & HAS_NEON) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_neon;
    746     vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_c;
    747     if (flags & HAS_NEON) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_neon;
    748     vp9_convolve8_horiz = vp9_convolve8_horiz_c;
    749     if (flags & HAS_NEON) vp9_convolve8_horiz = vp9_convolve8_horiz_neon;
    750     vp9_convolve8_vert = vp9_convolve8_vert_c;
    751     if (flags & HAS_NEON) vp9_convolve8_vert = vp9_convolve8_vert_neon;
    752     vp9_convolve_avg = vp9_convolve_avg_c;
    753     if (flags & HAS_NEON) vp9_convolve_avg = vp9_convolve_avg_neon;
    754     vp9_convolve_copy = vp9_convolve_copy_c;
    755     if (flags & HAS_NEON) vp9_convolve_copy = vp9_convolve_copy_neon;
    756     vp9_fdct8x8 = vp9_fdct8x8_c;
    757     if (flags & HAS_NEON) vp9_fdct8x8 = vp9_fdct8x8_neon;
    758     vp9_fdct8x8_1 = vp9_fdct8x8_1_c;
    759     if (flags & HAS_NEON) vp9_fdct8x8_1 = vp9_fdct8x8_1_neon;
    760     vp9_get16x16var = vp9_get16x16var_c;
    761     if (flags & HAS_NEON) vp9_get16x16var = vp9_get16x16var_neon;
    762     vp9_get8x8var = vp9_get8x8var_c;
    763     if (flags & HAS_NEON) vp9_get8x8var = vp9_get8x8var_neon;
    764     vp9_h_predictor_16x16 = vp9_h_predictor_16x16_c;
    765     if (flags & HAS_NEON) vp9_h_predictor_16x16 = vp9_h_predictor_16x16_neon;
    766     vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c;
    767     if (flags & HAS_NEON) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_neon;
    768     vp9_h_predictor_4x4 = vp9_h_predictor_4x4_c;
    769     if (flags & HAS_NEON) vp9_h_predictor_4x4 = vp9_h_predictor_4x4_neon;
    770     vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c;
    771     if (flags & HAS_NEON) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_neon;
    772     vp9_idct16x16_10_add = vp9_idct16x16_10_add_c;
    773     if (flags & HAS_NEON) vp9_idct16x16_10_add = vp9_idct16x16_10_add_neon;
    774     vp9_idct16x16_1_add = vp9_idct16x16_1_add_c;
    775     if (flags & HAS_NEON) vp9_idct16x16_1_add = vp9_idct16x16_1_add_neon;
    776     vp9_idct16x16_256_add = vp9_idct16x16_256_add_c;
    777     if (flags & HAS_NEON) vp9_idct16x16_256_add = vp9_idct16x16_256_add_neon;
    778     vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_c;
    779     if (flags & HAS_NEON) vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_neon;
    780     vp9_idct32x32_1_add = vp9_idct32x32_1_add_c;
    781     if (flags & HAS_NEON) vp9_idct32x32_1_add = vp9_idct32x32_1_add_neon;
    782     vp9_idct32x32_34_add = vp9_idct32x32_34_add_c;
    783     if (flags & HAS_NEON) vp9_idct32x32_34_add = vp9_idct32x32_1024_add_neon;
    784     vp9_idct4x4_16_add = vp9_idct4x4_16_add_c;
    785     if (flags & HAS_NEON) vp9_idct4x4_16_add = vp9_idct4x4_16_add_neon;
    786     vp9_idct4x4_1_add = vp9_idct4x4_1_add_c;
    787     if (flags & HAS_NEON) vp9_idct4x4_1_add = vp9_idct4x4_1_add_neon;
    788     vp9_idct8x8_12_add = vp9_idct8x8_12_add_c;
    789     if (flags & HAS_NEON) vp9_idct8x8_12_add = vp9_idct8x8_12_add_neon;
    790     vp9_idct8x8_1_add = vp9_idct8x8_1_add_c;
    791     if (flags & HAS_NEON) vp9_idct8x8_1_add = vp9_idct8x8_1_add_neon;
    792     vp9_idct8x8_64_add = vp9_idct8x8_64_add_c;
    793     if (flags & HAS_NEON) vp9_idct8x8_64_add = vp9_idct8x8_64_add_neon;
    794     vp9_iht4x4_16_add = vp9_iht4x4_16_add_c;
    795     if (flags & HAS_NEON) vp9_iht4x4_16_add = vp9_iht4x4_16_add_neon;
    796     vp9_iht8x8_64_add = vp9_iht8x8_64_add_c;
    797     if (flags & HAS_NEON) vp9_iht8x8_64_add = vp9_iht8x8_64_add_neon;
    798     vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_c;
    799     if (flags & HAS_NEON) vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_neon;
    800     vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_c;
    801     if (flags & HAS_NEON) vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_neon;
    802     vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_c;
    803     if (flags & HAS_NEON) vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_neon;
    804     vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_c;
    805     if (flags & HAS_NEON) vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_neon;
    806     vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_c;
    807     if (flags & HAS_NEON) vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_neon;
    808     vp9_lpf_vertical_16 = vp9_lpf_vertical_16_c;
    809     if (flags & HAS_NEON) vp9_lpf_vertical_16 = vp9_lpf_vertical_16_neon;
    810     vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_c;
    811     if (flags & HAS_NEON) vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_neon;
    812     vp9_lpf_vertical_4 = vp9_lpf_vertical_4_c;
    813     if (flags & HAS_NEON) vp9_lpf_vertical_4 = vp9_lpf_vertical_4_neon;
    814     vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_c;
    815     if (flags & HAS_NEON) vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_neon;
    816     vp9_lpf_vertical_8 = vp9_lpf_vertical_8_c;
    817     if (flags & HAS_NEON) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_neon;
    818     vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c;
    819     if (flags & HAS_NEON) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_neon;
    820     vp9_quantize_fp = vp9_quantize_fp_c;
    821     if (flags & HAS_NEON) vp9_quantize_fp = vp9_quantize_fp_neon;
    822     vp9_sad16x16 = vp9_sad16x16_c;
    823     if (flags & HAS_NEON) vp9_sad16x16 = vp9_sad16x16_neon;
    824     vp9_sad32x32 = vp9_sad32x32_c;
    825     if (flags & HAS_NEON) vp9_sad32x32 = vp9_sad32x32_neon;
    826     vp9_sad64x64 = vp9_sad64x64_c;
    827     if (flags & HAS_NEON) vp9_sad64x64 = vp9_sad64x64_neon;
    828     vp9_sad8x8 = vp9_sad8x8_c;
    829     if (flags & HAS_NEON) vp9_sad8x8 = vp9_sad8x8_neon;
    830     vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_c;
    831     if (flags & HAS_NEON) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_neon;
    832     vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_c;
    833     if (flags & HAS_NEON) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_neon;
    834     vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_c;
    835     if (flags & HAS_NEON) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_neon;
    836     vp9_subtract_block = vp9_subtract_block_c;
    837     if (flags & HAS_NEON) vp9_subtract_block = vp9_subtract_block_neon;
    838     vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_c;
    839     if (flags & HAS_NEON) vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_neon;
    840     vp9_tm_predictor_32x32 = vp9_tm_predictor_32x32_c;
    841     if (flags & HAS_NEON) vp9_tm_predictor_32x32 = vp9_tm_predictor_32x32_neon;
    842     vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_c;
    843     if (flags & HAS_NEON) vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_neon;
    844     vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_c;
    845     if (flags & HAS_NEON) vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_neon;
    846     vp9_v_predictor_16x16 = vp9_v_predictor_16x16_c;
    847     if (flags & HAS_NEON) vp9_v_predictor_16x16 = vp9_v_predictor_16x16_neon;
    848     vp9_v_predictor_32x32 = vp9_v_predictor_32x32_c;
    849     if (flags & HAS_NEON) vp9_v_predictor_32x32 = vp9_v_predictor_32x32_neon;
    850     vp9_v_predictor_4x4 = vp9_v_predictor_4x4_c;
    851     if (flags & HAS_NEON) vp9_v_predictor_4x4 = vp9_v_predictor_4x4_neon;
    852     vp9_v_predictor_8x8 = vp9_v_predictor_8x8_c;
    853     if (flags & HAS_NEON) vp9_v_predictor_8x8 = vp9_v_predictor_8x8_neon;
    854     vp9_variance16x16 = vp9_variance16x16_c;
    855     if (flags & HAS_NEON) vp9_variance16x16 = vp9_variance16x16_neon;
    856     vp9_variance32x32 = vp9_variance32x32_c;
    857     if (flags & HAS_NEON) vp9_variance32x32 = vp9_variance32x32_neon;
    858     vp9_variance8x8 = vp9_variance8x8_c;
    859     if (flags & HAS_NEON) vp9_variance8x8 = vp9_variance8x8_neon;
    860 }
    861 #endif
    862 
    863 #ifdef __cplusplus
    864 }  // extern "C"
    865 #endif
    866 
    867 #endif
    868