#include <tmmintrin.h>
#include "config/av1_rtcd.h"
#include "config/aom_scale_rtcd.h"
#include "aom_dsp/x86/convolve_sse2.h"
#include "aom_dsp/x86/convolve_ssse3.h"
#include "aom_dsp/x86/mem_sse2.h"
#include "aom_dsp/x86/transpose_sse2.h"
#include "av1/common/resize.h"
static inline __m128i scale_plane_2_to_1_phase_0_kernel(
const uint8_t *const src, const __m128i *const mask) { … }
static inline void shuffle_filter_odd_ssse3(const int16_t *const filter,
__m128i *const f) { … }
static inline __m128i convolve8_8_even_offset_ssse3(const __m128i *const s,
const __m128i *const f) { … }
static inline __m128i convolve8_8_odd_offset_ssse3(const __m128i *const s,
const __m128i *const f) { … }
static void scale_plane_2_to_1_phase_0(const uint8_t *src,
const ptrdiff_t src_stride, uint8_t *dst,
const ptrdiff_t dst_stride,
const int dst_w, const int dst_h) { … }
static void scale_plane_4_to_1_phase_0(const uint8_t *src,
const ptrdiff_t src_stride, uint8_t *dst,
const ptrdiff_t dst_stride,
const int dst_w, const int dst_h) { … }
static inline __m128i scale_plane_bilinear_kernel(const __m128i *const s,
const __m128i c0c1) { … }
static void scale_plane_2_to_1_bilinear(const uint8_t *src,
const ptrdiff_t src_stride,
uint8_t *dst,
const ptrdiff_t dst_stride,
const int dst_w, const int dst_h,
const __m128i c0c1) { … }
static void scale_plane_4_to_1_bilinear(const uint8_t *src,
const ptrdiff_t src_stride,
uint8_t *dst,
const ptrdiff_t dst_stride,
const int dst_w, const int dst_h,
const __m128i c0c1) { … }
static void scale_plane_4_to_1_general(const uint8_t *src, const int src_stride,
uint8_t *dst, const int dst_stride,
const int w, const int h,
const int16_t *const coef,
uint8_t *const temp_buffer) { … }
static void scale_plane_2_to_1_general(const uint8_t *src, const int src_stride,
uint8_t *dst, const int dst_stride,
const int w, const int h,
const int16_t *const coef,
uint8_t *const temp_buffer) { … }
shuffle_filter_funcs;
convolve8_funcs;
static void scale_plane_4_to_3_general(const uint8_t *src, const int src_stride,
uint8_t *dst, const int dst_stride,
const int w, const int h,
const InterpKernel *const coef,
const int phase,
uint8_t *const temp_buffer) { … }
static inline __m128i scale_1_to_2_phase_0_kernel(const __m128i *const s,
const __m128i *const f) { … }
static void scale_1_to_2_phase_0_row(const uint8_t *src, uint8_t *dst,
const int w, const __m128i *const f) { … }
static void scale_plane_1_to_2_phase_0(const uint8_t *src,
const ptrdiff_t src_stride, uint8_t *dst,
const ptrdiff_t dst_stride,
const int src_w, const int src_h,
const int16_t *const coef,
uint8_t *const temp_buffer) { … }
static inline bool has_normative_scaler_ssse3(const int src_width,
const int src_height,
const int dst_width,
const int dst_height) { … }
void av1_resize_and_extend_frame_ssse3(const YV12_BUFFER_CONFIG *src,
YV12_BUFFER_CONFIG *dst,
const InterpFilter filter,
const int phase, const int num_planes) { … }