chromium/third_party/libaom/source/libaom/av1/common/x86/av1_inv_txfm_ssse3.c

/*
 * Copyright (c) 2018, Alliance for Open Media. All rights reserved.
 *
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 */

#include "config/aom_config.h"
#include "config/av1_rtcd.h"

#include "av1/common/av1_inv_txfm1d_cfg.h"
#include "av1/common/x86/av1_inv_txfm_ssse3.h"
#include "av1/common/x86/av1_txfm_sse2.h"

// TODO([email protected]): move this to header file

// Sqrt2, Sqrt2^2, Sqrt2^3, Sqrt2^4, Sqrt2^5
static int32_t NewSqrt2list[TX_SIZES] =;

// TODO([email protected]): replace some for loop with do {} while

static void idct4_sse2(const __m128i *input, __m128i *output) {}

static void idct4_w4_sse2(const __m128i *input, __m128i *output) {}

void av1_idct8_low1_ssse3(const __m128i *input, __m128i *output) {}

void av1_idct8_sse2(const __m128i *input, __m128i *output) {}

static void idct8_w4_sse2(const __m128i *input, __m128i *output) {}

static inline void idct16_stage5_sse2(__m128i *x, const int32_t *cospi,
                                      const __m128i __rounding,
                                      int8_t cos_bit) {}

static inline void idct16_stage6_sse2(__m128i *x, const int32_t *cospi,
                                      const __m128i __rounding,
                                      int8_t cos_bit) {}

static inline void idct16_stage7_sse2(__m128i *output, __m128i *x) {}

static void idct16_low1_ssse3(const __m128i *input, __m128i *output) {}

static void idct16_low8_ssse3(const __m128i *input, __m128i *output) {}

static void idct16_sse2(const __m128i *input, __m128i *output) {}

static void idct16_w4_sse2(const __m128i *input, __m128i *output) {}

static inline void idct32_high16_stage3_sse2(__m128i *x) {}

static inline void idct32_high16_stage4_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct32_high24_stage5_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct32_high28_stage6_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct32_stage7_sse2(__m128i *x, const int32_t *cospi,
                                      const __m128i __rounding,
                                      int8_t cos_bit) {}

static inline void idct32_stage8_sse2(__m128i *x, const int32_t *cospi,
                                      const __m128i __rounding,
                                      int8_t cos_bit) {}

static inline void idct32_stage9_sse2(__m128i *output, __m128i *x) {}

static void idct32_low1_ssse3(const __m128i *input, __m128i *output) {}

static void idct32_low8_ssse3(const __m128i *input, __m128i *output) {}

static void idct32_low16_ssse3(const __m128i *input, __m128i *output) {}

static void idct32_sse2(const __m128i *input, __m128i *output) {}

static inline void idct64_stage4_high32_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage5_high48_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage6_high32_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage6_high48_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage7_high48_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage8_high48_sse2(__m128i *x, const int32_t *cospi,
                                             const __m128i __rounding,
                                             int8_t cos_bit) {}

static inline void idct64_stage9_sse2(__m128i *x, const int32_t *cospi,
                                      const __m128i __rounding,
                                      int8_t cos_bit) {}

static inline void idct64_stage10_sse2(__m128i *x, const int32_t *cospi,
                                       const __m128i __rounding,
                                       int8_t cos_bit) {}

static inline void idct64_stage11_sse2(__m128i *output, __m128i *x) {}

static void idct64_low1_ssse3(const __m128i *input, __m128i *output) {}

static void idct64_low8_ssse3(const __m128i *input, __m128i *output) {}

static void idct64_low16_ssse3(const __m128i *input, __m128i *output) {}

static void idct64_low32_ssse3(const __m128i *input, __m128i *output) {}

static void iadst4_sse2(const __m128i *input, __m128i *output) {}

static void iadst4_w4_sse2(const __m128i *input, __m128i *output) {}

void av1_iadst8_low1_ssse3(const __m128i *input, __m128i *output) {}

void av1_iadst8_sse2(const __m128i *input, __m128i *output) {}

static void iadst8_w4_sse2(const __m128i *input, __m128i *output) {}

static inline void iadst16_stage3_ssse3(__m128i *x) {}

static inline void iadst16_stage4_ssse3(__m128i *x, const int32_t *cospi,
                                        const __m128i __rounding,
                                        int8_t cos_bit) {}

static inline void iadst16_stage5_ssse3(__m128i *x) {}

static inline void iadst16_stage6_ssse3(__m128i *x, const int32_t *cospi,
                                        const __m128i __rounding,
                                        int8_t cos_bit) {}

static inline void iadst16_stage7_ssse3(__m128i *x) {}

static inline void iadst16_stage8_ssse3(__m128i *x, const int32_t *cospi,
                                        const __m128i __rounding,
                                        int8_t cos_bit) {}

static inline void iadst16_stage9_ssse3(__m128i *output, __m128i *x) {}

static void iadst16_low1_ssse3(const __m128i *input, __m128i *output) {}

static void iadst16_low8_ssse3(const __m128i *input, __m128i *output) {}
static void iadst16_sse2(const __m128i *input, __m128i *output) {}

static void iadst16_w4_sse2(const __m128i *input, __m128i *output) {}

static void iidentity4_ssse3(const __m128i *input, __m128i *output) {}

static void iidentity8_sse2(const __m128i *input, __m128i *output) {}

static void iidentity16_ssse3(const __m128i *input, __m128i *output) {}

static inline __m128i lowbd_get_recon_8x8_sse2(const __m128i pred,
                                               __m128i res) {}

static inline void lowbd_write_buffer_4xn_sse2(__m128i *in, uint8_t *output,
                                               int stride, int flipud,
                                               const int height) {}

static inline void lowbd_write_buffer_8xn_sse2(__m128i *in, uint8_t *output,
                                               int stride, int flipud,
                                               const int height) {}

// 1D functions process process 8 pixels at one time.
static const transform_1d_ssse3
    lowbd_txfm_all_1d_w8_arr[TX_SIZES][ITX_TYPES_1D] =;

// functions for blocks with eob at DC and within
// topleft 8x8, 16x16, 32x32 corner
static const transform_1d_ssse3
    lowbd_txfm_all_1d_zeros_w8_arr[TX_SIZES][ITX_TYPES_1D][4] =;

// 1D functions process process 4 pixels at one time.
// used in 4x4, 4x8, 4x16, 8x4, 16x4
static const transform_1d_ssse3
    lowbd_txfm_all_1d_w4_arr[TX_SIZES][ITX_TYPES_1D] =;

static inline void iidentity_row_8xn_ssse3(__m128i *out, const int32_t *input,
                                           int stride, int shift, int height,
                                           int txw_idx, int rect_type) {}

static inline void iidentity_col_8xn_ssse3(uint8_t *output, int stride,
                                           __m128i *buf, int shift, int height,
                                           int txh_idx) {}

void av1_lowbd_inv_txfm2d_add_idtx_ssse3(const int32_t *input, uint8_t *output,
                                         int stride, TX_SIZE tx_size) {}

static void lowbd_inv_txfm2d_add_4x4_ssse3(const int32_t *input,
                                           uint8_t *output, int stride,
                                           TX_TYPE tx_type, TX_SIZE tx_size_,
                                           int eob) {}

static inline __m128i lowbd_get_recon_16x16_sse2(const __m128i pred,
                                                 __m128i res0, __m128i res1) {}

static inline void lowbd_write_buffer_16xn_sse2(__m128i *in, uint8_t *output,
                                                int stride, int flipud,
                                                int height) {}

static inline void round_shift_ssse3(const __m128i *input, __m128i *output,
                                     int size) {}

static inline void lowbd_inv_txfm2d_add_no_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_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) {}

// for 32x32,32x64,64x32,64x64,32x8,8x32,16x32,32x16,64x16,16x64
static inline void lowbd_inv_txfm2d_add_universe_ssse3(
    const int32_t *input, uint8_t *output, int stride, TX_TYPE tx_type,
    TX_SIZE tx_size, int eob) {}

static void lowbd_inv_txfm2d_add_4x8_ssse3(const int32_t *input,
                                           uint8_t *output, int stride,
                                           TX_TYPE tx_type, TX_SIZE tx_size_,
                                           int eob) {}

static void lowbd_inv_txfm2d_add_8x4_ssse3(const int32_t *input,
                                           uint8_t *output, int stride,
                                           TX_TYPE tx_type, TX_SIZE tx_size_,
                                           int eob) {}

static void lowbd_inv_txfm2d_add_4x16_ssse3(const int32_t *input,
                                            uint8_t *output, int stride,
                                            TX_TYPE tx_type, TX_SIZE tx_size_,
                                            int eob) {}

static void lowbd_inv_txfm2d_add_16x4_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_ssse3(const int32_t *input, uint8_t *output,
                                    int stride, TX_TYPE tx_type,
                                    TX_SIZE tx_size, int eob) {}

void av1_inv_txfm_add_ssse3(const tran_low_t *dqcoeff, uint8_t *dst, int stride,
                            const TxfmParam *txfm_param) {}