chromium/third_party/libaom/source/libaom/aom_dsp/x86/intrapred_sse4.c

/*
 * Copyright (c) 2021, 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 <emmintrin.h>  // SSE2
#include <smmintrin.h>  /* SSE4.1 */

#include "config/av1_rtcd.h"
#include "aom_dsp/x86/intrapred_x86.h"
#include "aom_dsp/x86/intrapred_utils.h"
#include "aom_dsp/x86/lpf_common_sse2.h"

// Low bit depth functions
static DECLARE_ALIGNED(16, uint8_t, Mask[2][33][16]) =;

/* clang-format on */
static AOM_FORCE_INLINE void dr_prediction_z1_HxW_internal_sse4_1(
    int H, int W, __m128i *dst, const uint8_t *above, int upsample_above,
    int dx) {}

static void dr_prediction_z1_4xN_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *above,
                                        int upsample_above, int dx) {}

static void dr_prediction_z1_8xN_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *above,
                                        int upsample_above, int dx) {}

static void dr_prediction_z1_16xN_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *above,
                                         int upsample_above, int dx) {}

static AOM_FORCE_INLINE void dr_prediction_z1_32xN_internal_sse4_1(
    int N, __m128i *dstvec, __m128i *dstvec_h, const uint8_t *above,
    int upsample_above, int dx) {}

static void dr_prediction_z1_32xN_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *above,
                                         int upsample_above, int dx) {}

static void dr_prediction_z1_64xN_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *above,
                                         int upsample_above, int dx) {}

// Directional prediction, zone 1: 0 < angle < 90
void av1_dr_prediction_z1_sse4_1(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
                                 const uint8_t *above, const uint8_t *left,
                                 int upsample_above, int dx, int dy) {}

static void dr_prediction_z2_Nx4_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *above,
                                        const uint8_t *left, int upsample_above,
                                        int upsample_left, int dx, int dy) {}

static void dr_prediction_z2_Nx8_sse4_1(int N, uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *above,
                                        const uint8_t *left, int upsample_above,
                                        int upsample_left, int dx, int dy) {}

static void dr_prediction_z2_HxW_sse4_1(int H, int W, uint8_t *dst,
                                        ptrdiff_t stride, const uint8_t *above,
                                        const uint8_t *left, int upsample_above,
                                        int upsample_left, int dx, int dy) {}

// Directional prediction, zone 2: 90 < angle < 180
void av1_dr_prediction_z2_sse4_1(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
                                 const uint8_t *above, const uint8_t *left,
                                 int upsample_above, int upsample_left, int dx,
                                 int dy) {}

// z3 functions
static void dr_prediction_z3_4x4_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *left, int upsample_left,
                                        int dy) {}

static void dr_prediction_z3_8x8_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *left, int upsample_left,
                                        int dy) {}

static void dr_prediction_z3_4x8_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *left, int upsample_left,
                                        int dy) {}

static void dr_prediction_z3_8x4_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                        const uint8_t *left, int upsample_left,
                                        int dy) {}

static void dr_prediction_z3_8x16_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_16x8_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_4x16_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_16x4_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_8x32_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_32x8_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                         const uint8_t *left, int upsample_left,
                                         int dy) {}

static void dr_prediction_z3_16x16_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_32x32_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_64x64_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_16x32_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_32x16_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_32x64_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_64x32_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_16x64_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

static void dr_prediction_z3_64x16_sse4_1(uint8_t *dst, ptrdiff_t stride,
                                          const uint8_t *left,
                                          int upsample_left, int dy) {}

void av1_dr_prediction_z3_sse4_1(uint8_t *dst, ptrdiff_t stride, int bw, int bh,
                                 const uint8_t *above, const uint8_t *left,
                                 int upsample_left, int dx, int dy) {}