#ifndef AOM_AOM_DSP_X86_TXFM_COMMON_AVX2_H_
#define AOM_AOM_DSP_X86_TXFM_COMMON_AVX2_H_
#include <emmintrin.h>
#include "aom/aom_integer.h"
#include "aom_dsp/x86/synonyms.h"
#ifdef __cplusplus
extern "C" {
#endif
static inline __m256i pair_set_w16_epi16(int16_t a, int16_t b) { … }
static inline void btf_16_w16_avx2(const __m256i w0, const __m256i w1,
__m256i *in0, __m256i *in1, const __m256i _r,
const int32_t cos_bit) { … }
static inline void btf_16_adds_subs_avx2(__m256i *in0, __m256i *in1) { … }
static inline void btf_32_add_sub_avx2(__m256i *in0, __m256i *in1) { … }
static inline void btf_16_adds_subs_out_avx2(__m256i *out0, __m256i *out1,
__m256i in0, __m256i in1) { … }
static inline void btf_32_add_sub_out_avx2(__m256i *out0, __m256i *out1,
__m256i in0, __m256i in1) { … }
static inline __m256i load_16bit_to_16bit_avx2(const int16_t *a) { … }
static inline void load_buffer_16bit_to_16bit_avx2(const int16_t *in,
int stride, __m256i *out,
int out_size) { … }
static inline void load_buffer_16bit_to_16bit_flip_avx2(const int16_t *in,
int stride,
__m256i *out,
int out_size) { … }
static inline __m256i load_32bit_to_16bit_w16_avx2(const int32_t *a) { … }
static inline void load_buffer_32bit_to_16bit_w16_avx2(const int32_t *in,
int stride, __m256i *out,
int out_size) { … }
static inline void transpose2_8x8_avx2(const __m256i *const in,
__m256i *const out) { … }
static inline void transpose_16bit_16x16_avx2(const __m256i *const in,
__m256i *const out) { … }
static inline void transpose_16bit_16x8_avx2(const __m256i *const in,
__m256i *const out) { … }
static inline void flip_buf_avx2(__m256i *in, __m256i *out, int size) { … }
static inline void round_shift_16bit_w16_avx2(__m256i *in, int size, int bit) { … }
static inline __m256i round_shift_32_avx2(__m256i vec, int bit) { … }
static inline void round_shift_array_32_avx2(__m256i *input, __m256i *output,
const int size, const int bit) { … }
static inline void round_shift_rect_array_32_avx2(__m256i *input,
__m256i *output,
const int size, const int bit,
const int val) { … }
static inline __m256i scale_round_avx2(const __m256i a, const int scale) { … }
static inline void store_rect_16bit_to_32bit_w8_avx2(const __m256i a,
int32_t *const b) { … }
static inline void store_rect_buffer_16bit_to_32bit_w8_avx2(
const __m256i *const in, int32_t *const out, const int stride,
const int out_size) { … }
static inline void pack_reg(const __m128i *in1, const __m128i *in2,
__m256i *out) { … }
static inline void extract_reg(const __m256i *in, __m128i *out1) { … }
#ifdef __cplusplus
}
#endif
#endif