#include <emmintrin.h>
#include "aom_dsp/x86/intrapred_x86.h"
#include "config/aom_dsp_rtcd.h"
static inline void dc_store_4xh(uint32_t dc, int height, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void dc_store_8xh(const __m128i *row, int height, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void dc_store_16xh(const __m128i *row, int height, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void dc_store_32xh(const __m128i *row, int height, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void dc_store_64xh(const __m128i *row, int height, uint8_t *dst,
ptrdiff_t stride) { … }
static inline __m128i dc_sum_4(const uint8_t *ref) { … }
static inline __m128i dc_sum_8(const uint8_t *ref) { … }
static inline __m128i dc_sum_64(const uint8_t *ref) { … }
#define DC_MULTIPLIER_1X2 …
#define DC_MULTIPLIER_1X4 …
#define DC_SHIFT2 …
static inline int divide_using_multiply_shift(int num, int shift1,
int multiplier) { … }
void aom_dc_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_top_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_top_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_left_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_left_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_left_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_dc_128_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_dc_128_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above,
const uint8_t *left) { … }
void aom_v_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void v_predictor_32xh(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, int height) { … }
void aom_v_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void v_predictor_64xh(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, int height) { … }
void aom_v_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_v_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_4x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_4x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_8x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_predictor_8x16xc(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left,
int count) { … }
void aom_h_predictor_8x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_8x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_pred_store_16xh(const __m128i *row, int h, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void repeat_low_4pixels(const __m128i *x, __m128i *row) { … }
static inline void repeat_high_4pixels(const __m128i *x, __m128i *row) { … }
static inline void h_prediction_16x8_1(const __m128i *left, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void h_prediction_16x8_2(const __m128i *left, uint8_t *dst,
ptrdiff_t stride) { … }
void aom_h_predictor_16x4_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_16x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_predictor_16xh(uint8_t *dst, ptrdiff_t stride,
const uint8_t *left, int count) { … }
void aom_h_predictor_16x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_16x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_pred_store_32xh(const __m128i *row, int h, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void h_prediction_32x8_1(const __m128i *left, uint8_t *dst,
ptrdiff_t stride) { … }
static inline void h_prediction_32x8_2(const __m128i *left, uint8_t *dst,
ptrdiff_t stride) { … }
void aom_h_predictor_32x8_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_32x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_predictor_32xh(uint8_t *dst, ptrdiff_t stride,
const uint8_t *left, int height) { … }
void aom_h_predictor_32x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
static inline void h_predictor_64xh(uint8_t *dst, ptrdiff_t stride,
const uint8_t *left, int height) { … }
void aom_h_predictor_64x64_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_64x32_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }
void aom_h_predictor_64x16_sse2(uint8_t *dst, ptrdiff_t stride,
const uint8_t *above, const uint8_t *left) { … }