14b95526e5c4eb4fecde1cd642cf991a82c51b9f2johannkoenig@chromium.org#ifndef VP9_RTCD_H_
24b95526e5c4eb4fecde1cd642cf991a82c51b9f2johannkoenig@chromium.org#define VP9_RTCD_H_
38ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
48ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#ifdef RTCD_C
58ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#define RTCD_EXTERN
68ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#else
78ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#define RTCD_EXTERN extern
88ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#endif
98ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
10dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#ifdef __cplusplus
11dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.orgextern "C" {
12dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#endif
13dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
148ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org/*
158ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org * VP9
168ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org */
178ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
188ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#include "vpx/vpx_integer.h"
1910a9a0d835561a7f2300c561c514efcf374554d6fgalligan@chromium.org#include "vp9/common/vp9_enums.h"
208ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
218ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.orgstruct macroblockd;
228ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
238ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org/* Encoder forward decls */
248ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.orgstruct macroblock;
254b95526e5c4eb4fecde1cd642cf991a82c51b9f2johannkoenig@chromium.orgstruct vp9_variance_vtable;
2677496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgstruct search_site_config;
27d851b91d14ef0bd71acdce7b90c9a8f1af1181adjohannkoenig@chromium.orgstruct mv;
288ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.orgunion int_mv;
298ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.orgstruct yv12_buffer_config;
308ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
3162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
3262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_blend_b vp9_blend_b_c
338ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
3462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
3562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_blend_mb_inner vp9_blend_mb_inner_c
368ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
3762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride);
3862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_blend_mb_outer vp9_blend_mb_outer_c
398ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
4062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgint64_t vp9_block_error_c(const int16_t *coeff, const int16_t *dqcoeff, intptr_t block_size, int64_t *ssz);
4162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgint64_t vp9_block_error_sse2(const int16_t *coeff, const int16_t *dqcoeff, intptr_t block_size, int64_t *ssz);
4262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_block_error vp9_block_error_sse2
4362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
4462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
4562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_sse2(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);
4662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_ssse3(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);
4762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
4862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
4962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
5062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_sse2(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);
5162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_ssse3(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);
5262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
5362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
5462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
5562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_horiz_sse2(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);
5662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_horiz_ssse3(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);
5762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
5862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
5962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
6062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_vert_sse2(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);
6162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_avg_vert_ssse3(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);
6262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
6362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
6462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
6562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_horiz_sse2(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);
6662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_horiz_ssse3(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);
6762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
6862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
6962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
7062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_vert_sse2(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);
7162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve8_vert_ssse3(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);
7262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
7362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
7462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
7562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve_avg_sse2(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);
7662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_convolve_avg vp9_convolve_avg_sse2
7762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
7862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
7962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_convolve_copy_sse2(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);
8062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_convolve_copy vp9_convolve_copy_sse2
8162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
8262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c
8462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
8562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c
87511499294b6e6b7ce4e4071f0d4a72f0f8c31a19johannkoenig@chromium.org
8853a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
8947265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c
908ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
9162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c
9362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
9462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c
9662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
9762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
9862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c
9962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
10053a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10147265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c
1028ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org
10362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c
10562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
10662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d153_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d153_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
10962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
11062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c
11262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
11353a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1140d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgvoid vp9_d153_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1150d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgRTCD_EXTERN void (*vp9_d153_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11647265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
11762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d153_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
11962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d153_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12047265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
12162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d207_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12447265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
12562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d207_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
12847265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
12962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d207_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d207_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13247265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
13353a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1340d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgvoid vp9_d207_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1350d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgRTCD_EXTERN void (*vp9_d207_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13647265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
13762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
13962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d45_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
14162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d45_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
14562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d45_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d45_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
14862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
14953a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15053a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d45_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15153a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d45_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15247265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
15362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d63_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
15762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
15962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d63_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
16162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_d63_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_d63_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
16553a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1660d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgvoid vp9_d63_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
1670d106b34dc08439a7c6887d1316a3e1a35f8f0cajohannkoenig@chromium.orgRTCD_EXTERN void (*vp9_d63_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
16847265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
16962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c
17162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
17262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c
17462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
17562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c
17762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
17862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
17962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c
18062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
18162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
18262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c
18362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
18462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
18562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c
18662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
18762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
18862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c
18962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
19062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
19162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c
19262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
19362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
19462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
19562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_predictor_16x16 vp9_dc_predictor_16x16_sse2
19662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
19762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
19862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
19962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_predictor_32x32 vp9_dc_predictor_32x32_sse2
20062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
20162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
20262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
20362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_predictor_4x4 vp9_dc_predictor_4x4_sse
20462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
20562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
20662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
20762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_predictor_8x8 vp9_dc_predictor_8x8_sse
20862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
20962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
21062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c
21162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
21262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
21362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c
21462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
21562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
21662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c
21762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
21862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
21962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c
22062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
22177496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgint 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);
22277496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgint vp9_diamond_search_sadx4(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);
22377496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgRTCD_EXTERN int (*vp9_diamond_search_sad)(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);
22462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
22562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct16x16_c(const int16_t *input, int16_t *output, int stride);
22662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct16x16_sse2(const int16_t *input, int16_t *output, int stride);
227497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fdct16x16 vp9_fdct16x16_sse2
22862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
22962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct32x32_c(const int16_t *input, int16_t *output, int stride);
23062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct32x32_sse2(const int16_t *input, int16_t *output, int stride);
231497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fdct32x32 vp9_fdct32x32_sse2
23262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
23362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct32x32_rd_c(const int16_t *input, int16_t *output, int stride);
23462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct32x32_rd_sse2(const int16_t *input, int16_t *output, int stride);
235497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fdct32x32_rd vp9_fdct32x32_rd_sse2
23662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
23762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct4x4_c(const int16_t *input, int16_t *output, int stride);
23862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct4x4_sse2(const int16_t *input, int16_t *output, int stride);
239497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fdct4x4 vp9_fdct4x4_sse2
24062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
24162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct8x8_c(const int16_t *input, int16_t *output, int stride);
24262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fdct8x8_sse2(const int16_t *input, int16_t *output, int stride);
24377496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgvoid vp9_fdct8x8_ssse3(const int16_t *input, int16_t *output, int stride);
24477496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgRTCD_EXTERN void (*vp9_fdct8x8)(const int16_t *input, int16_t *output, int stride);
24562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
24662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht16x16_c(const int16_t *input, int16_t *output, int stride, int tx_type);
24762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht16x16_sse2(const int16_t *input, int16_t *output, int stride, int tx_type);
248497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fht16x16 vp9_fht16x16_sse2
24962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
25062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht4x4_c(const int16_t *input, int16_t *output, int stride, int tx_type);
25162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht4x4_sse2(const int16_t *input, int16_t *output, int stride, int tx_type);
252497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fht4x4 vp9_fht4x4_sse2
25362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
25462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht8x8_c(const int16_t *input, int16_t *output, int stride, int tx_type);
25562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fht8x8_sse2(const int16_t *input, int16_t *output, int stride, int tx_type);
256497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_fht8x8 vp9_fht8x8_sse2
25762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
25877496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.orgint 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);
25962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_full_range_search vp9_full_range_search_c
26062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
261693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comint 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);
262693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comint vp9_full_search_sadx3(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);
263693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comint vp9_full_search_sadx8(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);
264693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comRTCD_EXTERN int (*vp9_full_search_sad)(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);
26562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
26662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_fwht4x4_c(const int16_t *input, int16_t *output, int stride);
2677765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgvoid vp9_fwht4x4_mmx(const int16_t *input, int16_t *output, int stride);
2687765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org#define vp9_fwht4x4 vp9_fwht4x4_mmx
26962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
27062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_get_mb_ss_c(const int16_t *);
27162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_get_mb_ss_mmx(const int16_t *);
27262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_get_mb_ss_sse2(const int16_t *);
27362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_get_mb_ss vp9_get_mb_ss_sse2
27462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
27562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
27662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
27762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_h_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
27862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
27962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
28362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_h_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_h_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
28753a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28853a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgvoid vp9_h_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
28953a13f1fa964820f7a8f9d3932a6f3c0433f8bf5fgalligan@chromium.orgRTCD_EXTERN void (*vp9_h_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
29047265f8fe3a36a426773454ad90d20c9aa616c24johannkoenig@chromium.org
29162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
29262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_10_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
29362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct16x16_10_add vp9_idct16x16_10_add_sse2
29462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
29562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
29662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
29762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct16x16_1_add vp9_idct16x16_1_add_sse2
29862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
29962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_256_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
30062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct16x16_256_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
30162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct16x16_256_add vp9_idct16x16_256_add_sse2
30262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
30362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
30462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_1024_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
30562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct32x32_1024_add vp9_idct32x32_1024_add_sse2
30662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
30762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
30862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
30962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct32x32_1_add vp9_idct32x32_1_add_sse2
31062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
31162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
31262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct32x32_34_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
31362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct32x32_34_add vp9_idct32x32_34_add_sse2
31462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
31562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
31662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
31762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct4x4_16_add vp9_idct4x4_16_add_sse2
31862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
31962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
32062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct4x4_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
32162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct4x4_1_add vp9_idct4x4_1_add_sse2
32262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
3237765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgvoid vp9_idct8x8_12_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
3247765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgvoid vp9_idct8x8_12_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
3257765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgvoid vp9_idct8x8_12_add_ssse3(const int16_t *input, uint8_t *dest, int dest_stride);
3267765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.orgRTCD_EXTERN void (*vp9_idct8x8_12_add)(const int16_t *input, uint8_t *dest, int dest_stride);
32762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
32862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct8x8_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
32962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct8x8_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
33062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_idct8x8_1_add vp9_idct8x8_1_add_sse2
33162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
33262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
33362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_idct8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride);
334810cf1767dc8df4783e02ba8a712072f50ddc99efgalligan@chromium.orgvoid vp9_idct8x8_64_add_ssse3(const int16_t *input, uint8_t *dest, int dest_stride);
335810cf1767dc8df4783e02ba8a712072f50ddc99efgalligan@chromium.orgRTCD_EXTERN void (*vp9_idct8x8_64_add)(const int16_t *input, uint8_t *dest, int dest_stride);
33662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
33762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, int tx_type);
33862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht16x16_256_add_sse2(const int16_t *input, uint8_t *output, int pitch, int tx_type);
33962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_iht16x16_256_add vp9_iht16x16_256_add_sse2
34062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
34162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
34262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
34362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_iht4x4_16_add vp9_iht4x4_16_add_sse2
34462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
34562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
34662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iht8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type);
34762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_iht8x8_64_add vp9_iht8x8_64_add_sse2
34862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
34962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iwht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
35062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c
35162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
35262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_iwht4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride);
35362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c
35462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
35562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
35662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
357497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_lpf_horizontal_16 vp9_lpf_horizontal_16_sse2
35862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
35962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
36062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
36162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_horizontal_4 vp9_lpf_horizontal_4_mmx
36262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
36362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
36462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_4_dual_sse2(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);
36562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_horizontal_4_dual vp9_lpf_horizontal_4_dual_sse2
36662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
36762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
36862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
36962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_horizontal_8 vp9_lpf_horizontal_8_sse2
37062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
37162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
37262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_horizontal_8_dual_sse2(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);
37362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_horizontal_8_dual vp9_lpf_horizontal_8_dual_sse2
37462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
37562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
37662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
37762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_16 vp9_lpf_vertical_16_sse2
37862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
37962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
38062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_16_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh);
38162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_16_dual vp9_lpf_vertical_16_dual_sse2
38262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
38362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
38462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
38562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_4 vp9_lpf_vertical_4_mmx
38662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
38762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
38862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_4_dual_sse2(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);
38962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_4_dual vp9_lpf_vertical_4_dual_sse2
39062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
39162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
39262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count);
39362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_8 vp9_lpf_vertical_8_sse2
39462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
39562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
39662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_lpf_vertical_8_dual_sse2(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);
39762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_lpf_vertical_8_dual vp9_lpf_vertical_8_dual_sse2
39862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
39962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse16x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
40062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse16x16_mmx(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
40162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse16x16_sse2(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
402497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_mse16x16 vp9_mse16x16_sse2
40362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
40462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse16x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
40562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_mse16x8 vp9_mse16x8_c
40662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
40762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse8x16_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
40862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_mse8x16 vp9_mse8x16_c
40962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
41062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_mse8x8_c(const uint8_t *src_ptr, int  source_stride, const uint8_t *ref_ptr, int  recon_stride, unsigned int *sse);
41162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_mse8x8 vp9_mse8x8_c
41262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
41362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_quantize_b_c(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
41462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_quantize_b_ssse3(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
41562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_quantize_b)(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
41662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
41762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_quantize_b_32x32_c(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
41862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_quantize_b_32x32_ssse3(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
41962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_quantize_b_32x32)(const int16_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, int16_t *qcoeff_ptr, int16_t *dqcoeff_ptr, const int16_t *dequant_ptr, int zbin_oq_value, uint16_t *eob_ptr, const int16_t *scan, const int16_t *iscan);
42062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
421693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comint 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);
422693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comint vp9_refining_search_sadx4(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);
423693441efe611de7ca09c00f4e79776f604b689f4joeyparrish@google.comRTCD_EXTERN int (*vp9_refining_search_sad)(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);
42462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
42562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
42662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
42762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
42862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x16 vp9_sad16x16_sse2
42962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
43062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
43162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x16_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
43262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x16_avg vp9_sad16x16_avg_sse2
43362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
43462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
43562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
43662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x3_ssse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
43762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_sad16x16x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
43862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
43962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
44062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
44162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x16x4d vp9_sad16x16x4d_sse2
44262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
44362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
44462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x16x8 vp9_sad16x16x8_c
44562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
44662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
44762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
44862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x32 vp9_sad16x32_sse2
44962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
45062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
45162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x32_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
45262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x32_avg vp9_sad16x32_avg_sse2
45362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
45462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
45562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x32x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
45662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x32x4d vp9_sad16x32x4d_sse2
45762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
45862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
45962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
46062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
46162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x8 vp9_sad16x8_sse2
46262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
46362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
46462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad16x8_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
46562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x8_avg vp9_sad16x8_avg_sse2
46662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
46762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
46862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
46962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x3_ssse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
47062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_sad16x8x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
47162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
47262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
47362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
47462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x8x4d vp9_sad16x8x4d_sse2
47562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
47662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad16x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
47762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad16x8x8 vp9_sad16x8x8_c
47862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
47962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
48062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
48162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x16 vp9_sad32x16_sse2
48262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
48362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
48462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x16_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
48562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x16_avg vp9_sad32x16_avg_sse2
48662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
48762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
48862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x16x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
48962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x16x4d vp9_sad32x16x4d_sse2
49062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
49162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
49262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
49362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x32 vp9_sad32x32_sse2
49462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
49562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
49662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x32_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
49762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x32_avg vp9_sad32x32_avg_sse2
49862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
49962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x32x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
50062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x32x3 vp9_sad32x32x3_c
50162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
50262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
50362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x32x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
504497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_sad32x32x4d vp9_sad32x32x4d_sse2
50562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
50662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x32x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
50762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x32x8 vp9_sad32x32x8_c
50862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
50962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
51062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x64_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
51162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x64 vp9_sad32x64_sse2
51262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
51362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
51462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad32x64_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
51562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x64_avg vp9_sad32x64_avg_sse2
51662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
51762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
51862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad32x64x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
51962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad32x64x4d vp9_sad32x64x4d_sse2
52062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
52162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
52262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x4_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
52362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x4_sse(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
52462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x4 vp9_sad4x4_sse
52562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
52662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
52762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x4_avg_sse(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
52862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x4_avg vp9_sad4x4_avg_sse
52962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
53062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x4x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
53162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x4x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
53262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_sad4x4x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
53362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
53462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x4x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
53562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x4x4d_sse(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
53662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x4x4d vp9_sad4x4x4d_sse
53762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
53862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x4x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
53962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x4x8 vp9_sad4x4x8_c
54062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
54162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
54262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x8_sse(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
54362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x8 vp9_sad4x8_sse
54462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
54562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
54662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad4x8_avg_sse(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
54762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x8_avg vp9_sad4x8_avg_sse
54862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
54962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x8x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
55062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x8x4d_sse(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
55162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x8x4d vp9_sad4x8x4d_sse
55262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
55362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad4x8x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
55462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad4x8x8 vp9_sad4x8x8_c
55562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
55662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
55762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
55862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x32 vp9_sad64x32_sse2
55962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
56062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
56162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x32_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
56262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x32_avg vp9_sad64x32_avg_sse2
56362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
56462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x32x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
56562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x32x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
56662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x32x4d vp9_sad64x32x4d_sse2
56762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
56862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
56962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x64_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
57062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x64 vp9_sad64x64_sse2
57162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
57262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
57362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad64x64_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
57462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x64_avg vp9_sad64x64_avg_sse2
57562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
57662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x64x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
57762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x64x3 vp9_sad64x64x3_c
57862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
57962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x64x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
58062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x64x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
581497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_sad64x64x4d vp9_sad64x64x4d_sse2
58262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
58362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad64x64x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
58462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad64x64x8 vp9_sad64x64x8_c
58562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
58662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
58762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
58862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
58962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x16 vp9_sad8x16_sse2
59062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
59162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
59262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x16_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
59362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x16_avg vp9_sad8x16_avg_sse2
59462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
59562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x16x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
59662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x16x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
59762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_sad8x16x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
59862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
59962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x16x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
60062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x16x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
60162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x16x4d vp9_sad8x16x4d_sse2
60262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
60362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x16x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
60462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x16x8 vp9_sad8x16x8_c
60562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
60662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
60762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x4_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int max_sad);
60862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x4 vp9_sad8x4_sse2
60962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
61062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
61162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x4_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, const uint8_t *second_pred, unsigned int max_sad);
61262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x4_avg vp9_sad8x4_avg_sse2
61362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
61462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x4x4d_c(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
61562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x4x4d_sse2(const uint8_t *src_ptr, int src_stride, const uint8_t* const ref_ptr[], int ref_stride, unsigned int *sad_array);
61662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x4x4d vp9_sad8x4x4d_sse2
61762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
61862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x4x8_c(const uint8_t *src_ptr, int src_stride, const uint8_t *ref_ptr, int ref_stride, uint32_t *sad_array);
61962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x4x8 vp9_sad8x4x8_c
62062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
62162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
62262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
62362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int max_sad);
62462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x8 vp9_sad8x8_sse2
62562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
62662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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, unsigned int max_sad);
62762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sad8x8_avg_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, const uint8_t *second_pred, unsigned int max_sad);
62862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x8_avg vp9_sad8x8_avg_sse2
62962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
63062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x8x3_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
63162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x8x3_sse3(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
63262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN void (*vp9_sad8x8x3)(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int  ref_stride, unsigned int *sad_array);
63362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
63462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x8x4d_c(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
63562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x8x4d_sse2(const uint8_t *src_ptr, int  src_stride, const uint8_t* const ref_ptr[], int  ref_stride, unsigned int *sad_array);
63662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x8x4d vp9_sad8x8x4d_sse2
63762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
63862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_sad8x8x8_c(const uint8_t *src_ptr, int  src_stride, const uint8_t *ref_ptr, int  ref_stride, uint32_t *sad_array);
63962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_sad8x8x8 vp9_sad8x8x8_c
64062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
64162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
64262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x16_sse2(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);
64362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x16_ssse3(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);
64462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x16)(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);
64562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
64662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
64762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x32_sse2(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);
64862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x32_ssse3(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);
64962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x32)(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);
65062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
65162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
65262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x8_sse2(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);
65362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance16x8_ssse3(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);
65462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance16x8)(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);
65562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
65662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
65762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x16_sse2(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);
65862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x16_ssse3(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);
65962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x16)(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);
66062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
66162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
66262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x32_sse2(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);
66362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x32_ssse3(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);
66462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x32)(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);
66562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
66662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
66762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x64_sse2(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);
66862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance32x64_ssse3(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);
66962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance32x64)(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);
67062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
67162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
67262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance4x4_sse(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);
67362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance4x4_ssse3(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);
67462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x4)(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);
67562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
67662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
67762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance4x8_sse(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);
67862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance4x8_ssse3(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);
67962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance4x8)(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);
68062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
68162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
68262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance64x32_sse2(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);
68362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance64x32_ssse3(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);
68462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x32)(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);
68562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
68662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
68762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance64x64_sse2(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);
68862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance64x64_ssse3(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);
68962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance64x64)(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);
69062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
69162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
69262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x16_sse2(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);
69362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x16_ssse3(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);
69462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x16)(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);
69562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
69662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
69762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x4_sse2(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);
69862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x4_ssse3(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);
69962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x4)(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);
70062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
70162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
70262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x8_sse2(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);
70362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_avg_variance8x8_ssse3(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);
70462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_avg_variance8x8)(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);
70562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
70662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
70762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
70862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
70962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
71062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
71162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
71262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
71362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
71462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
71562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
71662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
71762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
71862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance16x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
71962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance16x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
72162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
72262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
72662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
72762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
72962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
73062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
73162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
73262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
73362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance32x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
73462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance32x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
73562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
73662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
73762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance4x4_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
73862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance4x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
73962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
74162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
74262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance4x8_sse(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance4x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance4x8)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
74662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
74762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance64x32_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
74962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x32)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
75162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
75262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance64x64_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance64x64)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
75662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
75762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x16_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
75962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x16)(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
76162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
76262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x4_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_EXTERN unsigned int (*vp9_sub_pixel_variance8x4)(const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
76662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned 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);
76762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_sub_pixel_variance8x8_ssse3(const uint8_t *src_ptr, int source_stride, int xoffset, int  yoffset, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
76962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgRTCD_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);
77062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
77162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid 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);
77262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_subtract_block_sse2(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);
77362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_subtract_block vp9_subtract_block_sse2
77462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
77562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_temporal_filter_apply_c(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
77662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_temporal_filter_apply_sse2(uint8_t *frame1, unsigned int stride, uint8_t *frame2, unsigned int block_size, int strength, int filter_weight, unsigned int *accumulator, uint16_t *count);
77762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_temporal_filter_apply vp9_temporal_filter_apply_sse2
77862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
77962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_tm_predictor_16x16 vp9_tm_predictor_16x16_sse2
78262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
78362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_sse2
78662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
78762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
78962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_tm_predictor_4x4 vp9_tm_predictor_4x4_sse
79062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
79162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
79262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_tm_predictor_8x8_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
79362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_tm_predictor_8x8 vp9_tm_predictor_8x8_sse2
79462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
79562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
79662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
79762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_v_predictor_16x16 vp9_v_predictor_16x16_sse2
79862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
79962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_v_predictor_32x32 vp9_v_predictor_32x32_sse2
80262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
80362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_v_predictor_4x4 vp9_v_predictor_4x4_sse
80662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
80762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_v_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left);
80962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_v_predictor_8x8 vp9_v_predictor_8x8_sse
81062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
81162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
81262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
81362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
814497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_variance16x16 vp9_variance16x16_sse2
81562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
81662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
81762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
81862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance16x32 vp9_variance16x32_sse2
81962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
82062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
82162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
82262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance16x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
82362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance16x8 vp9_variance16x8_sse2
82462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
82562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
82662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
827497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_variance32x16 vp9_variance32x16_sse2
82862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
82962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
83062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
831497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_variance32x32 vp9_variance32x32_sse2
83262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
83362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
83462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance32x64_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
83562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance32x64 vp9_variance32x64_sse2
83662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
83762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance4x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
83862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance4x4_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
83962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance4x4_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
84062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance4x4 vp9_variance4x4_sse2
84162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
84262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance4x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
84362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance4x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
84462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance4x8 vp9_variance4x8_sse2
84562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
84662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance64x32_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
84762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance64x32_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
848497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_variance64x32 vp9_variance64x32_sse2
84962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
85062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance64x64_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
85162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance64x64_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
852497a01b086cc703ed01af8e8aeed3e5733ad8315johannkoenig@chromium.org#define vp9_variance64x64 vp9_variance64x64_sse2
85362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
85462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x16_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
85562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x16_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
85662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x16_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
85762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance8x16 vp9_variance8x16_sse2
85862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
85962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x4_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
86062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x4_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
86162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance8x4 vp9_variance8x4_sse2
86262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
86362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x8_c(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
86462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x8_mmx(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
86562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgunsigned int vp9_variance8x8_sse2(const uint8_t *src_ptr, int source_stride, const uint8_t *ref_ptr, int ref_stride, unsigned int *sse);
86662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#define vp9_variance8x8 vp9_variance8x8_sse2
86762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
86862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgvoid vp9_rtcd(void);
86962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
87062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#ifdef RTCD_C
87162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org#include "vpx_ports/x86.h"
87262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.orgstatic void setup_rtcd_internal(void)
87362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org{
87462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    int flags = x86_simd_caps();
87562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
87662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    (void)flags;
87762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org
87862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8 = vp9_convolve8_sse2;
87962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3;
88062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8_avg = vp9_convolve8_avg_sse2;
88162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8_avg = vp9_convolve8_avg_ssse3;
88262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_sse2;
88362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_ssse3;
88462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_sse2;
88562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_ssse3;
88662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8_horiz = vp9_convolve8_horiz_sse2;
88762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8_horiz = vp9_convolve8_horiz_ssse3;
88862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_convolve8_vert = vp9_convolve8_vert_sse2;
88962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3;
89062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_c;
89162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_ssse3;
89262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_c;
89362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_ssse3;
89462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_c;
89562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_ssse3;
89662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_c;
89762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_ssse3;
89862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_c;
89962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_ssse3;
90062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_c;
90162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_ssse3;
90262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_c;
90362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_ssse3;
90462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_c;
90562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_ssse3;
90662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_c;
90762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_ssse3;
90862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_c;
90962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_ssse3;
91062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_c;
91162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_ssse3;
91262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_c;
91362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_ssse3;
91462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_c;
91562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_ssse3;
91662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_c;
91762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_ssse3;
91862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_c;
91962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_ssse3;
92062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_diamond_search_sad = vp9_diamond_search_sad_c;
92162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_diamond_search_sad = vp9_diamond_search_sadx4;
92277496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.org    vp9_fdct8x8 = vp9_fdct8x8_sse2;
92377496404dc182c2f4a5f86ebabffe1d1ceb81e7ejohannkoenig@chromium.org    if (flags & HAS_SSSE3) vp9_fdct8x8 = vp9_fdct8x8_ssse3;
92462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_full_search_sad = vp9_full_search_sad_c;
92562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_full_search_sad = vp9_full_search_sadx3;
92662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE4_1) vp9_full_search_sad = vp9_full_search_sadx8;
92762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_h_predictor_16x16 = vp9_h_predictor_16x16_c;
92862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_h_predictor_16x16 = vp9_h_predictor_16x16_ssse3;
92962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c;
93062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_ssse3;
93162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_h_predictor_4x4 = vp9_h_predictor_4x4_c;
93262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_h_predictor_4x4 = vp9_h_predictor_4x4_ssse3;
93362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c;
93462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3;
9357765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org    vp9_idct8x8_12_add = vp9_idct8x8_12_add_sse2;
9367765c078fa920ba6c949c15f16b6cc979d8bb95bjohannkoenig@chromium.org    if (flags & HAS_SSSE3) vp9_idct8x8_12_add = vp9_idct8x8_12_add_ssse3;
937810cf1767dc8df4783e02ba8a712072f50ddc99efgalligan@chromium.org    vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2;
938810cf1767dc8df4783e02ba8a712072f50ddc99efgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_idct8x8_64_add = vp9_idct8x8_64_add_ssse3;
93962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_quantize_b = vp9_quantize_b_c;
94062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_quantize_b = vp9_quantize_b_ssse3;
94162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_quantize_b_32x32 = vp9_quantize_b_32x32_c;
94262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_quantize_b_32x32 = vp9_quantize_b_32x32_ssse3;
94362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_refining_search_sad = vp9_refining_search_sad_c;
94462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_refining_search_sad = vp9_refining_search_sadx4;
94562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sad16x16x3 = vp9_sad16x16x3_c;
94662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_sad16x16x3 = vp9_sad16x16x3_sse3;
94762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sad16x16x3 = vp9_sad16x16x3_ssse3;
94862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sad16x8x3 = vp9_sad16x8x3_c;
94962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_sad16x8x3 = vp9_sad16x8x3_sse3;
95062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sad16x8x3 = vp9_sad16x8x3_ssse3;
95162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sad4x4x3 = vp9_sad4x4x3_c;
95262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_sad4x4x3 = vp9_sad4x4x3_sse3;
95362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sad8x16x3 = vp9_sad8x16x3_c;
95462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_sad8x16x3 = vp9_sad8x16x3_sse3;
95562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sad8x8x3 = vp9_sad8x8x3_c;
95662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSE3) vp9_sad8x8x3 = vp9_sad8x8x3_sse3;
95762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_sse2;
95862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x16 = vp9_sub_pixel_avg_variance16x16_ssse3;
95962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_sse2;
96062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x32 = vp9_sub_pixel_avg_variance16x32_ssse3;
96162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_sse2;
96262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance16x8 = vp9_sub_pixel_avg_variance16x8_ssse3;
96362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_sse2;
96462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x16 = vp9_sub_pixel_avg_variance32x16_ssse3;
96562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_sse2;
96662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x32 = vp9_sub_pixel_avg_variance32x32_ssse3;
96762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_sse2;
96862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance32x64 = vp9_sub_pixel_avg_variance32x64_ssse3;
96962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_sse;
97062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x4 = vp9_sub_pixel_avg_variance4x4_ssse3;
97162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_sse;
97262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance4x8 = vp9_sub_pixel_avg_variance4x8_ssse3;
97362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_sse2;
97462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x32 = vp9_sub_pixel_avg_variance64x32_ssse3;
97562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_sse2;
97662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance64x64 = vp9_sub_pixel_avg_variance64x64_ssse3;
97762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_sse2;
97862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x16 = vp9_sub_pixel_avg_variance8x16_ssse3;
97962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_sse2;
98062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x4 = vp9_sub_pixel_avg_variance8x4_ssse3;
98162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_sse2;
98262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_avg_variance8x8 = vp9_sub_pixel_avg_variance8x8_ssse3;
98362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_sse2;
98462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x16 = vp9_sub_pixel_variance16x16_ssse3;
98562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_sse2;
98662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x32 = vp9_sub_pixel_variance16x32_ssse3;
98762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_sse2;
98862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance16x8 = vp9_sub_pixel_variance16x8_ssse3;
98962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_sse2;
99062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x16 = vp9_sub_pixel_variance32x16_ssse3;
99162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_sse2;
99262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x32 = vp9_sub_pixel_variance32x32_ssse3;
99362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_sse2;
99462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance32x64 = vp9_sub_pixel_variance32x64_ssse3;
99562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_sse;
99662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x4 = vp9_sub_pixel_variance4x4_ssse3;
99762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_sse;
99862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance4x8 = vp9_sub_pixel_variance4x8_ssse3;
99962346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_sse2;
100062346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x32 = vp9_sub_pixel_variance64x32_ssse3;
100162346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_sse2;
100262346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance64x64 = vp9_sub_pixel_variance64x64_ssse3;
100362346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_sse2;
100462346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x16 = vp9_sub_pixel_variance8x16_ssse3;
100562346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_sse2;
100662346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x4 = vp9_sub_pixel_variance8x4_ssse3;
100762346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_sse2;
100862346fffe2566140c9f486b24be8377abf9e5b59fgalligan@chromium.org    if (flags & HAS_SSSE3) vp9_sub_pixel_variance8x8 = vp9_sub_pixel_variance8x8_ssse3;
10098ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org}
10108ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#endif
1011dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
1012dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#ifdef __cplusplus
1013dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org}  // extern "C"
1014dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org#endif
1015dddee1ec7cedf276305b107429f684539b105276johannkoenig@chromium.org
10168ae1e8e2c7efa47d8464e8a3205dbfaed138690ffgalligan@chromium.org#endif
1017