#ifndef VPX_VPX_DSP_X86_CONVOLVE_AVX2_H_
#define VPX_VPX_DSP_X86_CONVOLVE_AVX2_H_
#include <immintrin.h>
#include "./vpx_config.h"
#if defined(__clang__)
#if (__clang_major__ > 0 && __clang_major__ < 3) || \
(__clang_major__ == 3 && __clang_minor__ <= 3) || \
(defined(__APPLE__) && defined(__apple_build_version__) && \
((__clang_major__ == 4 && __clang_minor__ <= 2) || \
(__clang_major__ == 5 && __clang_minor__ == 0)))
#define MM256_BROADCASTSI128_SI256 …
#else
#define MM256_BROADCASTSI128_SI256 …
#endif
#elif defined(__GNUC__)
#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 6)
#define MM256_BROADCASTSI128_SI256 …
#elif __GNUC__ == 4 && __GNUC_MINOR__ == 7
#define MM256_BROADCASTSI128_SI256 …
#else
#define MM256_BROADCASTSI128_SI256 …
#endif
#else
#define MM256_BROADCASTSI128_SI256 …
#endif
static INLINE void shuffle_filter_avx2(const int16_t *const filter,
__m256i *const f) { … }
static INLINE __m256i convolve8_16_avx2(const __m256i *const s,
const __m256i *const f) { … }
static INLINE __m128i convolve8_8_avx2(const __m256i *const s,
const __m256i *const f) { … }
static INLINE __m256i mm256_loadu2_si128(const void *lo, const void *hi) { … }
static INLINE __m256i mm256_loadu2_epi64(const void *lo, const void *hi) { … }
static INLINE void mm256_store2_si128(__m128i *const dst_ptr_1,
__m128i *const dst_ptr_2,
const __m256i *const src) { … }
static INLINE void mm256_storeu2_epi64(__m128i *const dst_ptr_1,
__m128i *const dst_ptr_2,
const __m256i *const src) { … }
static INLINE void mm256_storeu2_epi32(__m128i *const dst_ptr_1,
__m128i *const dst_ptr_2,
const __m256i *const src) { … }
static INLINE __m256i mm256_round_epi32(const __m256i *const src,
const __m256i *const half_depth,
const int depth) { … }
static INLINE __m256i mm256_round_epi16(const __m256i *const src,
const __m256i *const half_depth,
const int depth) { … }
static INLINE __m256i mm256_madd_add_epi32(const __m256i *const src_0,
const __m256i *const src_1,
const __m256i *const ker_0,
const __m256i *const ker_1) { … }
#undef MM256_BROADCASTSI128_SI256
#endif