#include <assert.h>
#include <emmintrin.h>
#include "./vpx_config.h"
#include "./vpx_dsp_rtcd.h"
#include "vpx_ports/mem.h"
#include "vpx_dsp/x86/mem_sse2.h"
static INLINE unsigned int add32x4_sse2(__m128i val) { … }
unsigned int vpx_get_mb_ss_sse2(const int16_t *src_ptr) { … }
static INLINE __m128i load4x2_sse2(const uint8_t *const p, const int stride) { … }
static INLINE void variance_kernel_sse2(const __m128i src_ptr,
const __m128i ref_ptr,
__m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance_final_128_pel_sse2(__m128i vsse, __m128i vsum,
unsigned int *const sse,
int *const sum) { … }
static INLINE void variance_final_256_pel_sse2(__m128i vsse, __m128i vsum,
unsigned int *const sse,
int *const sum) { … }
static INLINE void variance_final_512_pel_sse2(__m128i vsse, __m128i vsum,
unsigned int *const sse,
int *const sum) { … }
static INLINE __m128i sum_to_32bit_sse2(const __m128i sum) { … }
static INLINE int sum_final_sse2(const __m128i sum) { … }
static INLINE void variance4_sse2(const uint8_t *src_ptr, const int src_stride,
const uint8_t *ref_ptr, const int ref_stride,
const int h, __m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance8_sse2(const uint8_t *src_ptr, const int src_stride,
const uint8_t *ref_ptr, const int ref_stride,
const int h, __m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance16_kernel_sse2(const uint8_t *const src_ptr,
const uint8_t *const ref_ptr,
__m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance16_sse2(const uint8_t *src_ptr, const int src_stride,
const uint8_t *ref_ptr, const int ref_stride,
const int h, __m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance32_sse2(const uint8_t *src_ptr, const int src_stride,
const uint8_t *ref_ptr, const int ref_stride,
const int h, __m128i *const sse,
__m128i *const sum) { … }
static INLINE void variance64_sse2(const uint8_t *src_ptr, const int src_stride,
const uint8_t *ref_ptr, const int ref_stride,
const int h, __m128i *const sse,
__m128i *const sum) { … }
void vpx_get8x8var_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse, int *sum) { … }
void vpx_get16x16var_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse, int *sum) { … }
unsigned int vpx_variance4x4_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance4x8_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance8x4_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance8x8_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance8x16_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance16x8_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance16x16_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance16x32_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance32x16_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance32x32_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance32x64_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance64x32_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_variance64x64_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_mse8x8_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_mse8x16_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_mse16x8_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
unsigned int vpx_mse16x16_sse2(const uint8_t *src_ptr, int src_stride,
const uint8_t *ref_ptr, int ref_stride,
unsigned int *sse) { … }
#define DECL …
#define DECLS …
DECLS(sse2, sse2);
DECLS(ssse3, ssse3);
#undef DECLS
#undef DECL
#define FN …
#define FNS …
FNS
FNS
#undef FNS
#undef FN
#define DECL …
#define DECLS …
DECLS(sse2, sse2);
DECLS(ssse3, ssse3);
#undef DECL
#undef DECLS
#define FN …
#define FNS …
FNS
FNS
#undef FNS
#undef FN