#include <emmintrin.h>
#include <immintrin.h>
#include "config/av1_rtcd.h"
#include "aom_dsp/aom_dsp_common.h"
#include "aom_dsp/aom_filter.h"
#include "aom_dsp/x86/convolve_avx2.h"
#include "aom_dsp/x86/convolve_common_intrin.h"
#include "aom_dsp/x86/convolve_sse4_1.h"
#include "aom_dsp/x86/mem_sse2.h"
#include "aom_dsp/x86/synonyms_avx2.h"
#include "av1/common/convolve.h"
static inline __m256i unpack_weights_avx2(ConvolveParams *conv_params) { … }
static inline __m256i load_line2_avx2(const void *a, const void *b) { … }
void av1_dist_wtd_convolve_x_avx2(const uint8_t *src, int src_stride,
uint8_t *dst0, int dst_stride0, int w, int h,
const InterpFilterParams *filter_params_x,
const int subpel_x_qn,
ConvolveParams *conv_params) { … }
void av1_dist_wtd_convolve_y_avx2(const uint8_t *src, int src_stride,
uint8_t *dst0, int dst_stride0, int w, int h,
const InterpFilterParams *filter_params_y,
const int subpel_y_qn,
ConvolveParams *conv_params) { … }
void av1_dist_wtd_convolve_2d_avx2(const uint8_t *src, int src_stride,
uint8_t *dst0, int dst_stride0, int w, int h,
const InterpFilterParams *filter_params_x,
const InterpFilterParams *filter_params_y,
const int subpel_x_qn, const int subpel_y_qn,
ConvolveParams *conv_params) { … }
#define DO_NO_AVG_2D_COPY_4X16(r0, c0, r1, c1, r2, c2, r3, c3) …
#define LEFT_SHIFT …
static inline void av1_dist_wtd_convolve_2d_no_avg_copy_avx2(
const uint8_t *src, int src_stride, CONV_BUF_TYPE *dst, int dst_stride,
int w, int h, const __m256i offset_const) { … }
#define DO_AVG_2D_COPY_4X16(USE_DIST_WEIGHTED, r0, c0, r1, c1, r2, c2, r3, c3) …
#define DO_AVG_2D_COPY(USE_DIST_WEIGHTED) …
void av1_dist_wtd_convolve_2d_copy_avx2(const uint8_t *src, int src_stride,
uint8_t *dst0, int dst_stride0, int w,
int h, ConvolveParams *conv_params) { … }
#undef LEFT_SHIFT