#include <assert.h>
#include <emmintrin.h>
#include <stdio.h>
#include "aom_dsp/x86/synonyms.h"
#include "aom_dsp/x86/sum_squares_sse2.h"
#include "config/aom_dsp_rtcd.h"
static inline __m128i xx_loadh_64(__m128i a, const void *b) { … }
static inline uint64_t xx_cvtsi128_si64(__m128i a) { … }
static inline __m128i sum_squares_i16_4x4_sse2(const int16_t *src, int stride) { … }
uint64_t aom_sum_squares_2d_i16_4x4_sse2(const int16_t *src, int stride) { … }
uint64_t aom_sum_sse_2d_i16_4x4_sse2(const int16_t *src, int stride, int *sum) { … }
uint64_t aom_sum_squares_2d_i16_4xn_sse2(const int16_t *src, int stride,
int height) { … }
uint64_t aom_sum_sse_2d_i16_4xn_sse2(const int16_t *src, int stride, int height,
int *sum) { … }
#ifdef __GNUC__
__attribute__((noinline))
#endif
uint64_t
aom_sum_squares_2d_i16_nxn_sse2(const int16_t *src, int stride, int width,
int height) { … }
#ifdef __GNUC__
__attribute__((noinline))
#endif
uint64_t
aom_sum_sse_2d_i16_nxn_sse2(const int16_t *src, int stride, int width,
int height, int *sum) { … }
uint64_t aom_sum_squares_2d_i16_sse2(const int16_t *src, int stride, int width,
int height) { … }
uint64_t aom_sum_sse_2d_i16_sse2(const int16_t *src, int src_stride, int width,
int height, int *sum) { … }
static uint64_t aom_sum_squares_i16_64n_sse2(const int16_t *src, uint32_t n) { … }
uint64_t aom_sum_squares_i16_sse2(const int16_t *src, uint32_t n) { … }
static inline int32_t mm_accumulate_epi16(__m128i vec_a) { … }
static inline int32_t mm_accumulate_epi32(__m128i vec_a) { … }
uint64_t aom_var_2d_u8_sse2(uint8_t *src, int src_stride, int width,
int height) { … }
uint64_t aom_var_2d_u16_sse2(uint8_t *src, int src_stride, int width,
int height) { … }