#include <emmintrin.h>
#include "./vpx_dsp_rtcd.h"
#include "vpx_ports/mem.h"
#include "vpx_ports/emmintrin_compat.h"
#include "vpx_dsp/x86/mem_sse2.h"
static INLINE __m128i abs_diff(__m128i a, __m128i b) { … }
#define FILTER_HEV_MASK …
#define FILTER4 …
void vpx_lpf_horizontal_4_sse2(uint8_t *s, int pitch, const uint8_t *blimit,
const uint8_t *limit, const uint8_t *thresh) { … }
void vpx_lpf_vertical_4_sse2(uint8_t *s, int pitch, const uint8_t *blimit,
const uint8_t *limit, const uint8_t *thresh) { … }
void vpx_lpf_horizontal_16_sse2(unsigned char *s, int pitch,
const unsigned char *blimit,
const unsigned char *limit,
const unsigned char *thresh) { … }
static INLINE __m128i filter_add2_sub2(const __m128i *const total,
const __m128i *const a1,
const __m128i *const a2,
const __m128i *const s1,
const __m128i *const s2) { … }
static INLINE __m128i filter8_mask(const __m128i *const flat,
const __m128i *const other_filt,
const __m128i *const f8_lo,
const __m128i *const f8_hi) { … }
static INLINE __m128i filter16_mask(const __m128i *const flat,
const __m128i *const other_filt,
const __m128i *const f_lo,
const __m128i *const f_hi) { … }
void vpx_lpf_horizontal_16_dual_sse2(unsigned char *s, int pitch,
const unsigned char *blimit,
const unsigned char *limit,
const unsigned char *thresh) { … }
void vpx_lpf_horizontal_8_sse2(unsigned char *s, int pitch,
const unsigned char *blimit,
const unsigned char *limit,
const unsigned char *thresh) { … }
void vpx_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) { … }
void vpx_lpf_horizontal_4_dual_sse2(unsigned char *s, int pitch,
const unsigned char *blimit0,
const unsigned char *limit0,
const unsigned char *thresh0,
const unsigned char *blimit1,
const unsigned char *limit1,
const unsigned char *thresh1) { … }
static INLINE void transpose8x16(unsigned char *in0, unsigned char *in1,
int in_p, unsigned char *out, int out_p) { … }
static INLINE void transpose(unsigned char *src[], int in_p,
unsigned char *dst[], int out_p,
int num_8x8_to_transpose) { … }
void vpx_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) { … }
void vpx_lpf_vertical_8_sse2(unsigned char *s, int pitch,
const unsigned char *blimit,
const unsigned char *limit,
const unsigned char *thresh) { … }
void vpx_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) { … }
void vpx_lpf_vertical_16_sse2(unsigned char *s, int pitch,
const unsigned char *blimit,
const unsigned char *limit,
const unsigned char *thresh) { … }
void vpx_lpf_vertical_16_dual_sse2(unsigned char *s, int pitch,
const uint8_t *blimit, const uint8_t *limit,
const uint8_t *thresh) { … }