#ifndef AOM_AV1_COMMON_X86_AV1_INV_TXFM_SSSE3_H_
#define AOM_AV1_COMMON_X86_AV1_INV_TXFM_SSSE3_H_
#include <emmintrin.h>
#include <tmmintrin.h>
#include "config/aom_config.h"
#include "config/av1_rtcd.h"
#include "aom/aom_integer.h"
#include "aom_dsp/x86/transpose_sse2.h"
#ifdef __cplusplus
extern "C" {
#endif
#define btf_16_ssse3(w0, w1, in, out0, out1) …
#define btf_16_adds_subs_sse2(in0, in1) …
#define btf_16_subs_adds_sse2(in0, in1) …
#define btf_16_adds_subs_out_sse2(out0, out1, in0, in1) …
static inline void round_shift_16bit_ssse3(__m128i *in, int size, int bit) { … }
enum { … } UENUM1BYTE(…) …;
static const ITX_TYPE_1D vitx_1d_tab[TX_TYPES] = …;
static const ITX_TYPE_1D hitx_1d_tab[TX_TYPES] = …;
DECLARE_ALIGNED(16, static const int16_t, av1_eob_to_eobxy_8x8_default[8]) = …;
DECLARE_ALIGNED(16, static const int16_t,
av1_eob_to_eobxy_16x16_default[16]) = …;
DECLARE_ALIGNED(16, static const int16_t,
av1_eob_to_eobxy_32x32_default[32]) = …;
DECLARE_ALIGNED(16, static const int16_t, av1_eob_to_eobxy_8x16_default[16]) = …;
DECLARE_ALIGNED(16, static const int16_t, av1_eob_to_eobxy_16x8_default[8]) = …;
DECLARE_ALIGNED(16, static const int16_t,
av1_eob_to_eobxy_16x32_default[32]) = …;
DECLARE_ALIGNED(16, static const int16_t,
av1_eob_to_eobxy_32x16_default[16]) = …;
DECLARE_ALIGNED(16, static const int16_t, av1_eob_to_eobxy_8x32_default[32]) = …;
DECLARE_ALIGNED(16, static const int16_t, av1_eob_to_eobxy_32x8_default[8]) = …;
DECLARE_ALIGNED(16, static const int16_t *,
av1_eob_to_eobxy_default[TX_SIZES_ALL]) = …;
static const int lowbd_txfm_all_1d_zeros_idx[32] = …;
static const int tx_size_wide_log2_eob[TX_SIZES_ALL] = …;
static inline void get_eobx_eoby_scan_default(int *eobx, int *eoby,
TX_SIZE tx_size, int eob) { … }
static int eob_fill[32] = …;
static inline void get_eobx_eoby_scan_h_identity(int *eobx, int *eoby,
TX_SIZE tx_size, int eob) { … }
static inline void get_eobx_eoby_scan_v_identity(int *eobx, int *eoby,
TX_SIZE tx_size, int eob) { … }
transform_1d_ssse3;
void av1_lowbd_inv_txfm2d_add_ssse3(const int32_t *input, uint8_t *output,
int stride, TX_TYPE tx_type,
TX_SIZE tx_size, int eob);
void av1_lowbd_inv_txfm2d_add_idtx_ssse3(const int32_t *input, uint8_t *output,
int stride, TX_SIZE tx_size);
void av1_lowbd_inv_txfm2d_add_h_identity_ssse3(const int32_t *input,
uint8_t *output, int stride,
TX_TYPE tx_type, TX_SIZE tx_size,
int eob);
void av1_lowbd_inv_txfm2d_add_v_identity_ssse3(const int32_t *input,
uint8_t *output, int stride,
TX_TYPE tx_type, TX_SIZE tx_size,
int eob);
void av1_iadst8_low1_ssse3(const __m128i *input, __m128i *output);
void av1_idct8_low1_ssse3(const __m128i *input, __m128i *output);
#ifdef __cplusplus
}
#endif
#endif