1233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifndef VP9_RTCD_H_ 2233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define VP9_RTCD_H_ 3233d2500723e5594f3e7c70896ffeeef32b9c950ywan 4233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef RTCD_C 5233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define RTCD_EXTERN 6233d2500723e5594f3e7c70896ffeeef32b9c950ywan#else 7233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define RTCD_EXTERN extern 8233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 9233d2500723e5594f3e7c70896ffeeef32b9c950ywan 10233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* 11233d2500723e5594f3e7c70896ffeeef32b9c950ywan * VP9 12233d2500723e5594f3e7c70896ffeeef32b9c950ywan */ 13233d2500723e5594f3e7c70896ffeeef32b9c950ywan 14233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx/vpx_integer.h" 15233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vp9/common/vp9_enums.h" 16233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "trace_conf.h" 17233d2500723e5594f3e7c70896ffeeef32b9c950ywan 18233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct macroblockd; 19233d2500723e5594f3e7c70896ffeeef32b9c950ywan 20233d2500723e5594f3e7c70896ffeeef32b9c950ywan/* Encoder forward decls */ 21233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct macroblock; 22233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct vp9_variance_vtable; 23233d2500723e5594f3e7c70896ffeeef32b9c950ywan 24233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define DEC_MVCOSTS int *mvjcost, int *mvcost[2] 25233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct mv; 26233d2500723e5594f3e7c70896ffeeef32b9c950ywanunion int_mv; 27233d2500723e5594f3e7c70896ffeeef32b9c950ywanstruct yv12_buffer_config; 28233d2500723e5594f3e7c70896ffeeef32b9c950ywan 29233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 30233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 31233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d207_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 32233d2500723e5594f3e7c70896ffeeef32b9c950ywan 33233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 34233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 35233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d45_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 36233d2500723e5594f3e7c70896ffeeef32b9c950ywan 37233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 38233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 39233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d63_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 40233d2500723e5594f3e7c70896ffeeef32b9c950ywan 41233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 42233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 43233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_h_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 44233d2500723e5594f3e7c70896ffeeef32b9c950ywan 45233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 46233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_4x4 vp9_d117_predictor_4x4_c 47233d2500723e5594f3e7c70896ffeeef32b9c950ywan 48233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 49233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_4x4 vp9_d135_predictor_4x4_c 50233d2500723e5594f3e7c70896ffeeef32b9c950ywan 51233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 52233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_4x4_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 53233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d153_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 54233d2500723e5594f3e7c70896ffeeef32b9c950ywan 55233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 56233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 57233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_v_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 58233d2500723e5594f3e7c70896ffeeef32b9c950ywan 59233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 60233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 61233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_tm_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 62233d2500723e5594f3e7c70896ffeeef32b9c950ywan 63233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 64233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_4x4_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 65233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_dc_predictor_4x4)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 66233d2500723e5594f3e7c70896ffeeef32b9c950ywan 67233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 68233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_4x4 vp9_dc_top_predictor_4x4_c 69233d2500723e5594f3e7c70896ffeeef32b9c950ywan 70233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 71233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_4x4 vp9_dc_left_predictor_4x4_c 72233d2500723e5594f3e7c70896ffeeef32b9c950ywan 73233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_4x4_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 74233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_4x4 vp9_dc_128_predictor_4x4_c 75233d2500723e5594f3e7c70896ffeeef32b9c950ywan 76233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 77233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 78233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d207_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 79233d2500723e5594f3e7c70896ffeeef32b9c950ywan 80233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 81233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 82233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d45_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 83233d2500723e5594f3e7c70896ffeeef32b9c950ywan 84233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 85233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 86233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d63_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 87233d2500723e5594f3e7c70896ffeeef32b9c950ywan 88233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 89233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 90233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_h_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 91233d2500723e5594f3e7c70896ffeeef32b9c950ywan 92233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 93233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_8x8 vp9_d117_predictor_8x8_c 94233d2500723e5594f3e7c70896ffeeef32b9c950ywan 95233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 96233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_8x8 vp9_d135_predictor_8x8_c 97233d2500723e5594f3e7c70896ffeeef32b9c950ywan 98233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 99233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_8x8_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 100233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d153_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 101233d2500723e5594f3e7c70896ffeeef32b9c950ywan 102233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 103233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 104233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_v_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 105233d2500723e5594f3e7c70896ffeeef32b9c950ywan 106233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 107233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_8x8_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 108233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_tm_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 109233d2500723e5594f3e7c70896ffeeef32b9c950ywan 110233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 111233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_8x8_sse(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 112233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_dc_predictor_8x8)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 113233d2500723e5594f3e7c70896ffeeef32b9c950ywan 114233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 115233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_8x8 vp9_dc_top_predictor_8x8_c 116233d2500723e5594f3e7c70896ffeeef32b9c950ywan 117233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 118233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_8x8 vp9_dc_left_predictor_8x8_c 119233d2500723e5594f3e7c70896ffeeef32b9c950ywan 120233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_8x8_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 121233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_8x8 vp9_dc_128_predictor_8x8_c 122233d2500723e5594f3e7c70896ffeeef32b9c950ywan 123233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 124233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 125233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d207_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 126233d2500723e5594f3e7c70896ffeeef32b9c950ywan 127233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 128233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 129233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d45_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 130233d2500723e5594f3e7c70896ffeeef32b9c950ywan 131233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 132233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 133233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d63_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 134233d2500723e5594f3e7c70896ffeeef32b9c950ywan 135233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 136233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 137233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_h_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 138233d2500723e5594f3e7c70896ffeeef32b9c950ywan 139233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 140233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_16x16 vp9_d117_predictor_16x16_c 141233d2500723e5594f3e7c70896ffeeef32b9c950ywan 142233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 143233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_16x16 vp9_d135_predictor_16x16_c 144233d2500723e5594f3e7c70896ffeeef32b9c950ywan 145233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 146233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_16x16_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 147233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d153_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 148233d2500723e5594f3e7c70896ffeeef32b9c950ywan 149233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 150233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 151233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_v_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 152233d2500723e5594f3e7c70896ffeeef32b9c950ywan 153233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 154233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 155233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_tm_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 156233d2500723e5594f3e7c70896ffeeef32b9c950ywan 157233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 158233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_16x16_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 159233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_dc_predictor_16x16)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 160233d2500723e5594f3e7c70896ffeeef32b9c950ywan 161233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 162233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_16x16 vp9_dc_top_predictor_16x16_c 163233d2500723e5594f3e7c70896ffeeef32b9c950ywan 164233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 165233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_16x16 vp9_dc_left_predictor_16x16_c 166233d2500723e5594f3e7c70896ffeeef32b9c950ywan 167233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_16x16_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 168233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_16x16 vp9_dc_128_predictor_16x16_c 169233d2500723e5594f3e7c70896ffeeef32b9c950ywan 170233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 171233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d207_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 172233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d207_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 173233d2500723e5594f3e7c70896ffeeef32b9c950ywan 174233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 175233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d45_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 176233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d45_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 177233d2500723e5594f3e7c70896ffeeef32b9c950ywan 178233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 179233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d63_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 180233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_d63_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 181233d2500723e5594f3e7c70896ffeeef32b9c950ywan 182233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 183233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_h_predictor_32x32_ssse3(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 184233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_h_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 185233d2500723e5594f3e7c70896ffeeef32b9c950ywan 186233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d117_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 187233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d117_predictor_32x32 vp9_d117_predictor_32x32_c 188233d2500723e5594f3e7c70896ffeeef32b9c950ywan 189233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d135_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 190233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d135_predictor_32x32 vp9_d135_predictor_32x32_c 191233d2500723e5594f3e7c70896ffeeef32b9c950ywan 192233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_d153_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 193233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_d153_predictor_32x32 vp9_d153_predictor_32x32_c 194233d2500723e5594f3e7c70896ffeeef32b9c950ywan 195233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 196233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_v_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 197233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_v_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 198233d2500723e5594f3e7c70896ffeeef32b9c950ywan 199233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_tm_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 200233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_tm_predictor_32x32 vp9_tm_predictor_32x32_c 201233d2500723e5594f3e7c70896ffeeef32b9c950ywan 202233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 203233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_predictor_32x32_sse2(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 204233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_dc_predictor_32x32)(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 205233d2500723e5594f3e7c70896ffeeef32b9c950ywan 206233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_top_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 207233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_top_predictor_32x32 vp9_dc_top_predictor_32x32_c 208233d2500723e5594f3e7c70896ffeeef32b9c950ywan 209233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_left_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 210233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_left_predictor_32x32 vp9_dc_left_predictor_32x32_c 211233d2500723e5594f3e7c70896ffeeef32b9c950ywan 212233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_dc_128_predictor_32x32_c(uint8_t *dst, ptrdiff_t y_stride, const uint8_t *above, const uint8_t *left); 213233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_dc_128_predictor_32x32 vp9_dc_128_predictor_32x32_c 214233d2500723e5594f3e7c70896ffeeef32b9c950ywan 215233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 216233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 217233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 218233d2500723e5594f3e7c70896ffeeef32b9c950ywan 219233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_16_dual_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 220233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_16_dual_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 221233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_16_dual)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh); 222233d2500723e5594f3e7c70896ffeeef32b9c950ywan 223233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 224233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 225233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 226233d2500723e5594f3e7c70896ffeeef32b9c950ywan 227233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 228233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 229233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 230233d2500723e5594f3e7c70896ffeeef32b9c950ywan 231233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 232233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_vertical_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 233233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 234233d2500723e5594f3e7c70896ffeeef32b9c950ywan 235233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 236233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 237233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_vertical_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 238233d2500723e5594f3e7c70896ffeeef32b9c950ywan 239233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_16_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 240233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_16_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 241233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_horizontal_16)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 242233d2500723e5594f3e7c70896ffeeef32b9c950ywan 243233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_8_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 244233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_8_sse2(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 245233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_horizontal_8)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 246233d2500723e5594f3e7c70896ffeeef32b9c950ywan 247233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 248233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 249233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_horizontal_8_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 250233d2500723e5594f3e7c70896ffeeef32b9c950ywan 251233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_4_c(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 252233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_lpf_horizontal_4_mmx(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 253233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_horizontal_4)(uint8_t *s, int pitch, const uint8_t *blimit, const uint8_t *limit, const uint8_t *thresh, int count); 254233d2500723e5594f3e7c70896ffeeef32b9c950ywan 255233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 256233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 257233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_lpf_horizontal_4_dual)(uint8_t *s, int pitch, const uint8_t *blimit0, const uint8_t *limit0, const uint8_t *thresh0, const uint8_t *blimit1, const uint8_t *limit1, const uint8_t *thresh1); 258233d2500723e5594f3e7c70896ffeeef32b9c950ywan 259233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_mb_inner_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 260233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_mb_inner vp9_blend_mb_inner_c 261233d2500723e5594f3e7c70896ffeeef32b9c950ywan 262233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_mb_outer_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 263233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_mb_outer vp9_blend_mb_outer_c 264233d2500723e5594f3e7c70896ffeeef32b9c950ywan 265233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_blend_b_c(uint8_t *y, uint8_t *u, uint8_t *v, int y1, int u1, int v1, int alpha, int stride); 266233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_blend_b vp9_blend_b_c 267233d2500723e5594f3e7c70896ffeeef32b9c950ywan 268233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 269233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 270233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_convolve_copy)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 271233d2500723e5594f3e7c70896ffeeef32b9c950ywan 272233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 273233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 274233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_convolve_avg)(const uint8_t *src, ptrdiff_t src_stride, uint8_t *dst, ptrdiff_t dst_stride, const int16_t *filter_x, int x_step_q4, const int16_t *filter_y, int y_step_q4, int w, int h); 275233d2500723e5594f3e7c70896ffeeef32b9c950ywan 276233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 277233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 278233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 279233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 280233d2500723e5594f3e7c70896ffeeef32b9c950ywan 281233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 282233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 283233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 284233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 285233d2500723e5594f3e7c70896ffeeef32b9c950ywan 286233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 287233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 288233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 289233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 290233d2500723e5594f3e7c70896ffeeef32b9c950ywan 291233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 292233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 293233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 294233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 295233d2500723e5594f3e7c70896ffeeef32b9c950ywan 296233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 297233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 298233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 299233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 300233d2500723e5594f3e7c70896ffeeef32b9c950ywan 301233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 302233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 303233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid 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); 304233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_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); 305233d2500723e5594f3e7c70896ffeeef32b9c950ywan 306233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 307233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 308233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct4x4_1_add)(const int16_t *input, uint8_t *dest, int dest_stride); 309233d2500723e5594f3e7c70896ffeeef32b9c950ywan 310233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 311233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 312233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct4x4_16_add)(const int16_t *input, uint8_t *dest, int dest_stride); 313233d2500723e5594f3e7c70896ffeeef32b9c950ywan 314233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 315233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 316233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct8x8_1_add)(const int16_t *input, uint8_t *dest, int dest_stride); 317233d2500723e5594f3e7c70896ffeeef32b9c950ywan 318233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 319233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 320233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct8x8_64_add)(const int16_t *input, uint8_t *dest, int dest_stride); 321233d2500723e5594f3e7c70896ffeeef32b9c950ywan 322233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 323233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct8x8_10_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 324233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct8x8_10_add)(const int16_t *input, uint8_t *dest, int dest_stride); 325233d2500723e5594f3e7c70896ffeeef32b9c950ywan 326233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 327233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 328233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct16x16_1_add)(const int16_t *input, uint8_t *dest, int dest_stride); 329233d2500723e5594f3e7c70896ffeeef32b9c950ywan 330233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_256_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 331233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_256_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 332233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct16x16_256_add)(const int16_t *input, uint8_t *dest, int dest_stride); 333233d2500723e5594f3e7c70896ffeeef32b9c950ywan 334233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_10_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 335233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct16x16_10_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 336233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct16x16_10_add)(const int16_t *input, uint8_t *dest, int dest_stride); 337233d2500723e5594f3e7c70896ffeeef32b9c950ywan 338233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1024_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 339233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1024_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 340233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct32x32_1024_add)(const int16_t *input, uint8_t *dest, int dest_stride); 341233d2500723e5594f3e7c70896ffeeef32b9c950ywan 342233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_34_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 343233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_34_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 344233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct32x32_34_add)(const int16_t *input, uint8_t *dest, int dest_stride); 345233d2500723e5594f3e7c70896ffeeef32b9c950ywan 346233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 347233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_idct32x32_1_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride); 348233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_idct32x32_1_add)(const int16_t *input, uint8_t *dest, int dest_stride); 349233d2500723e5594f3e7c70896ffeeef32b9c950ywan 350233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 351233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht4x4_16_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 352233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_iht4x4_16_add)(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 353233d2500723e5594f3e7c70896ffeeef32b9c950ywan 354233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht8x8_64_add_c(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 355233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht8x8_64_add_sse2(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 356233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_iht8x8_64_add)(const int16_t *input, uint8_t *dest, int dest_stride, int tx_type); 357233d2500723e5594f3e7c70896ffeeef32b9c950ywan 358233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht16x16_256_add_c(const int16_t *input, uint8_t *output, int pitch, int tx_type); 359233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iht16x16_256_add_sse2(const int16_t *input, uint8_t *output, int pitch, int tx_type); 360233d2500723e5594f3e7c70896ffeeef32b9c950ywanRTCD_EXTERN void (*vp9_iht16x16_256_add)(const int16_t *input, uint8_t *output, int pitch, int tx_type); 361233d2500723e5594f3e7c70896ffeeef32b9c950ywan 362233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iwht4x4_1_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 363233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iwht4x4_1_add vp9_iwht4x4_1_add_c 364233d2500723e5594f3e7c70896ffeeef32b9c950ywan 365233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_iwht4x4_16_add_c(const int16_t *input, uint8_t *dest, int dest_stride); 366233d2500723e5594f3e7c70896ffeeef32b9c950ywan#define vp9_iwht4x4_16_add vp9_iwht4x4_16_add_c 367233d2500723e5594f3e7c70896ffeeef32b9c950ywan 368233d2500723e5594f3e7c70896ffeeef32b9c950ywanvoid vp9_rtcd(void); 369233d2500723e5594f3e7c70896ffeeef32b9c950ywan 370233d2500723e5594f3e7c70896ffeeef32b9c950ywan#ifdef RTCD_C 371233d2500723e5594f3e7c70896ffeeef32b9c950ywan#include "vpx_ports/x86.h" 372233d2500723e5594f3e7c70896ffeeef32b9c950ywanstatic void setup_rtcd_internal(void) 373233d2500723e5594f3e7c70896ffeeef32b9c950ywan{ 374233d2500723e5594f3e7c70896ffeeef32b9c950ywan int flags = x86_simd_caps(); 375233d2500723e5594f3e7c70896ffeeef32b9c950ywan 376233d2500723e5594f3e7c70896ffeeef32b9c950ywan (void)flags; 377233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) { 378233d2500723e5594f3e7c70896ffeeef32b9c950ywan LOGD("HAS_SSSE3"); 379233d2500723e5594f3e7c70896ffeeef32b9c950ywan } 380233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE3) { 381233d2500723e5594f3e7c70896ffeeef32b9c950ywan LOGD("HAS_SSE3"); 382233d2500723e5594f3e7c70896ffeeef32b9c950ywan } 383233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) { 384233d2500723e5594f3e7c70896ffeeef32b9c950ywan LOGD("HAS_SSE"); 385233d2500723e5594f3e7c70896ffeeef32b9c950ywan } 386233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) { 387233d2500723e5594f3e7c70896ffeeef32b9c950ywan LOGD("HAS_SSE2"); 388233d2500723e5594f3e7c70896ffeeef32b9c950ywan } 389233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_MMX) { 390233d2500723e5594f3e7c70896ffeeef32b9c950ywan LOGD("HAS_MMX"); 391233d2500723e5594f3e7c70896ffeeef32b9c950ywan } 392233d2500723e5594f3e7c70896ffeeef32b9c950ywan 393233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_c; 394233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d207_predictor_4x4 = vp9_d207_predictor_4x4_ssse3; 395233d2500723e5594f3e7c70896ffeeef32b9c950ywan 396233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_c; 397233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d45_predictor_4x4 = vp9_d45_predictor_4x4_ssse3; 398233d2500723e5594f3e7c70896ffeeef32b9c950ywan 399233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_c; 400233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d63_predictor_4x4 = vp9_d63_predictor_4x4_ssse3; 401233d2500723e5594f3e7c70896ffeeef32b9c950ywan 402233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_h_predictor_4x4 = vp9_h_predictor_4x4_c; 403233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_h_predictor_4x4 = vp9_h_predictor_4x4_ssse3; 404233d2500723e5594f3e7c70896ffeeef32b9c950ywan 405233d2500723e5594f3e7c70896ffeeef32b9c950ywan 406233d2500723e5594f3e7c70896ffeeef32b9c950ywan 407233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_c; 408233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d153_predictor_4x4 = vp9_d153_predictor_4x4_ssse3; 409233d2500723e5594f3e7c70896ffeeef32b9c950ywan 410233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_v_predictor_4x4 = vp9_v_predictor_4x4_c; 411233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) vp9_v_predictor_4x4 = vp9_v_predictor_4x4_sse; 412233d2500723e5594f3e7c70896ffeeef32b9c950ywan 413233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_c; 414233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) vp9_tm_predictor_4x4 = vp9_tm_predictor_4x4_sse; 415233d2500723e5594f3e7c70896ffeeef32b9c950ywan 416233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_c; 417233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) vp9_dc_predictor_4x4 = vp9_dc_predictor_4x4_sse; 418233d2500723e5594f3e7c70896ffeeef32b9c950ywan 419233d2500723e5594f3e7c70896ffeeef32b9c950ywan 420233d2500723e5594f3e7c70896ffeeef32b9c950ywan 421233d2500723e5594f3e7c70896ffeeef32b9c950ywan 422233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_c; 423233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d207_predictor_8x8 = vp9_d207_predictor_8x8_ssse3; 424233d2500723e5594f3e7c70896ffeeef32b9c950ywan 425233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_c; 426233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d45_predictor_8x8 = vp9_d45_predictor_8x8_ssse3; 427233d2500723e5594f3e7c70896ffeeef32b9c950ywan 428233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_c; 429233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d63_predictor_8x8 = vp9_d63_predictor_8x8_ssse3; 430233d2500723e5594f3e7c70896ffeeef32b9c950ywan 431233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_h_predictor_8x8 = vp9_h_predictor_8x8_c; 432233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_h_predictor_8x8 = vp9_h_predictor_8x8_ssse3; 433233d2500723e5594f3e7c70896ffeeef32b9c950ywan 434233d2500723e5594f3e7c70896ffeeef32b9c950ywan 435233d2500723e5594f3e7c70896ffeeef32b9c950ywan 436233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_c; 437233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d153_predictor_8x8 = vp9_d153_predictor_8x8_ssse3; 438233d2500723e5594f3e7c70896ffeeef32b9c950ywan 439233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_v_predictor_8x8 = vp9_v_predictor_8x8_c; 440233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) vp9_v_predictor_8x8 = vp9_v_predictor_8x8_sse; 441233d2500723e5594f3e7c70896ffeeef32b9c950ywan 442233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_c; 443233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_tm_predictor_8x8 = vp9_tm_predictor_8x8_sse2; 444233d2500723e5594f3e7c70896ffeeef32b9c950ywan 445233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_c; 446233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE) vp9_dc_predictor_8x8 = vp9_dc_predictor_8x8_sse; 447233d2500723e5594f3e7c70896ffeeef32b9c950ywan 448233d2500723e5594f3e7c70896ffeeef32b9c950ywan 449233d2500723e5594f3e7c70896ffeeef32b9c950ywan 450233d2500723e5594f3e7c70896ffeeef32b9c950ywan 451233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_c; 452233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d207_predictor_16x16 = vp9_d207_predictor_16x16_ssse3; 453233d2500723e5594f3e7c70896ffeeef32b9c950ywan 454233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_c; 455233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d45_predictor_16x16 = vp9_d45_predictor_16x16_ssse3; 456233d2500723e5594f3e7c70896ffeeef32b9c950ywan 457233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_c; 458233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d63_predictor_16x16 = vp9_d63_predictor_16x16_ssse3; 459233d2500723e5594f3e7c70896ffeeef32b9c950ywan 460233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_h_predictor_16x16 = vp9_h_predictor_16x16_c; 461233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_h_predictor_16x16 = vp9_h_predictor_16x16_ssse3; 462233d2500723e5594f3e7c70896ffeeef32b9c950ywan 463233d2500723e5594f3e7c70896ffeeef32b9c950ywan 464233d2500723e5594f3e7c70896ffeeef32b9c950ywan 465233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_c; 466233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d153_predictor_16x16 = vp9_d153_predictor_16x16_ssse3; 467233d2500723e5594f3e7c70896ffeeef32b9c950ywan 468233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_v_predictor_16x16 = vp9_v_predictor_16x16_c; 469233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_v_predictor_16x16 = vp9_v_predictor_16x16_sse2; 470233d2500723e5594f3e7c70896ffeeef32b9c950ywan 471233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_c; 472233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_tm_predictor_16x16 = vp9_tm_predictor_16x16_sse2; 473233d2500723e5594f3e7c70896ffeeef32b9c950ywan 474233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_c; 475233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_dc_predictor_16x16 = vp9_dc_predictor_16x16_sse2; 476233d2500723e5594f3e7c70896ffeeef32b9c950ywan 477233d2500723e5594f3e7c70896ffeeef32b9c950ywan 478233d2500723e5594f3e7c70896ffeeef32b9c950ywan 479233d2500723e5594f3e7c70896ffeeef32b9c950ywan 480233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_c; 481233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d207_predictor_32x32 = vp9_d207_predictor_32x32_ssse3; 482233d2500723e5594f3e7c70896ffeeef32b9c950ywan 483233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_c; 484233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d45_predictor_32x32 = vp9_d45_predictor_32x32_ssse3; 485233d2500723e5594f3e7c70896ffeeef32b9c950ywan 486233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_c; 487233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_d63_predictor_32x32 = vp9_d63_predictor_32x32_ssse3; 488233d2500723e5594f3e7c70896ffeeef32b9c950ywan 489233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_h_predictor_32x32 = vp9_h_predictor_32x32_c; 490233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_h_predictor_32x32 = vp9_h_predictor_32x32_ssse3; 491233d2500723e5594f3e7c70896ffeeef32b9c950ywan 492233d2500723e5594f3e7c70896ffeeef32b9c950ywan 493233d2500723e5594f3e7c70896ffeeef32b9c950ywan 494233d2500723e5594f3e7c70896ffeeef32b9c950ywan 495233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_v_predictor_32x32 = vp9_v_predictor_32x32_c; 496233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_v_predictor_32x32 = vp9_v_predictor_32x32_sse2; 497233d2500723e5594f3e7c70896ffeeef32b9c950ywan 498233d2500723e5594f3e7c70896ffeeef32b9c950ywan 499233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_c; 500233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_dc_predictor_32x32 = vp9_dc_predictor_32x32_sse2; 501233d2500723e5594f3e7c70896ffeeef32b9c950ywan 502233d2500723e5594f3e7c70896ffeeef32b9c950ywan 503233d2500723e5594f3e7c70896ffeeef32b9c950ywan 504233d2500723e5594f3e7c70896ffeeef32b9c950ywan 505233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_16 = vp9_lpf_vertical_16_c; 506233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_vertical_16 = vp9_lpf_vertical_16_sse2; 507233d2500723e5594f3e7c70896ffeeef32b9c950ywan 508233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_c; 509233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_vertical_16_dual = vp9_lpf_vertical_16_dual_sse2; 510233d2500723e5594f3e7c70896ffeeef32b9c950ywan 511233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_8 = vp9_lpf_vertical_8_c; 512233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_vertical_8 = vp9_lpf_vertical_8_sse2; 513233d2500723e5594f3e7c70896ffeeef32b9c950ywan 514233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_c; 515233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_vertical_8_dual = vp9_lpf_vertical_8_dual_sse2; 516233d2500723e5594f3e7c70896ffeeef32b9c950ywan 517233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_4 = vp9_lpf_vertical_4_c; 518233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_MMX) vp9_lpf_vertical_4 = vp9_lpf_vertical_4_mmx; 519233d2500723e5594f3e7c70896ffeeef32b9c950ywan 520233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_c; 521233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_vertical_4_dual = vp9_lpf_vertical_4_dual_sse2; 522233d2500723e5594f3e7c70896ffeeef32b9c950ywan 523233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_c; 524233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_horizontal_16 = vp9_lpf_horizontal_16_sse2; 525233d2500723e5594f3e7c70896ffeeef32b9c950ywan 526233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_c; 527233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_horizontal_8 = vp9_lpf_horizontal_8_sse2; 528233d2500723e5594f3e7c70896ffeeef32b9c950ywan 529233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_c; 530233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_horizontal_8_dual = vp9_lpf_horizontal_8_dual_sse2; 531233d2500723e5594f3e7c70896ffeeef32b9c950ywan 532233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_c; 533233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_MMX) vp9_lpf_horizontal_4 = vp9_lpf_horizontal_4_mmx; 534233d2500723e5594f3e7c70896ffeeef32b9c950ywan 535233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_c; 536233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_lpf_horizontal_4_dual = vp9_lpf_horizontal_4_dual_sse2; 537233d2500723e5594f3e7c70896ffeeef32b9c950ywan 538233d2500723e5594f3e7c70896ffeeef32b9c950ywan 539233d2500723e5594f3e7c70896ffeeef32b9c950ywan 540233d2500723e5594f3e7c70896ffeeef32b9c950ywan 541233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve_copy = vp9_convolve_copy_c; 542233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve_copy = vp9_convolve_copy_sse2; 543233d2500723e5594f3e7c70896ffeeef32b9c950ywan 544233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve_avg = vp9_convolve_avg_c; 545233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve_avg = vp9_convolve_avg_sse2; 546233d2500723e5594f3e7c70896ffeeef32b9c950ywan 547233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8 = vp9_convolve8_c; 548233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8 = vp9_convolve8_sse2; 549233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8 = vp9_convolve8_ssse3; 550233d2500723e5594f3e7c70896ffeeef32b9c950ywan 551233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8_horiz = vp9_convolve8_horiz_c; 552233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8_horiz = vp9_convolve8_horiz_sse2; 553233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8_horiz = vp9_convolve8_horiz_ssse3; 554233d2500723e5594f3e7c70896ffeeef32b9c950ywan 555233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8_vert = vp9_convolve8_vert_c; 556233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8_vert = vp9_convolve8_vert_sse2; 557233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8_vert = vp9_convolve8_vert_ssse3; 558233d2500723e5594f3e7c70896ffeeef32b9c950ywan 559233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8_avg = vp9_convolve8_avg_c; 560233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8_avg = vp9_convolve8_avg_sse2; 561233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8_avg = vp9_convolve8_avg_ssse3; 562233d2500723e5594f3e7c70896ffeeef32b9c950ywan 563233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_c; 564233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_sse2; 565233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8_avg_horiz = vp9_convolve8_avg_horiz_ssse3; 566233d2500723e5594f3e7c70896ffeeef32b9c950ywan 567233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_c; 568233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_sse2; 569233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSSE3) vp9_convolve8_avg_vert = vp9_convolve8_avg_vert_ssse3; 570233d2500723e5594f3e7c70896ffeeef32b9c950ywan 571233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct4x4_1_add = vp9_idct4x4_1_add_c; 572233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct4x4_1_add = vp9_idct4x4_1_add_sse2; 573233d2500723e5594f3e7c70896ffeeef32b9c950ywan 574233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct4x4_16_add = vp9_idct4x4_16_add_c; 575233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct4x4_16_add = vp9_idct4x4_16_add_sse2; 576233d2500723e5594f3e7c70896ffeeef32b9c950ywan 577233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct8x8_1_add = vp9_idct8x8_1_add_c; 578233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct8x8_1_add = vp9_idct8x8_1_add_sse2; 579233d2500723e5594f3e7c70896ffeeef32b9c950ywan 580233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct8x8_64_add = vp9_idct8x8_64_add_c; 581233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct8x8_64_add = vp9_idct8x8_64_add_sse2; 582233d2500723e5594f3e7c70896ffeeef32b9c950ywan 583233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct8x8_10_add = vp9_idct8x8_10_add_c; 584233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct8x8_10_add = vp9_idct8x8_10_add_sse2; 585233d2500723e5594f3e7c70896ffeeef32b9c950ywan 586233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct16x16_1_add = vp9_idct16x16_1_add_c; 587233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct16x16_1_add = vp9_idct16x16_1_add_sse2; 588233d2500723e5594f3e7c70896ffeeef32b9c950ywan 589233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct16x16_256_add = vp9_idct16x16_256_add_c; 590233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct16x16_256_add = vp9_idct16x16_256_add_sse2; 591233d2500723e5594f3e7c70896ffeeef32b9c950ywan 592233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct16x16_10_add = vp9_idct16x16_10_add_c; 593233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct16x16_10_add = vp9_idct16x16_10_add_sse2; 594233d2500723e5594f3e7c70896ffeeef32b9c950ywan 595233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_c; 596233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct32x32_1024_add = vp9_idct32x32_1024_add_sse2; 597233d2500723e5594f3e7c70896ffeeef32b9c950ywan 598233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct32x32_34_add = vp9_idct32x32_34_add_c; 599233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct32x32_34_add = vp9_idct32x32_34_add_sse2; 600233d2500723e5594f3e7c70896ffeeef32b9c950ywan 601233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_idct32x32_1_add = vp9_idct32x32_1_add_c; 602233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_idct32x32_1_add = vp9_idct32x32_1_add_sse2; 603233d2500723e5594f3e7c70896ffeeef32b9c950ywan 604233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_iht4x4_16_add = vp9_iht4x4_16_add_c; 605233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_iht4x4_16_add = vp9_iht4x4_16_add_sse2; 606233d2500723e5594f3e7c70896ffeeef32b9c950ywan 607233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_iht8x8_64_add = vp9_iht8x8_64_add_c; 608233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_iht8x8_64_add = vp9_iht8x8_64_add_sse2; 609233d2500723e5594f3e7c70896ffeeef32b9c950ywan 610233d2500723e5594f3e7c70896ffeeef32b9c950ywan vp9_iht16x16_256_add = vp9_iht16x16_256_add_c; 611233d2500723e5594f3e7c70896ffeeef32b9c950ywan if (flags & HAS_SSE2) vp9_iht16x16_256_add = vp9_iht16x16_256_add_sse2; 612233d2500723e5594f3e7c70896ffeeef32b9c950ywan} 613233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 614233d2500723e5594f3e7c70896ffeeef32b9c950ywan#endif 615