/*
 * Copyright (c) 2016, 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.
 */

//  Test and time AOM intra-predictor functions

#include <stdio.h>
#include <string>

#include "third_party/googletest/src/googletest/include/gtest/gtest.h"

#include "config/aom_dsp_rtcd.h"

#include "test/acm_random.h"
#include "test/clear_system_state.h"
#include "test/md5_helper.h"
#include "aom/aom_integer.h"
#include "aom_ports/mem.h"
#include "aom_ports/aom_timer.h"
#include "av1/common/common_data.h"

// -----------------------------------------------------------------------------

namespace {

// Note:
// APPLY_UNIT_TESTS
// 1: Do unit tests
// 0: Generate MD5 array as required
#define APPLY_UNIT_TESTS 1

typedef void (*AvxPredFunc)(uint8_t *dst, ptrdiff_t y_stride,
                            const uint8_t *above, const uint8_t *left);

const int kBPS = 64;
const int kTotalPixels = kBPS * kBPS;
// 4 DC variants, V, H, PAETH, SMOOTH, SMOOTH_V, SMOOTH_H
const int kNumAv1IntraFuncs = 10;

#if APPLY_UNIT_TESTS
const char *kAv1IntraPredNames[kNumAv1IntraFuncs] = {
  "DC_PRED", "DC_LEFT_PRED", "DC_TOP_PRED", "DC_128_PRED",   "V_PRED",
  "H_PRED",  "PAETH_PRED",   "SMOOTH_PRED", "SMOOTH_V_PRED", "SMOOTH_H_PRED",
};
#endif  // APPLY_UNIT_TESTS

template <typename Pixel>
struct IntraPredTestMem {
  void Init(int block_width, int block_height, int bd) {
    ASSERT_LE(block_width, kBPS);
    ASSERT_LE(block_height, kBPS);
    // Note: for blocks having width <= 32 and height <= 32, we generate 32x32
    // random pixels as before to avoid having to recalculate all hashes again.
    const int block_size_upto_32 = (block_width <= 32) && (block_height <= 32);
    stride = block_size_upto_32 ? 32 : kBPS;
    num_pixels = stride * stride;
    libaom_test::ACMRandom rnd(libaom_test::ACMRandom::DeterministicSeed());
    above = above_mem + 16;
    const int mask = (1 << bd) - 1;
    for (int i = 0; i < num_pixels; ++i) ref_src[i] = rnd.Rand16() & mask;
    for (int i = 0; i < stride; ++i) left[i] = rnd.Rand16() & mask;
    for (int i = -1; i < stride; ++i) above[i] = rnd.Rand16() & mask;

    for (int i = stride; i < 2 * stride; ++i) {
      left[i] = rnd.Rand16() & mask;
      above[i] = rnd.Rand16() & mask;
    }
  }

  DECLARE_ALIGNED(16, Pixel, src[kTotalPixels]);
  DECLARE_ALIGNED(16, Pixel, ref_src[kTotalPixels]);
  DECLARE_ALIGNED(16, Pixel, left[2 * kBPS]);
  Pixel *above;
  int stride;
  int num_pixels;

 private:
  DECLARE_ALIGNED(16, Pixel, above_mem[2 * kBPS + 16]);
};

// -----------------------------------------------------------------------------
// Low Bittdepth

typedef IntraPredTestMem<uint8_t> Av1IntraPredTestMem;

static const char *const kTxSizeStrings[TX_SIZES_ALL] = {
  "4X4",  "8X8",  "16X16", "32X32", "64X64", "4X8",   "8X4",
  "8X16", "16X8", "16X32", "32X16", "32X64", "64X32", "4X16",
  "16X4", "8X32", "32X8",  "16X64", "64X16",
#if CONFIG_FLEX_PARTITION
  "4X32", "32X4", "8X64",  "64X8",  "4X64",  "64X4",
#endif  // CONFIG_FLEX_PARTITION
};

void CheckMd5Signature(TX_SIZE tx_size, bool is_hbd,
                       const char *const signatures[], const void *data,
                       size_t data_size, int elapsed_time, int idx) {
  const std::string hbd_str = is_hbd ? "Hbd " : "";
  const std::string name_str = hbd_str + "Intra" + kTxSizeStrings[tx_size];
  libaom_test::MD5 md5;
  md5.Add(reinterpret_cast<const uint8_t *>(data), data_size);
#if APPLY_UNIT_TESTS
  printf("Mode %s[%13s]: %5d ms     MD5: %s\n", name_str.c_str(),
         kAv1IntraPredNames[idx], elapsed_time, md5.Get());
  EXPECT_STREQ(signatures[idx], md5.Get());
#else
  (void)signatures;
  (void)elapsed_time;
  (void)idx;
  printf("\"%s\",\n", md5.Get());
#endif
}

void TestIntraPred(TX_SIZE tx_size, AvxPredFunc const *pred_funcs,
                   const char *const signatures[]) {
  const int block_width = tx_size_wide[tx_size];
  const int block_height = tx_size_high[tx_size];
  const int num_pixels_per_test =
      block_width * block_height * kNumAv1IntraFuncs;
  const int kNumTests = static_cast<int>(2.e10 / num_pixels_per_test);
  Av1IntraPredTestMem intra_pred_test_mem;
  intra_pred_test_mem.Init(block_width, block_height, 8);

  for (int k = 0; k < kNumAv1IntraFuncs; ++k) {
    if (pred_funcs[k] == NULL) continue;
    memcpy(intra_pred_test_mem.src, intra_pred_test_mem.ref_src,
           sizeof(intra_pred_test_mem.src));
    aom_usec_timer timer;
    aom_usec_timer_start(&timer);
    for (int num_tests = 0; num_tests < kNumTests; ++num_tests) {
      pred_funcs[k](intra_pred_test_mem.src, intra_pred_test_mem.stride,
                    intra_pred_test_mem.above, intra_pred_test_mem.left);
    }
    libaom_test::ClearSystemState();
    aom_usec_timer_mark(&timer);
    const int elapsed_time =
        static_cast<int>(aom_usec_timer_elapsed(&timer) / 1000);
    CheckMd5Signature(
        tx_size, false, signatures, intra_pred_test_mem.src,
        intra_pred_test_mem.num_pixels * sizeof(*intra_pred_test_mem.src),
        elapsed_time, k);
  }
}

static const char *const kSignatures[TX_SIZES_ALL][kNumAv1IntraFuncs] = {
  {
      // 4X4
      "e7ed7353c3383fff942e500e9bfe82fe",
      "2a4a26fcc6ce005eadc08354d196c8a9",
      "269d92eff86f315d9c38fe7640d85b15",
      "ae2960eea9f71ee3dabe08b282ec1773",
      "6c1abcc44e90148998b51acd11144e9c",
      "f7bb3186e1ef8a2b326037ff898cad8e",
      "59fc0e923a08cfac0a493fb38988e2bb",
      "9ff8bb37d9c830e6ab8ecb0c435d3c91",
      "de6937fca02354f2874dbc5dbec5d5b3",
      "723cf948137f7d8c7860d814e55ae67d",
  },
  {
      // 8X8
      "d8bbae5d6547cfc17e4f5f44c8730e88",
      "373bab6d931868d41a601d9d88ce9ac3",
      "6fdd5ff4ff79656c14747598ca9e3706",
      "d9661c2811d6a73674f40ffb2b841847",
      "7c722d10b19ccff0b8c171868e747385",
      "f81dd986eb2b50f750d3a7da716b7e27",
      "064404361748dd111a890a1470d7f0ea",
      "dc29b7e1f78cc8e7525d5ea4c0ab9b78",
      "97111eb1bc26bade6272015df829f1ae",
      "d19a8a73cc46b807f2c5e817576cc1e1",
  },
  {
      // 16X16
      "50971c07ce26977d30298538fffec619",
      "527a6b9e0dc5b21b98cf276305432bef",
      "7eff2868f80ebc2c43a4f367281d80f7",
      "67cd60512b54964ef6aff1bd4816d922",
      "48371c87dc95c08a33b2048f89cf6468",
      "b0acf2872ee411d7530af6d2625a7084",
      "93d6b5352b571805ab16a55e1bbed86a",
      "03764e4c0aebbc180e4e2c68fb06df2b",
      "bb6c74c9076c9f266ab11fb57060d8e6",
      "0c5162bc28489756ddb847b5678e6f07",
  },
  {
      // 32X32
      "a0a618c900e65ae521ccc8af789729f2",
      "985aaa7c72b4a6c2fb431d32100cf13a",
      "10662d09febc3ca13ee4e700120daeb5",
      "b3b01379ba08916ef6b1b35f7d9ad51c",
      "9f4261755795af97e34679c333ec7004",
      "bc2c9da91ad97ef0d1610fb0a9041657",
      "ef1653982b69e1f64bee3759f3e1ec45",
      "1a51a675deba2c83282142eb48d3dc3d",
      "866c224746dc260cda861a7b1b383fb3",
      "cea23799fc3526e1b6a6ff02b42b82af",
  },
  {
      // 64X64
      "6e1094fa7b50bc813aa2ba29f5df8755",
      "afe020786b83b793c2bbd9468097ff6e",
      "be91585259bc37bf4dc1651936e90b3e",
      "a1650dbcd56e10288c3e269eca37967d",
      "9e5c34f3797e0cdd3cd9d4c05b0d8950",
      "bc87be7ac899cc6a28f399d7516c49fe",
      "9811fd0d2dd515f06122f5d1bd18b784",
      "3c140e466f2c2c0d9cb7d2157ab8dc27",
      "9543de76c925a8f6adc884cc7f98dc91",
      "df1df0376cc944afe7e74e94f53e575a",
  },
  {
      // 4X8
      "d9fbebdc85f71ab1e18461b2db4a2adc",
      "5ccb2a68284bc9714d94b8a06ccadbb2",
      "735d059abc2744f3ff3f9590f7191b37",
      "d9fbebdc85f71ab1e18461b2db4a2adc",
      "6819497c44cd0ace120add83672996ee",
      "7e3244f5a2d3edf81c7e962a842b97f9",
      "809350f164cd4d1650850bb0f59c3260",
      "1b60a394331eeab6927a6f8aaff57040",
      "5307de1bd7329ba6b281d2c1b0b457f9",
      "24c58a8138339846d95568efb91751db",
  },
  {
      // 8X4
      "23f9fc11344426c9bee2e06d57dfd628",
      "2d71a26d1bae1fb34734de7b42fc5eb7",
      "5af9c1b2fd9d5721fad67b67b3f7c816",
      "00d71b17be662753813d515f197d145e",
      "bef10ec984427e28f4390f43809d10af",
      "77773cdfb7ed6bc882ab202a64b0a470",
      "2cc48bd66d6b0121b5221d52ccd732af",
      "b302155e1c9eeeafe2ba2bf68e807a46",
      "561bc8d0e76d5041ebd5168fc6a115e1",
      "81d0113fb1d0a9a24ffd6f1987b77948",
  },
  {
      // 8X16
      "c849de88b24f773dfcdd1d48d1209796",
      "6cb807c1897b94866a0f3d3c56ed8695",
      "d56db05a8ac7981762f5b877f486c4ef",
      "b4bc01eb6e59a40922ad17715cafb04b",
      "09d178439534f4062ae687c351f66d64",
      "644501399cf73080ac606e5cef7ca09b",
      "278076495180e17c065a95ab7278539a",
      "9dd7f324816f242be408ffeb0c673732",
      "f520c4a20acfa0bea1d253c6f0f040fd",
      "85f38df809df2c2d7c8b4a157a65cd44",
  },
  {
      // 16X8
      "b4cbdbdf10ce13300b4063a3daf99e04",
      "3731e1e6202064a9d0604d7c293ecee4",
      "6c856188c4256a06452f0d5d70cac436",
      "1f2192b4c8c497589484ea7bf9c944e8",
      "84011bd4b7f565119d06787840e333a0",
      "0e48949f7a6aa36f0d76b5d01f91124a",
      "60eff8064634b6c73b10681356baeee9",
      "1559aeb081a9c0c71111d6093c2ff9fd",
      "c15479b739713773e5cabb748451987b",
      "72e33ec12c9b67aea26d8d005fb82de2",
  },
  {
      // 16X32
      "abe5233d189cdbf79424721571bbaa7b",
      "282759f81e3cfb2e2d396fe406b72a8b",
      "e2224926c264f6f174cbc3167a233168",
      "6814e85c2b33f8c9415d62e80394b47b",
      "99cbbb60459c08a3061d72c4e4f6276a",
      "1d1567d40b8e816f8c1f71e576fe0f87",
      "36fdd371b624a075814d497c4832ec85",
      "8ab8da61b727442b6ff692b40d0df018",
      "e35a10ad7fdf2327e821504a90f6a6eb",
      "1f7211e727dc1de7d6a55d082fbdd821",
  },
  {
      // 32X16
      "d1aeb8d5fdcfd3307922af01a798a4dc",
      "b0bcb514ebfbee065faea9d34c12ae75",
      "d6a18c63b4e909871c0137ca652fad23",
      "fd047f2fc1b8ffb95d0eeef3e8796a45",
      "645ab60779ea348fd93c81561c31bab9",
      "4409633c9db8dff41ade4292a3a56e7f",
      "5e36a11e069b31c2a739f3a9c7b37c24",
      "e83b9483d702cfae496991c3c7fa92c0",
      "12f6ddf98c7f30a277307f1ea935b030",
      "354321d6c32bbdb0739e4fa2acbf41e1",
  },
  {
      // 32X64
      "0ce332b343934b34cd4417725faa85cb",
      "4e2a2cfd8f56f15939bdfc753145b303",
      "0f46d124ba9f48cdd5d5290acf786d6d",
      "e1e8ed803236367821981500a3d9eebe",
      "1d2f8e48e3adb7c448be05d9f66f4954",
      "9fb2e176636a5689b26f73ca73fcc512",
      "e720ebccae7e25e36f23da53ae5b5d6a",
      "86fe4364734169aaa4520d799890d530",
      "b1870290764bb1b100d1974e2bd70f1d",
      "ce5b238e19d85ef69d85badfab4e63ae",
  },
  {
      // 64X32
      "a6c5aeb722615089efbca80b02951ceb",
      "538424b24bd0830f21788e7238ca762f",
      "80c15b303235f9bc2259027bb92dfdc4",
      "e48e1ac15e97191a8fda08d62fff343e",
      "12604b37875533665078405ef4582e35",
      "0048afa17bd3e1632d68b96048836530",
      "07a0cfcb56a5eed50c4bd6c26814336b",
      "529d8a070de5bc6531fa3ee8f450c233",
      "33c50a11c7d78f72434064f634305e95",
      "e0ef7f0559c1a50ec5a8c12011b962f7",
  },
  {
      // 4X16
      "750491056568eb8fe15387b86bdf06b8",
      "3a52dae9f599f08cfb3bd1b910dc0e11",
      "af79f71e3e03dbeca44e2e13561f70c7",
      "ca7dfd7624afc0c06fb5552f44398535",
      "b591af115444bf43140c29c269f68fb2",
      "483d942ae36e69e62f31eb215331416f",
      "f14b58525e81870bc5d95c7ac71a347f",
      "371208bb4027d9badb04095d1590bbc4",
      "c7049c21b2924d70c7c12784d6b6b796",
      "7d87233f4b5b0f12086045e5d7b2d4c2",
  },
  {
      // 16X4
      "7c6e325a65e77e732b3adbe237e045e4",
      "24478f93ffcec47852e004d0fe948464",
      "258d042c67d4ba3ecfa667f0adc9aebf",
      "b2cd21d06959f159a1f3c4d9768ee7fb",
      "b4e1f38157bf8410e7c3da02f687a343",
      "869e703729eb0fc0711c254944ff5d5a",
      "9638dd77105a640b146a8201ea7a0801",
      "919d932c6af8a1cc7486e8ce996dd487",
      "e1c9be493b6714c7ae48f30044c43140",
      "bf0fe3889d654b2f6eb98c8fc751f9e4",
  },
  {
      // 8X32
      "8dfac4319fe0bd40013ffb3102da8c72",
      "feb46b6dc4e2ca0a09533bfc51d4dcb0",
      "850837ec714c37262216527aaf4cbbe9",
      "4603c7800fb08361f163daca876e8bda",
      "1ff95e7d2debc27b05806fb25abfd624",
      "d81b9a51a062b23ca7823804cb7bec22",
      "f1d8978158766f46335203608cb807e7",
      "f3527096256258c0878d644a9d7d53ca",
      "cbde98ac8b009953eb112807ad2ea29e",
      "654fb1153415747feae599f538122af5",
  },
  {
      // 32X8
      "3d4ee16fab374357474f60b845327bc7",
      "bc17c5059473a476df4e85f56395ad55",
      "3d4ee16fab374357474f60b845327bc7",
      "c14b8db34dc2355b84e3735c9ba16c7f",
      "a71d25b5d47a92a8b9223c98f18458ee",
      "6c1cfe2b1893f4576a80675687cb6426",
      "92d11bbef8b85bb48d799bb055de3514",
      "bcf81d1db8ae5cc03360467f44f498ec",
      "79f8c564163555592e808e145eaf5c60",
      "46fff139cef2ef773938bcc8b0e5abb8",
  },
  {
      // 16X64
      "3b2a053ee8b05a8ac35ad23b0422a151",
      "12b0c69595328c465e0b25e0c9e3e9fc",
      "f77c544ac8035e01920deae40cee7b07",
      "727797ef15ccd8d325476fe8f12006a3",
      "f3be77c0fe67eb5d9d515e92bec21eb7",
      "f1ece6409e01e9dd98b800d49628247d",
      "efd2ec9bfbbd4fd1f6604ea369df1894",
      "ec703de918422b9e03197ba0ed60a199",
      "739418efb89c07f700895deaa5d0b3e3",
      "9943ae1bbeeebfe1d3a92dc39e049d63",
  },
  {
      // 64X16
      "821b76b1494d4f84d20817840f719a1a",
      "69e462c3338a9aaf993c3f7cfbc15649",
      "516d8f6eb054d74d150e7b444185b6b9",
      "de1b736e9d99129609d6ef3a491507a0",
      "fd9b4276e7affe1e0e4ce4f428058994",
      "cd82fd361a4767ac29a9f406b480b8f3",
      "2792c2f810157a4a6cb13c28529ff779",
      "1220442d90c4255ba0969d28b91e93a6",
      "c7253e10b45f7f67dfee3256c9b94825",
      "879792198071c7e0b50b9b5010d8c18f",
  },
#if CONFIG_FLEX_PARTITION
  {
      // 4X32
      "5fc2bd46cbc8cbe95ce7537e3e6bc343",
      "717b3af5708c9d5980268241e754b476",
      "418d3ad30789ba0eab5c578fb747b8d7",
      "3a98462e7d96c84fdd28d3929bfcbce3",
      "1a02bb49384964c8b9744233b6d06e99",
      "65e09d6c672cc9b6bb3a89c888a00b96",
      "5695ebc6633d14fbc6b66bd92ac03e82",
      "89fda21cf4aa37904a7c7ad8493db0b5",
      "55f2de72cd0e62d8977cef7224ae2f26",
      "ef205a718927af5fd53fce6d9421a249",
  },
  {
      // 32X4
      "b43fa815263f16df1e12142a0e05da29",
      "df278a089e05395d43f2c8344fbfa1eb",
      "b43fa815263f16df1e12142a0e05da29",
      "6e2a991fab6a26f44168121adf6047c1",
      "cb91b23d2bb5416aa83dcd188f0936cf",
      "0eab2d67ddd125792d036ee1dc1bd6ee",
      "fdc0c38505730dc1d1e48bf83724b3ca",
      "470227f929657fe0e49ae1f5e152b66b",
      "2b12a195e6615fbb6887af67c5b651e2",
      "d3b89deaf00104e33dc8fa8ef328450a",
  },
  {
      // 8X64
      "5ec48ddb21526078d89cf4d51dc09a64",
      "4794dff583a67c7df26c6b34c18e35d2",
      "ce1241ca91dfe8d76825a05f716f2ecb",
      "4c741017cdff05f318a35bfcf8c0449b",
      "b6f333114b204d381b672a2ae0f37eb5",
      "ae12681099c048311375dfdf776786b9",
      "3fe889cd2a4d14aa3f3c1c11a714d2db",
      "3645fcd3d628383cfbb5f76c2ff627bb",
      "a78dcd04a043dfb17f057a409d8ede10",
      "796c917ab7dfc150bb31759e3574f921",
  },
  {
      // 64X8
      "cd9f2dc90cd3872e0a76a7291045ff15",
      "4d74e0d94b4ca9610d6d19fa2ed7755e",
      "cd9f2dc90cd3872e0a76a7291045ff15",
      "e1f1219589eaa4f30d57ea6a7fa2596f",
      "8b1cb4e8b1060e25814dcfbb18853cda",
      "61ede8477129968c9329188bd3e5c948",
      "316834955affc8731db3f7641aea62a0",
      "9b00993aca3d03b548fa601cd2b2aa90",
      "ff92038a37d4edd419a8eed78e6102b2",
      "5648b2437bf05b675256e75e114941b9",
  },
  {
      // 4X64
      "b1ad7c5810340cdf4f93bf5fe6ac3e34",
      "a10cdfdc9e7757b6846401fe490864cc",
      "76e3331435530287ada471a116b2e329",
      "357ae0864f38176e5d35944ad8983a43",
      "b53956c43eff137b7f8e10d6dd040b98",
      "e794f5820b720aaaa0ce8e486ebad74b",
      "1ae6abab6b54645af178ec0a6007c4e5",
      "734bbee64bd48eadd7a082b88776fd98",
      "2ca1d70ebc2e026721bc8bd01a109417",
      "381162c93fcd426cba1427a911dae9a9",
  },
  {
      // 64X4
      "abe5f4b3e436080d5075d08707195f97",
      "67a939679384f93530c995a94b7ab154",
      "abe5f4b3e436080d5075d08707195f97",
      "f36e3e691c526bb552f086fcfabba946",
      "fa89cdf2c9956919f31cf10091550fc1",
      "1e99740c132a7625adde7ca5177a330d",
      "1f59d830830c56ab84056bfa9cb0860c",
      "88e9e0b8044908abad761390c0bfc531",
      "abeb88c0fa4e2bf7d57975206b8251a4",
      "656ede98703dc20a0e75fd8b757374e4",
  },
#endif  // CONFIG_FLEX_PARTITION
};

}  // namespace

// Defines a test case for |arch| (e.g., C, SSE2, ...) passing the predictors
// to TestIntraPred. The test name is 'arch.TestIntraPred_tx_size', e.g.,
// C.TestIntraPred.0
#define INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, h,  \
                        paeth, smooth, smooth_v, smooth_h)                 \
  TEST(arch, DISABLED_##TestIntraPred_##tx_size) {                         \
    static const AvxPredFunc aom_intra_pred[] = {                          \
      dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h \
    };                                                                     \
    TestIntraPred(tx_size, aom_intra_pred, kSignatures[tx_size]);          \
  }

// -----------------------------------------------------------------------------
// 4x4, 4x8, 4x16

INTRA_PRED_TEST(C_1, TX_4X4, aom_dc_predictor_4x4_c,
                aom_dc_left_predictor_4x4_c, aom_dc_top_predictor_4x4_c,
                aom_dc_128_predictor_4x4_c, aom_v_predictor_4x4_c,
                aom_h_predictor_4x4_c, aom_paeth_predictor_4x4_c,
                aom_smooth_predictor_4x4_c, aom_smooth_v_predictor_4x4_c,
                aom_smooth_h_predictor_4x4_c)

INTRA_PRED_TEST(C_2, TX_4X8, aom_dc_predictor_4x8_c,
                aom_dc_left_predictor_4x8_c, aom_dc_top_predictor_4x8_c,
                aom_dc_128_predictor_4x8_c, aom_v_predictor_4x8_c,
                aom_h_predictor_4x8_c, aom_paeth_predictor_4x8_c,
                aom_smooth_predictor_4x8_c, aom_smooth_v_predictor_4x8_c,
                aom_smooth_h_predictor_4x8_c)

INTRA_PRED_TEST(C_3, TX_4X16, aom_dc_predictor_4x16_c,
                aom_dc_left_predictor_4x16_c, aom_dc_top_predictor_4x16_c,
                aom_dc_128_predictor_4x16_c, aom_v_predictor_4x16_c,
                aom_h_predictor_4x16_c, aom_paeth_predictor_4x16_c,
                aom_smooth_predictor_4x16_c, aom_smooth_v_predictor_4x16_c,
                aom_smooth_h_predictor_4x16_c)

#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(C_4, TX_4X32, aom_dc_predictor_4x32_c,
                aom_dc_left_predictor_4x32_c, aom_dc_top_predictor_4x32_c,
                aom_dc_128_predictor_4x32_c, aom_v_predictor_4x32_c,
                aom_h_predictor_4x32_c, aom_paeth_predictor_4x32_c,
                aom_smooth_predictor_4x32_c, aom_smooth_v_predictor_4x32_c,
                aom_smooth_h_predictor_4x32_c)

INTRA_PRED_TEST(C_5, TX_4X64, aom_dc_predictor_4x64_c,
                aom_dc_left_predictor_4x64_c, aom_dc_top_predictor_4x64_c,
                aom_dc_128_predictor_4x64_c, aom_v_predictor_4x64_c,
                aom_h_predictor_4x64_c, aom_paeth_predictor_4x64_c,
                aom_smooth_predictor_4x64_c, aom_smooth_v_predictor_4x64_c,
                aom_smooth_h_predictor_4x64_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
INTRA_PRED_TEST(SSE2_1, TX_4X4, aom_dc_predictor_4x4_sse2,
                aom_dc_left_predictor_4x4_sse2, aom_dc_top_predictor_4x4_sse2,
                aom_dc_128_predictor_4x4_sse2, aom_v_predictor_4x4_sse2,
                aom_h_predictor_4x4_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_2, TX_4X8, aom_dc_predictor_4x8_sse2,
                aom_dc_left_predictor_4x8_sse2, aom_dc_top_predictor_4x8_sse2,
                aom_dc_128_predictor_4x8_sse2, aom_v_predictor_4x8_sse2,
                aom_h_predictor_4x8_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_3, TX_4X16, aom_dc_predictor_4x16_sse2,
                aom_dc_left_predictor_4x16_sse2, aom_dc_top_predictor_4x16_sse2,
                aom_dc_128_predictor_4x16_sse2, aom_v_predictor_4x16_sse2,
                aom_h_predictor_4x16_sse2, NULL, NULL, NULL, NULL)
#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(SSE2_4, TX_4X32, aom_dc_predictor_4x32_sse2,
                aom_dc_left_predictor_4x32_sse2, aom_dc_top_predictor_4x32_sse2,
                aom_dc_128_predictor_4x32_sse2, aom_v_predictor_4x32_sse2,
                aom_h_predictor_4x32_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_5, TX_4X64, aom_dc_predictor_4x64_sse2,
                aom_dc_left_predictor_4x64_sse2, aom_dc_top_predictor_4x64_sse2,
                aom_dc_128_predictor_4x64_sse2, aom_v_predictor_4x64_sse2,
                aom_h_predictor_4x64_sse2, NULL, NULL, NULL, NULL)
#endif  // CONFIG_FLEX_PARTITION
#endif  // HAVE_SSE2

#if HAVE_SSSE3
INTRA_PRED_TEST(SSSE3_1, TX_4X4, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_4x4_ssse3, aom_smooth_predictor_4x4_ssse3,
                aom_smooth_v_predictor_4x4_ssse3,
                aom_smooth_h_predictor_4x4_ssse3)
INTRA_PRED_TEST(SSSE3_2, TX_4X8, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_4x8_ssse3, aom_smooth_predictor_4x8_ssse3,
                aom_smooth_v_predictor_4x8_ssse3,
                aom_smooth_h_predictor_4x8_ssse3)
INTRA_PRED_TEST(SSSE3_3, TX_4X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_4x16_ssse3, aom_smooth_predictor_4x16_ssse3,
                aom_smooth_v_predictor_4x16_ssse3,
                aom_smooth_h_predictor_4x16_ssse3)
#endif  // HAVE_SSSE3

#if HAVE_DSPR2
INTRA_PRED_TEST(DSPR2, TX_4X4, aom_dc_predictor_4x4_dspr2, NULL, NULL, NULL,
                NULL, aom_h_predictor_4x4_dspr2, NULL, NULL, NULL, NULL)
#endif  // HAVE_DSPR2

#if HAVE_NEON
INTRA_PRED_TEST(NEON, TX_4X4, aom_dc_predictor_4x4_neon,
                aom_dc_left_predictor_4x4_neon, aom_dc_top_predictor_4x4_neon,
                aom_dc_128_predictor_4x4_neon, aom_v_predictor_4x4_neon,
                aom_h_predictor_4x4_neon, NULL, NULL, NULL, NULL)
#endif  // HAVE_NEON

#if HAVE_MSA
INTRA_PRED_TEST(MSA, TX_4X4, aom_dc_predictor_4x4_msa,
                aom_dc_left_predictor_4x4_msa, aom_dc_top_predictor_4x4_msa,
                aom_dc_128_predictor_4x4_msa, aom_v_predictor_4x4_msa,
                aom_h_predictor_4x4_msa, NULL, NULL, NULL, NULL)
#endif  // HAVE_MSA

// -----------------------------------------------------------------------------
// 8x8, 8x4, 8x16, 8x32

INTRA_PRED_TEST(C_1, TX_8X8, aom_dc_predictor_8x8_c,
                aom_dc_left_predictor_8x8_c, aom_dc_top_predictor_8x8_c,
                aom_dc_128_predictor_8x8_c, aom_v_predictor_8x8_c,
                aom_h_predictor_8x8_c, aom_paeth_predictor_8x8_c,
                aom_smooth_predictor_8x8_c, aom_smooth_v_predictor_8x8_c,
                aom_smooth_h_predictor_8x8_c)

INTRA_PRED_TEST(C_2, TX_8X4, aom_dc_predictor_8x4_c,
                aom_dc_left_predictor_8x4_c, aom_dc_top_predictor_8x4_c,
                aom_dc_128_predictor_8x4_c, aom_v_predictor_8x4_c,
                aom_h_predictor_8x4_c, aom_paeth_predictor_8x4_c,
                aom_smooth_predictor_8x4_c, aom_smooth_v_predictor_8x4_c,
                aom_smooth_h_predictor_8x4_c)

INTRA_PRED_TEST(C_3, TX_8X16, aom_dc_predictor_8x16_c,
                aom_dc_left_predictor_8x16_c, aom_dc_top_predictor_8x16_c,
                aom_dc_128_predictor_8x16_c, aom_v_predictor_8x16_c,
                aom_h_predictor_8x16_c, aom_paeth_predictor_8x16_c,
                aom_smooth_predictor_8x16_c, aom_smooth_v_predictor_8x16_c,
                aom_smooth_h_predictor_8x16_c)

INTRA_PRED_TEST(C_4, TX_8X32, aom_dc_predictor_8x32_c,
                aom_dc_left_predictor_8x32_c, aom_dc_top_predictor_8x32_c,
                aom_dc_128_predictor_8x32_c, aom_v_predictor_8x32_c,
                aom_h_predictor_8x32_c, aom_paeth_predictor_8x32_c,
                aom_smooth_predictor_8x32_c, aom_smooth_v_predictor_8x32_c,
                aom_smooth_h_predictor_8x32_c)

#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(C_5, TX_8X64, aom_dc_predictor_8x64_c,
                aom_dc_left_predictor_8x64_c, aom_dc_top_predictor_8x64_c,
                aom_dc_128_predictor_8x64_c, aom_v_predictor_8x64_c,
                aom_h_predictor_8x64_c, aom_paeth_predictor_8x64_c,
                aom_smooth_predictor_8x64_c, aom_smooth_v_predictor_8x64_c,
                aom_smooth_h_predictor_8x64_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
INTRA_PRED_TEST(SSE2_1, TX_8X8, aom_dc_predictor_8x8_sse2,
                aom_dc_left_predictor_8x8_sse2, aom_dc_top_predictor_8x8_sse2,
                aom_dc_128_predictor_8x8_sse2, aom_v_predictor_8x8_sse2,
                aom_h_predictor_8x8_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_2, TX_8X4, aom_dc_predictor_8x4_sse2,
                aom_dc_left_predictor_8x4_sse2, aom_dc_top_predictor_8x4_sse2,
                aom_dc_128_predictor_8x4_sse2, aom_v_predictor_8x4_sse2,
                aom_h_predictor_8x4_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_3, TX_8X16, aom_dc_predictor_8x16_sse2,
                aom_dc_left_predictor_8x16_sse2, aom_dc_top_predictor_8x16_sse2,
                aom_dc_128_predictor_8x16_sse2, aom_v_predictor_8x16_sse2,
                aom_h_predictor_8x16_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_4, TX_8X32, aom_dc_predictor_8x32_sse2,
                aom_dc_left_predictor_8x32_sse2, aom_dc_top_predictor_8x32_sse2,
                aom_dc_128_predictor_8x32_sse2, aom_v_predictor_8x32_sse2,
                aom_h_predictor_8x32_sse2, NULL, NULL, NULL, NULL)
#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(SSE2_5, TX_8X64, aom_dc_predictor_8x64_sse2,
                aom_dc_left_predictor_8x64_sse2, aom_dc_top_predictor_8x64_sse2,
                aom_dc_128_predictor_8x64_sse2, aom_v_predictor_8x64_sse2,
                aom_h_predictor_8x64_sse2, NULL, NULL, NULL, NULL)
#endif  // CONFIG_FLEX_PARTITION
#endif  // HAVE_SSE2

#if HAVE_SSSE3
INTRA_PRED_TEST(SSSE3_1, TX_8X8, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_8x8_ssse3, aom_smooth_predictor_8x8_ssse3,
                aom_smooth_v_predictor_8x8_ssse3,
                aom_smooth_h_predictor_8x8_ssse3)
INTRA_PRED_TEST(SSSE3_2, TX_8X4, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_8x4_ssse3, aom_smooth_predictor_8x4_ssse3,
                aom_smooth_v_predictor_8x4_ssse3,
                aom_smooth_h_predictor_8x4_ssse3)
INTRA_PRED_TEST(SSSE3_3, TX_8X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_8x16_ssse3, aom_smooth_predictor_8x16_ssse3,
                aom_smooth_v_predictor_8x16_ssse3,
                aom_smooth_h_predictor_8x16_ssse3)
INTRA_PRED_TEST(SSSE3_4, TX_8X32, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_8x32_ssse3, aom_smooth_predictor_8x32_ssse3,
                aom_smooth_v_predictor_8x32_ssse3,
                aom_smooth_h_predictor_8x32_ssse3)
#endif  // HAVE_SSSE3

#if HAVE_DSPR2
INTRA_PRED_TEST(DSPR2, TX_8X8, aom_dc_predictor_8x8_dspr2, NULL, NULL, NULL,
                NULL, aom_h_predictor_8x8_dspr2, NULL, NULL, NULL, NULL)
#endif  // HAVE_DSPR2

#if HAVE_NEON
INTRA_PRED_TEST(NEON, TX_8X8, aom_dc_predictor_8x8_neon,
                aom_dc_left_predictor_8x8_neon, aom_dc_top_predictor_8x8_neon,
                aom_dc_128_predictor_8x8_neon, aom_v_predictor_8x8_neon,
                aom_h_predictor_8x8_neon, NULL, NULL, NULL, NULL)
#endif  // HAVE_NEON

#if HAVE_MSA
INTRA_PRED_TEST(MSA, TX_8X8, aom_dc_predictor_8x8_msa,
                aom_dc_left_predictor_8x8_msa, aom_dc_top_predictor_8x8_msa,
                aom_dc_128_predictor_8x8_msa, aom_v_predictor_8x8_msa,
                aom_h_predictor_8x8_msa, NULL, NULL, NULL, NULL)
#endif  // HAVE_MSA

// -----------------------------------------------------------------------------
// 16x16, 16x8, 16x32, 16x4, 16x64

INTRA_PRED_TEST(C_1, TX_16X16, aom_dc_predictor_16x16_c,
                aom_dc_left_predictor_16x16_c, aom_dc_top_predictor_16x16_c,
                aom_dc_128_predictor_16x16_c, aom_v_predictor_16x16_c,
                aom_h_predictor_16x16_c, aom_paeth_predictor_16x16_c,
                aom_smooth_predictor_16x16_c, aom_smooth_v_predictor_16x16_c,
                aom_smooth_h_predictor_16x16_c)

INTRA_PRED_TEST(C_2, TX_16X8, aom_dc_predictor_16x8_c,
                aom_dc_left_predictor_16x8_c, aom_dc_top_predictor_16x8_c,
                aom_dc_128_predictor_16x8_c, aom_v_predictor_16x8_c,
                aom_h_predictor_16x8_c, aom_paeth_predictor_16x8_c,
                aom_smooth_predictor_16x8_c, aom_smooth_v_predictor_16x8_c,
                aom_smooth_h_predictor_16x8_c)

INTRA_PRED_TEST(C_3, TX_16X32, aom_dc_predictor_16x32_c,
                aom_dc_left_predictor_16x32_c, aom_dc_top_predictor_16x32_c,
                aom_dc_128_predictor_16x32_c, aom_v_predictor_16x32_c,
                aom_h_predictor_16x32_c, aom_paeth_predictor_16x32_c,
                aom_smooth_predictor_16x32_c, aom_smooth_v_predictor_16x32_c,
                aom_smooth_h_predictor_16x32_c)

INTRA_PRED_TEST(C_4, TX_16X4, aom_dc_predictor_16x4_c,
                aom_dc_left_predictor_16x4_c, aom_dc_top_predictor_16x4_c,
                aom_dc_128_predictor_16x4_c, aom_v_predictor_16x4_c,
                aom_h_predictor_16x4_c, aom_paeth_predictor_16x4_c,
                aom_smooth_predictor_16x4_c, aom_smooth_v_predictor_16x4_c,
                aom_smooth_h_predictor_16x4_c)

INTRA_PRED_TEST(C_5, TX_16X64, aom_dc_predictor_16x64_c,
                aom_dc_left_predictor_16x64_c, aom_dc_top_predictor_16x64_c,
                aom_dc_128_predictor_16x64_c, aom_v_predictor_16x64_c,
                aom_h_predictor_16x64_c, aom_paeth_predictor_16x64_c,
                aom_smooth_predictor_16x64_c, aom_smooth_v_predictor_16x64_c,
                aom_smooth_h_predictor_16x64_c)

#if HAVE_SSE2
INTRA_PRED_TEST(SSE2_1, TX_16X16, aom_dc_predictor_16x16_sse2,
                aom_dc_left_predictor_16x16_sse2,
                aom_dc_top_predictor_16x16_sse2,
                aom_dc_128_predictor_16x16_sse2, aom_v_predictor_16x16_sse2,
                aom_h_predictor_16x16_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_2, TX_16X8, aom_dc_predictor_16x8_sse2,
                aom_dc_left_predictor_16x8_sse2, aom_dc_top_predictor_16x8_sse2,
                aom_dc_128_predictor_16x8_sse2, aom_v_predictor_16x8_sse2,
                aom_h_predictor_16x8_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_3, TX_16X32, aom_dc_predictor_16x32_sse2,
                aom_dc_left_predictor_16x32_sse2,
                aom_dc_top_predictor_16x32_sse2,
                aom_dc_128_predictor_16x32_sse2, aom_v_predictor_16x32_sse2,
                aom_h_predictor_16x32_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_4, TX_16X64, aom_dc_predictor_16x64_sse2,
                aom_dc_left_predictor_16x64_sse2,
                aom_dc_top_predictor_16x64_sse2,
                aom_dc_128_predictor_16x64_sse2, aom_v_predictor_16x64_sse2,
                aom_h_predictor_16x64_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_5, TX_16X4, aom_dc_predictor_16x4_sse2,
                aom_dc_left_predictor_16x4_sse2, aom_dc_top_predictor_16x4_sse2,
                aom_dc_128_predictor_16x4_sse2, aom_v_predictor_16x4_sse2,
                aom_h_predictor_16x4_sse2, NULL, NULL, NULL, NULL)
#endif  // HAVE_SSE2

#if HAVE_SSSE3
INTRA_PRED_TEST(SSSE3_1, TX_16X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x16_ssse3,
                aom_smooth_predictor_16x16_ssse3,
                aom_smooth_v_predictor_16x16_ssse3,
                aom_smooth_h_predictor_16x16_ssse3)
#if !CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(SSSE3_2, TX_16X8, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x8_ssse3, aom_smooth_predictor_16x8_ssse3,
                aom_smooth_v_predictor_16x8_ssse3,
                aom_smooth_h_predictor_16x8_ssse3)
#endif  // !CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(SSSE3_3, TX_16X32, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x32_ssse3,
                aom_smooth_predictor_16x32_ssse3,
                aom_smooth_v_predictor_16x32_ssse3,
                aom_smooth_h_predictor_16x32_ssse3)
INTRA_PRED_TEST(SSSE3_4, TX_16X64, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x64_ssse3,
                aom_smooth_predictor_16x64_ssse3,
                aom_smooth_v_predictor_16x64_ssse3,
                aom_smooth_h_predictor_16x64_ssse3)
#if !CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(SSSE3_5, TX_16X4, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x4_ssse3, aom_smooth_predictor_16x4_ssse3,
                aom_smooth_v_predictor_16x4_ssse3,
                aom_smooth_h_predictor_16x4_ssse3)
#endif  // !CONFIG_EXT_RECUR_PARTITIONS
#endif  // HAVE_SSSE3

#if HAVE_AVX2
INTRA_PRED_TEST(AVX2_1, TX_16X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x16_avx2, NULL, NULL, NULL)
#if !CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(AVX2_2, TX_16X8, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x8_avx2, NULL, NULL, NULL)
#endif  // !CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(AVX2_3, TX_16X32, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x32_avx2, NULL, NULL, NULL)
INTRA_PRED_TEST(AVX2_4, TX_16X64, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_16x64_avx2, NULL, NULL, NULL)
#endif  // HAVE_AVX2

#if HAVE_DSPR2
INTRA_PRED_TEST(DSPR2, TX_16X16, aom_dc_predictor_16x16_dspr2, NULL, NULL, NULL,
                NULL, aom_h_predictor_16x16_dspr2, NULL, NULL, NULL, NULL)
#endif  // HAVE_DSPR2

#if HAVE_NEON
#if CONFIG_EXT_RECUR_PARTITIONS
INTRA_PRED_TEST(NEON, TX_16X16, NULL, NULL, aom_dc_top_predictor_16x16_neon,
                aom_dc_128_predictor_16x16_neon, NULL, NULL, NULL, NULL, NULL,
                NULL)
#else
INTRA_PRED_TEST(NEON, TX_16X16, aom_dc_predictor_16x16_neon,
                aom_dc_left_predictor_16x16_neon,
                aom_dc_top_predictor_16x16_neon,
                aom_dc_128_predictor_16x16_neon, aom_v_predictor_16x16_neon,
                aom_h_predictor_16x16_neon, NULL, NULL, NULL, NULL)
#endif  // CONFIG_EXT_RECUR_PARTITIONS
#endif  // HAVE_NEON

#if HAVE_MSA
INTRA_PRED_TEST(MSA, TX_16X16, aom_dc_predictor_16x16_msa,
                aom_dc_left_predictor_16x16_msa, aom_dc_top_predictor_16x16_msa,
                aom_dc_128_predictor_16x16_msa, aom_v_predictor_16x16_msa,
                aom_h_predictor_16x16_msa, NULL, NULL, NULL, NULL)
#endif  // HAVE_MSA

// -----------------------------------------------------------------------------
// 32x32, 32x16, 32x64, 32x8

INTRA_PRED_TEST(C_1, TX_32X32, aom_dc_predictor_32x32_c,
                aom_dc_left_predictor_32x32_c, aom_dc_top_predictor_32x32_c,
                aom_dc_128_predictor_32x32_c, aom_v_predictor_32x32_c,
                aom_h_predictor_32x32_c, aom_paeth_predictor_32x32_c,
                aom_smooth_predictor_32x32_c, aom_smooth_v_predictor_32x32_c,
                aom_smooth_h_predictor_32x32_c)

INTRA_PRED_TEST(C_2, TX_32X16, aom_dc_predictor_32x16_c,
                aom_dc_left_predictor_32x16_c, aom_dc_top_predictor_32x16_c,
                aom_dc_128_predictor_32x16_c, aom_v_predictor_32x16_c,
                aom_h_predictor_32x16_c, aom_paeth_predictor_32x16_c,
                aom_smooth_predictor_32x16_c, aom_smooth_v_predictor_32x16_c,
                aom_smooth_h_predictor_32x16_c)

INTRA_PRED_TEST(C_3, TX_32X64, aom_dc_predictor_32x64_c,
                aom_dc_left_predictor_32x64_c, aom_dc_top_predictor_32x64_c,
                aom_dc_128_predictor_32x64_c, aom_v_predictor_32x64_c,
                aom_h_predictor_32x64_c, aom_paeth_predictor_32x64_c,
                aom_smooth_predictor_32x64_c, aom_smooth_v_predictor_32x64_c,
                aom_smooth_h_predictor_32x64_c)

INTRA_PRED_TEST(C_4, TX_32X8, aom_dc_predictor_32x8_c,
                aom_dc_left_predictor_32x8_c, aom_dc_top_predictor_32x8_c,
                aom_dc_128_predictor_32x8_c, aom_v_predictor_32x8_c,
                aom_h_predictor_32x8_c, aom_paeth_predictor_32x8_c,
                aom_smooth_predictor_32x8_c, aom_smooth_v_predictor_32x8_c,
                aom_smooth_h_predictor_32x8_c)

#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(C_4, TX_32X4, aom_dc_predictor_32x4_c,
                aom_dc_left_predictor_32x4_c, aom_dc_top_predictor_32x4_c,
                aom_dc_128_predictor_32x4_c, aom_v_predictor_32x4_c,
                aom_h_predictor_32x4_c, aom_paeth_predictor_32x4_c,
                aom_smooth_predictor_32x4_c, aom_smooth_v_predictor_32x4_c,
                aom_smooth_h_predictor_32x4_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
INTRA_PRED_TEST(SSE2_1, TX_32X32, aom_dc_predictor_32x32_sse2,
                aom_dc_left_predictor_32x32_sse2,
                aom_dc_top_predictor_32x32_sse2,
                aom_dc_128_predictor_32x32_sse2, aom_v_predictor_32x32_sse2,
                aom_h_predictor_32x32_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_2, TX_32X16, aom_dc_predictor_32x16_sse2,
                aom_dc_left_predictor_32x16_sse2,
                aom_dc_top_predictor_32x16_sse2,
                aom_dc_128_predictor_32x16_sse2, aom_v_predictor_32x16_sse2,
                aom_h_predictor_32x16_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_3, TX_32X64, aom_dc_predictor_32x64_sse2,
                aom_dc_left_predictor_32x64_sse2,
                aom_dc_top_predictor_32x64_sse2,
                aom_dc_128_predictor_32x64_sse2, aom_v_predictor_32x64_sse2,
                aom_h_predictor_32x64_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_4, TX_32X8, aom_dc_predictor_32x8_sse2,
                aom_dc_left_predictor_32x8_sse2, aom_dc_top_predictor_32x8_sse2,
                aom_dc_128_predictor_32x8_sse2, aom_v_predictor_32x8_sse2,
                aom_h_predictor_32x8_sse2, NULL, NULL, NULL, NULL)
#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(SSE2_5, TX_32X4, aom_dc_predictor_32x4_sse2,
                aom_dc_left_predictor_32x4_sse2, aom_dc_top_predictor_32x4_sse2,
                aom_dc_128_predictor_32x4_sse2, aom_v_predictor_32x4_sse2,
                aom_h_predictor_32x4_sse2, NULL, NULL, NULL, NULL)
#endif  // CONFIG_FLEX_PARTITION
#endif  // HAVE_SSE2

#if HAVE_SSSE3
INTRA_PRED_TEST(SSSE3_1, TX_32X32, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_32x32_ssse3,
                aom_smooth_predictor_32x32_ssse3,
                aom_smooth_v_predictor_32x32_ssse3,
                aom_smooth_h_predictor_32x32_ssse3)
INTRA_PRED_TEST(SSSE3_2, TX_32X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_32x16_ssse3,
                aom_smooth_predictor_32x16_ssse3,
                aom_smooth_v_predictor_32x16_ssse3,
                aom_smooth_h_predictor_32x16_ssse3)
INTRA_PRED_TEST(SSSE3_3, TX_32X64, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_32x64_ssse3,
                aom_smooth_predictor_32x64_ssse3,
                aom_smooth_v_predictor_32x64_ssse3,
                aom_smooth_h_predictor_32x64_ssse3)
INTRA_PRED_TEST(SSSE3_4, TX_32X8, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_32x8_ssse3, aom_smooth_predictor_32x8_ssse3,
                aom_smooth_v_predictor_32x8_ssse3,
                aom_smooth_h_predictor_32x8_ssse3)
#endif  // HAVE_SSSE3

#if HAVE_AVX2
INTRA_PRED_TEST(AVX2_1, TX_32X32, aom_dc_predictor_32x32_avx2,
                aom_dc_left_predictor_32x32_avx2,
                aom_dc_top_predictor_32x32_avx2,
                aom_dc_128_predictor_32x32_avx2, aom_v_predictor_32x32_avx2,
                aom_h_predictor_32x32_avx2, aom_paeth_predictor_32x32_avx2,
                NULL, NULL, NULL)
INTRA_PRED_TEST(AVX2_2, TX_32X16, aom_dc_predictor_32x16_avx2,
                aom_dc_left_predictor_32x16_avx2,
                aom_dc_top_predictor_32x16_avx2,
                aom_dc_128_predictor_32x16_avx2, aom_v_predictor_32x16_avx2,
                NULL, aom_paeth_predictor_32x16_avx2, NULL, NULL, NULL)
INTRA_PRED_TEST(AVX2_3, TX_32X64, aom_dc_predictor_32x64_avx2,
                aom_dc_left_predictor_32x64_avx2,
                aom_dc_top_predictor_32x64_avx2,
                aom_dc_128_predictor_32x64_avx2, aom_v_predictor_32x64_avx2,
                NULL, aom_paeth_predictor_32x64_avx2, NULL, NULL, NULL)
#endif  // HAVE_AVX2

#if HAVE_NEON
INTRA_PRED_TEST(NEON, TX_32X32, aom_dc_predictor_32x32_neon,
                aom_dc_left_predictor_32x32_neon,
                aom_dc_top_predictor_32x32_neon,
                aom_dc_128_predictor_32x32_neon, aom_v_predictor_32x32_neon,
                aom_h_predictor_32x32_neon, NULL, NULL, NULL, NULL)
#endif  // HAVE_NEON

#if HAVE_MSA
INTRA_PRED_TEST(MSA, TX_32X32, aom_dc_predictor_32x32_msa,
                aom_dc_left_predictor_32x32_msa, aom_dc_top_predictor_32x32_msa,
                aom_dc_128_predictor_32x32_msa, aom_v_predictor_32x32_msa,
                aom_h_predictor_32x32_msa, NULL, NULL, NULL, NULL)
#endif  // HAVE_MSA

// -----------------------------------------------------------------------------
// 64x64, 64x32, 64x16

INTRA_PRED_TEST(C_1, TX_64X64, aom_dc_predictor_64x64_c,
                aom_dc_left_predictor_64x64_c, aom_dc_top_predictor_64x64_c,
                aom_dc_128_predictor_64x64_c, aom_v_predictor_64x64_c,
                aom_h_predictor_64x64_c, aom_paeth_predictor_64x64_c,
                aom_smooth_predictor_64x64_c, aom_smooth_v_predictor_64x64_c,
                aom_smooth_h_predictor_64x64_c)

INTRA_PRED_TEST(C_2, TX_64X32, aom_dc_predictor_64x32_c,
                aom_dc_left_predictor_64x32_c, aom_dc_top_predictor_64x32_c,
                aom_dc_128_predictor_64x32_c, aom_v_predictor_64x32_c,
                aom_h_predictor_64x32_c, aom_paeth_predictor_64x32_c,
                aom_smooth_predictor_64x32_c, aom_smooth_v_predictor_64x32_c,
                aom_smooth_h_predictor_64x32_c)

INTRA_PRED_TEST(C_3, TX_64X16, aom_dc_predictor_64x16_c,
                aom_dc_left_predictor_64x16_c, aom_dc_top_predictor_64x16_c,
                aom_dc_128_predictor_64x16_c, aom_v_predictor_64x16_c,
                aom_h_predictor_64x16_c, aom_paeth_predictor_64x16_c,
                aom_smooth_predictor_64x16_c, aom_smooth_v_predictor_64x16_c,
                aom_smooth_h_predictor_64x16_c)

#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(C_3, TX_64X8, aom_dc_predictor_64x8_c,
                aom_dc_left_predictor_64x8_c, aom_dc_top_predictor_64x8_c,
                aom_dc_128_predictor_64x8_c, aom_v_predictor_64x8_c,
                aom_h_predictor_64x8_c, aom_paeth_predictor_64x8_c,
                aom_smooth_predictor_64x8_c, aom_smooth_v_predictor_64x8_c,
                aom_smooth_h_predictor_64x8_c)

INTRA_PRED_TEST(C_3, TX_64X4, aom_dc_predictor_64x4_c,
                aom_dc_left_predictor_64x4_c, aom_dc_top_predictor_64x4_c,
                aom_dc_128_predictor_64x4_c, aom_v_predictor_64x4_c,
                aom_h_predictor_64x4_c, aom_paeth_predictor_64x4_c,
                aom_smooth_predictor_64x4_c, aom_smooth_v_predictor_64x4_c,
                aom_smooth_h_predictor_64x4_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
INTRA_PRED_TEST(SSE2_4, TX_64X64, aom_dc_predictor_64x64_sse2,
                aom_dc_left_predictor_64x64_sse2,
                aom_dc_top_predictor_64x64_sse2,
                aom_dc_128_predictor_64x64_sse2, aom_v_predictor_64x64_sse2,
                aom_h_predictor_64x64_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_5, TX_64X32, aom_dc_predictor_64x32_sse2,
                aom_dc_left_predictor_64x32_sse2,
                aom_dc_top_predictor_64x32_sse2,
                aom_dc_128_predictor_64x32_sse2, aom_v_predictor_64x32_sse2,
                aom_h_predictor_64x32_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_6, TX_64X16, aom_dc_predictor_64x16_sse2,
                aom_dc_left_predictor_64x16_sse2,
                aom_dc_top_predictor_64x16_sse2,
                aom_dc_128_predictor_64x16_sse2, aom_v_predictor_64x16_sse2,
                aom_h_predictor_64x16_sse2, NULL, NULL, NULL, NULL)
#if CONFIG_FLEX_PARTITION
INTRA_PRED_TEST(SSE2_5, TX_64X8, aom_dc_predictor_64x8_sse2,
                aom_dc_left_predictor_64x8_sse2, aom_dc_top_predictor_64x8_sse2,
                aom_dc_128_predictor_64x8_sse2, aom_v_predictor_64x8_sse2,
                aom_h_predictor_64x8_sse2, NULL, NULL, NULL, NULL)
INTRA_PRED_TEST(SSE2_6, TX_64X4, aom_dc_predictor_64x4_sse2,
                aom_dc_left_predictor_64x4_sse2, aom_dc_top_predictor_64x4_sse2,
                aom_dc_128_predictor_64x4_sse2, aom_v_predictor_64x4_sse2,
                aom_h_predictor_64x4_sse2, NULL, NULL, NULL, NULL)
#endif  // CONFIG_FLEX_PARTITION
#endif

#if HAVE_SSSE3
INTRA_PRED_TEST(SSSE3_4, TX_64X64, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_64x64_ssse3,
                aom_smooth_predictor_64x64_ssse3,
                aom_smooth_v_predictor_64x64_ssse3,
                aom_smooth_h_predictor_64x64_ssse3)
INTRA_PRED_TEST(SSSE3_5, TX_64X32, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_64x32_ssse3,
                aom_smooth_predictor_64x32_ssse3,
                aom_smooth_v_predictor_64x32_ssse3,
                aom_smooth_h_predictor_64x32_ssse3)
INTRA_PRED_TEST(SSSE3_6, TX_64X16, NULL, NULL, NULL, NULL, NULL, NULL,
                aom_paeth_predictor_64x16_ssse3,
                aom_smooth_predictor_64x16_ssse3,
                aom_smooth_v_predictor_64x16_ssse3,
                aom_smooth_h_predictor_64x16_ssse3)
#endif

#if HAVE_AVX2
INTRA_PRED_TEST(AVX2_4, TX_64X64, aom_dc_predictor_64x64_avx2,
                aom_dc_left_predictor_64x64_avx2,
                aom_dc_top_predictor_64x64_avx2,
                aom_dc_128_predictor_64x64_avx2, aom_v_predictor_64x64_avx2,
                NULL, aom_paeth_predictor_64x64_avx2, NULL, NULL, NULL)
INTRA_PRED_TEST(AVX2_5, TX_64X32, aom_dc_predictor_64x32_avx2,
                aom_dc_left_predictor_64x32_avx2,
                aom_dc_top_predictor_64x32_avx2,
                aom_dc_128_predictor_64x32_avx2, aom_v_predictor_64x32_avx2,
                NULL, aom_paeth_predictor_64x32_avx2, NULL, NULL, NULL)
INTRA_PRED_TEST(AVX2_6, TX_64X16, aom_dc_predictor_64x16_avx2,
                aom_dc_left_predictor_64x16_avx2,
                aom_dc_top_predictor_64x16_avx2,
                aom_dc_128_predictor_64x16_avx2, aom_v_predictor_64x16_avx2,
                NULL, aom_paeth_predictor_64x16_avx2, NULL, NULL, NULL)
#endif
// -----------------------------------------------------------------------------
// High Bitdepth
namespace {

typedef void (*AvxHighbdPredFunc)(uint16_t *dst, ptrdiff_t y_stride,
                                  const uint16_t *above, const uint16_t *left,
                                  int bd);

typedef IntraPredTestMem<uint16_t> Av1HighbdIntraPredTestMem;

void TestHighbdIntraPred(TX_SIZE tx_size, AvxHighbdPredFunc const *pred_funcs,
                         const char *const signatures[]) {
  const int block_width = tx_size_wide[tx_size];
  const int block_height = tx_size_high[tx_size];
  const int num_pixels_per_test =
      block_width * block_height * kNumAv1IntraFuncs;
  const int kNumTests = static_cast<int>(2.e10 / num_pixels_per_test);
  Av1HighbdIntraPredTestMem intra_pred_test_mem;
  const int bd = 12;
  intra_pred_test_mem.Init(block_width, block_height, bd);

  for (int k = 0; k < kNumAv1IntraFuncs; ++k) {
    if (pred_funcs[k] == NULL) continue;
    memcpy(intra_pred_test_mem.src, intra_pred_test_mem.ref_src,
           sizeof(intra_pred_test_mem.src));
    aom_usec_timer timer;
    aom_usec_timer_start(&timer);
    for (int num_tests = 0; num_tests < kNumTests; ++num_tests) {
      pred_funcs[k](intra_pred_test_mem.src, intra_pred_test_mem.stride,
                    intra_pred_test_mem.above, intra_pred_test_mem.left, bd);
    }
    libaom_test::ClearSystemState();
    aom_usec_timer_mark(&timer);
    const int elapsed_time =
        static_cast<int>(aom_usec_timer_elapsed(&timer) / 1000);
    CheckMd5Signature(
        tx_size, true, signatures, intra_pred_test_mem.src,
        intra_pred_test_mem.num_pixels * sizeof(*intra_pred_test_mem.src),
        elapsed_time, k);
  }
}

static const char *const kHighbdSignatures[TX_SIZES_ALL][kNumAv1IntraFuncs] = {
  {
      // 4X4
      "11f74af6c5737df472f3275cbde062fa",
      "51bea056b6447c93f6eb8f6b7e8f6f71",
      "27e97f946766331795886f4de04c5594",
      "53ab15974b049111fb596c5168ec7e3f",
      "f0b640bb176fbe4584cf3d32a9b0320a",
      "729783ca909e03afd4b47111c80d967b",
      "6e30009c45474a22032678b1bd579c8f",
      "e57cba016d808aa8a35619df2a65f049",
      "55a6c37f39afcbbf5abca4a985b96459",
      "a623d45b37dafec1f8a75c4c5218913d",
  },
  {
      // 8X8
      "03da8829fe94663047fd108c5fcaa71d",
      "ecdb37b8120a2d3a4c706b016bd1bfd7",
      "1d4543ed8d2b9368cb96898095fe8a75",
      "f791c9a67b913cbd82d9da8ecede30e2",
      "065c70646f4dbaff913282f55a45a441",
      "51f87123616662ef7c35691497dfd0ba",
      "85c01ba03df68f9ece7bd3fa0f8980e6",
      "ad19b7dac092f56df6d054e1f67f21e7",
      "0edc415b5dd7299f7a34fb9f71d31d78",
      "2bc8ec19e9f4b77a64b8a0a1f6aec7e7",
  },
  {
      // 16X16
      "e33cb3f56a878e2fddb1b2fc51cdd275",
      "c7bff6f04b6052c8ab335d726dbbd52d",
      "d0b0b47b654a9bcc5c6008110a44589b",
      "78f5da7b10b2b9ab39f114a33b6254e9",
      "c78e31d23831abb40d6271a318fdd6f3",
      "90d1347f4ec9198a0320daecb6ff90b8",
      "e63ded54ab3d0e8728b6f24d4f01e53f",
      "35ce21fbe0ea114c089fc3489a78155d",
      "f277f6ef8e4d717f1f0dfe2706ac197d",
      "e8014d3f41256976c02e0f1e622ba2b9",
  },
  {
      // 32X32
      "a3e8056ba7e36628cce4917cd956fedd",
      "cc7d3024fe8748b512407edee045377e",
      "2aab0a0f330a1d3e19b8ecb8f06387a3",
      "a547bc3fb7b06910bf3973122a426661",
      "26f712514da95042f93d6e8dc8e431dc",
      "bb08c6e16177081daa3d936538dbc2e3",
      "84bf83f94a51b33654ca940c6f8bc057",
      "7168b03fc31bf29596a344d6a35d007c",
      "b073a70d3672f1282236994f5d12e94b",
      "c51607aebad5dcb3c1e3b58ef9e5b84e",
  },
  {
      // 64X64
      "a6baa0d4bfb2269a94c7a38f86a4bccf",
      "3f1ef5f473a49eba743f17a3324adf9d",
      "12ac11889ae5f55b7781454efd706a6a",
      "d9a906c0e692b22e1b4414e71a704b7e",
      "47d4cadd56f70c11ff8f3e5d8df81161",
      "de997744cf24c16c5ac2a36b02b351cc",
      "23781211ae178ddeb6c4bb97a6bd7d83",
      "a79d2e28340ca34b9e37daabbf030f63",
      "0372bd3ddfc258750a6ac106b70587f4",
      "228ef625d9460cbf6fa253a16a730976",
  },
  {
      // 4X8
      "22d519b796d59644043466320e4ccd14",
      "09513a738c49b3f9542d27f34abbe1d5",
      "807ae5e8813443ff01e71be6efacfb69",
      "cbfa18d0293430b6e9708b0be1fd2394",
      "346c354c34ec7fa780b576db355dab88",
      "f97dae85c35359632380b09ca98d611e",
      "698ae351d8896d89ed9e4e67b6e53eda",
      "dcc197034a9c45a3d8238bf085835f4e",
      "7a35e2c42ffdc2efc2d6d1d75a100fc7",
      "41ab6cebd4516c87a91b2a593e2c2506",
  },
  {
      // 8X4
      "d58cd4c4bf3b7bbaa5db5e1a5622ec78",
      "6e572c35aa782d00cafcb99e9ea047ea",
      "e8c22a3702b416dc9ab974505afbed09",
      "aaa4e4762a795aad7ad74de0c662c4e4",
      "a19f9101967383c3dcbd516dc317a291",
      "9ab8cb91f1a595b9ebe3fe8de58031aa",
      "2cf9021d5f1169268699807ee118b65f",
      "ee9605fcbd6fb871f1c5cd81a6989327",
      "b4871af8316089e3e23522175df7e93f",
      "d33301e1c2cb173be46792a22d19881a",
  },
  {
      // 8X16
      "4562de1d0336610880fdd5685498a9ec",
      "16310fa7076394f16fc85c4b149d89c9",
      "0e94af88e1dc573b6f0f499cddd1f530",
      "dfd245ee20d091c67809160340365aa9",
      "d3562504327f70c096c5be23fd8a3747",
      "601b853558502acbb5135eadd2da117a",
      "3c624345a723a1b2b1bea05a6a08bc99",
      "2a9c781de609e0184cc7ab442050f4e5",
      "0ddc5035c22252747126b61fc238c74d",
      "e43f5d83bab759af69c7b6773fc8f9b2",
  },
  {
      // 16X8
      "a57d6b5a9bfd30c29591d8717ace9c51",
      "f5907ba97ee6c53e339e953fc8d845ee",
      "ea3aa727913ce45af06f89dd1808db5f",
      "408af4f23e48d14b48ee35ae094fcd18",
      "85c41cbcb5d744f7961e8950026fbffe",
      "8a4e588a837638887ba671f8d4910485",
      "b792d8826b67a21757ea7097cff9e05b",
      "f94ce7101bb87fd3bb9312112527dbf4",
      "688c6660a6dc6fa61fa1aa38e708c209",
      "0cdf641b4f81d69509c92ae0b93ef5ff",
  },
  {
      // 16X32
      "aee4b3b0e3cc02d48e2c40d77f807927",
      "8baef2b2e789f79c8df9d90ad10f34a4",
      "038c38ee3c4f090bb8d736eab136aafc",
      "1a3de2aaeaffd68a9fd6c7f6557b83f3",
      "385c6e0ea29421dd81011a2934641e26",
      "6cf96c285d1a2d4787f955dad715b08c",
      "2d7f75dcd73b9528c8396279ff09ff3a",
      "5a63cd1841e4ed470e4ca5ef845f2281",
      "610d899ca945fbead33287d4335a8b32",
      "6bafaad81fce37be46730187e78d8b11",
  },
  {
      // 32X16
      "290b23c9f5a1de7905bfa71a942da29b",
      "701e7b82593c66da5052fc4b6afd79ce",
      "4da828c5455cd246735a663fbb204989",
      "e3fbeaf234efece8dbd752b77226200c",
      "4d1d8c969f05155a7e7e84cf7aad021b",
      "c22e4877c2c946d5bdc0d542e29e70cf",
      "8ac1ce815e7780500f842b0beb0bb980",
      "9fee2e2502b507f25bfad30a55b0b610",
      "4ced9c212ec6f9956e27f68a91b59fef",
      "4a7a0b93f138bb0863e4e465b01ec0b1",
  },
  {
      // 32X64
      "ad9cfc395a5c5644a21d958c7274ac14",
      "f29d6d03c143ddf96fef04c19f2c8333",
      "a8bdc852ef704dd4975c61893e8fbc3f",
      "7d0bd7dea26226741dbca9a97f27fa74",
      "45c27c5cca9a91b6ae8379feb0881c9f",
      "8a0b78df1e001b85c874d686eac4aa1b",
      "ce9fa75fac54a3f6c0cc3f2083b938f1",
      "c0dca10d88762c954af18dc9e3791a39",
      "61df229eddfccab913b8fda4bb02f9ac",
      "4f4df6bc8d50a5600b573f0e44d70e66",
  },
  {
      // 64X32
      "db9d82921fd88b24fdff6f849f2f9c87",
      "5ecc7fdc52d2f575ad4f2d0e9e6b1e11",
      "b4581311a0a73d95dfac7f8f44591032",
      "68bd283cfd1a125f6b2ee47cee874d36",
      "804179f05c032908a5e36077bb87c994",
      "fc5fd041a8ee779015394d0c066ee43c",
      "68f5579ccadfe9a1baafb158334a3db2",
      "fe237e45e215ab06d79046da9ad71e84",
      "9a8a938a6824551bf7d21b8fd1d70ea1",
      "eb7332f2017cd96882c76e7136aeaf53",
  },
  {
      // 4X16
      "7bafa307d507747b8132e7735b7f1c73",
      "e58bc2d8213a97d1fea9cfb73d7a9633",
      "435f8a8e8bbf14dbf2fe16b2be9e97aa",
      "1d0e767b68d84acbfb50b7a04e633836",
      "5f713bd7b324fe73bb7063e35ee14e5e",
      "0dac4e1fa3d59814202715468c01ed56",
      "47709d1db4a330c7a8900f450e6fddd1",
      "258e0b930bb27db28f05da9cf7d1ee7c",
      "36cf030fbae767912593efea045bfff5",
      "248d7aceabb7499febae663fae41a920",
  },
  {
      // 16X4
      "04dde98e632670e393704742c89f9067",
      "8c72543f1664651ae1fa08e2ac0adb9b",
      "2354a2cdc2773aa2df8ab4010db1be39",
      "6300ad3221c26da39b10e0e6d87ee3be",
      "8ea30b661c6ba60b28d3167f19e449b8",
      "fb6c1e4ff101a371cede63c2955cdb7e",
      "a517c06433d6d7927b16a72184a23e92",
      "393828be5d62ab6c48668bea5e2f801a",
      "b1e510c542013eb9d6fb188dea2ce90a",
      "569a8f2fe01679ca216535ecbcdccb62",
  },
  {
      // 8X32
      "9d541865c185ca7607852852613ac1fc",
      "b96be67f08c6b5fa5ebd3411299c2f7c",
      "75a2dcf50004b9d188849b048239767e",
      "429492ff415c9fd9b050d73b2ad500f8",
      "64b3606c1ccd036bd766bd5711392cf4",
      "cb59844a0f01660ac955bae3511f1100",
      "3e076155b7a70e8828618e3f33b51e3d",
      "ed2d1f597ab7c50beff690f737cf9726",
      "7909c6a26aaf20c59d996d3e5b5f9c29",
      "965798807240c98c6f7cc9b457ed0773",
  },
  {
      // 32X8
      "36f391aa31619eec1f4d9ee95ea454cc",
      "b82648f14eeba2527357cb50bc3223cb",
      "7a7b2adf429125e8bee9d1d00a66e13f",
      "4198e4d6ba503b7cc2d7e96bb845f661",
      "96c160d2ec1be9fe0cdea9682f14d257",
      "19a450bcebaa75afb4fc6bd1fd6434af",
      "2bd2e35967d43d0ec1c6587a36f204d5",
      "49799a99aa4ccfbd989bee92a99422f1",
      "955530e99813812a74659edeac3f5475",
      "f0316b84e378a19cd11b19a6e40b2914",
  },
  {
      // 16X64
      "8cba1b70a0bde29e8ef235cedc5faa7d",
      "96d00ddc7537bf7f196006591b733b4e",
      "cbf69d5d157c9f3355a4757b1d6e3414",
      "3ac1f642019493dec1b737d7a3a1b4e5",
      "35f9ee300d7fa3c97338e81a6f21dcd4",
      "aae335442e77c8ebc280f16ea50ba9c7",
      "a6140fdac2278644328be094d88731db",
      "2df93621b6ff100f7008432d509f4161",
      "c77bf5aee39e7ed4a3dd715f816f452a",
      "02109bd63557d90225c32a8f1338258e",
  },
  {
      // 64X16
      "a5e2f9fb685d5f4a048e9a96affd25a4",
      "1348f249690d9eefe09d9ad7ead2c801",
      "525da4b187acd81b1ff1116b60461141",
      "e99d072de858094c98b01bd4a6772634",
      "873bfa9dc24693f19721f7c8d527f7d3",
      "0acfc6507bd3468e9679efc127d6e4b9",
      "57d03f8d079c7264854e22ac1157cfae",
      "6c2c4036f70c7d957a9399b5436c0774",
      "42b8e4a97b7f8416c72a5148c031c0b1",
      "a38a2c5f79993dfae8530e9e25800893",
  },
#if CONFIG_FLEX_PARTITION
  {
      // 4X32
      "c1f205381dd47ee115861c8df74a8d2a",
      "d308c629b42a56caa55e93bc2ff08edf",
      "0484c9ed3e6fe75114af0223ca60b0b5",
      "fea0399bb03d7cd70120bd560cd25f7e",
      "1a90e01df720689d44f0e02363e29a6a",
      "c57921532a454508b8396e982d67645c",
      "f3efa10c9c8f6f5c613dd548a21eba92",
      "2d8350d3ff9eb151d08c2f7ef5b77a42",
      "c1b1559ce8a742a134ade2485495681b",
      "253807b389f030adb0db0a58dc3e2219",
  },
  {
      // 32X4
      "542034f74460992a3832a085a5fa7d25",
      "bcc87d9c4c8b3735d191b80f594301e1",
      "78af1ea02b695466de6ced787674d866",
      "b650485dac9bc7fa950c23a0c4d911ee",
      "4b8932f334cd82f80cd1817d9bf77e0b",
      "4c2d5d30d82966d7e4021743d482e75f",
      "9a504184040639a8deb436050b787858",
      "f7e001f9de5e21290740c47129b3a3e3",
      "f06e26a10b01d5d055a5f7b2dd96cd6a",
      "be5d8ae690f5e12bf0cdd0121dbc6c3c",
  },
  {
      // 8X64
      "80bf84825acf743d2652616c30b24d32",
      "22ee32f73153ff733e171d1a452a59d3",
      "55d6b331e94c22554ff8029d80296a17",
      "9245c7da44f7dacfa174cb76eba91c38",
      "9c021b9d2090c9ff6bace10358d7614f",
      "ff553672ed45246008710fe207664c8a",
      "8245747e70c63c642975c2d9863d3149",
      "e61fa1dcca5746a733e64028f649a426",
      "fb689879afd1b31bc17a3a6c8be6a564",
      "adbb9800477e45a70b98d55181b1784f",
  },
  {
      // 64X8
      "10e88eb167e37a48eb35fd7da7b49d01",
      "f4650467c1bf1b4ba2f2e40f43750b0c",
      "94ea269ebc197c9ac2067b6ef155bf23",
      "c1f64e228f33fcc03add69ac76ab71c7",
      "a26b47387bee6b736c4c793c32f36707",
      "b1e25d53395dd2865245baad8e09d080",
      "a050068aa252d8f6403626dbbc563967",
      "fe984530a619fe7a03006019e7ab9c3d",
      "667153043b1bd30a55752e05a8954895",
      "fdf532602fb459e6e8b203ff8f3c8937",
  },
  {
      // 4X64
      "eccb8c3bb21347c15476e5c95df1dca5",
      "db5b2789a9721bf272315e61d05a5fa6",
      "4f6862b525ebd927d313aa227f1e94a1",
      "8a16ff84d8fcab14462fd27a40c9373a",
      "759f6ca39945c4e0f3c77c985ab407dc",
      "44c0d6683d17fd4ae8f877f0164715da",
      "78caa4994daa63ee6bdd92737b2b3f52",
      "62b1bd244e363a528af5455fe0893c53",
      "6ecdf103ef4946a3ea4b2ed4eed34601",
      "49e8603f6a245411ae5664088431e3be",
  },
  {
      // 64X4
      "94c22d8118c0271bc3b00d3f3dcd4300",
      "9449b10f30f1e001ed86ce3fb6e90f0f",
      "cbe689a5948a18890b773f60e6767f19",
      "d9ea12ab2299ef331e3285bcac880617",
      "79d110d646e65a15d08e385598043e64",
      "c72945ce7b99d36883183f30de0601e5",
      "d7c7a7d49f418a7db3e5ae44aac03385",
      "eafe16d5686f2e050c9aa98291b5d3ea",
      "50d2243d7094a8a8091f7bb0e45a6dd3",
      "a25621808c86377cdddb630381f04f3d",
  },
#endif  // CONFIG_FLEX_PARTITION
};

}  // namespace

#define HIGHBD_INTRA_PRED_TEST(arch, tx_size, dc, dc_left, dc_top, dc_128, v, \
                               h, paeth, smooth, smooth_v, smooth_h)          \
  TEST(arch, DISABLED_##TestHighbdIntraPred_##tx_size) {                      \
    static const AvxHighbdPredFunc aom_intra_pred[] = {                       \
      dc, dc_left, dc_top, dc_128, v, h, paeth, smooth, smooth_v, smooth_h    \
    };                                                                        \
    TestHighbdIntraPred(tx_size, aom_intra_pred, kHighbdSignatures[tx_size]); \
  }

// -----------------------------------------------------------------------------
// 4x4, 4x8, 4x16

HIGHBD_INTRA_PRED_TEST(
    C_1, TX_4X4, aom_highbd_dc_predictor_4x4_c,
    aom_highbd_dc_left_predictor_4x4_c, aom_highbd_dc_top_predictor_4x4_c,
    aom_highbd_dc_128_predictor_4x4_c, aom_highbd_v_predictor_4x4_c,
    aom_highbd_h_predictor_4x4_c, aom_highbd_paeth_predictor_4x4_c,
    aom_highbd_smooth_predictor_4x4_c, aom_highbd_smooth_v_predictor_4x4_c,
    aom_highbd_smooth_h_predictor_4x4_c)

HIGHBD_INTRA_PRED_TEST(
    C_2, TX_4X8, aom_highbd_dc_predictor_4x8_c,
    aom_highbd_dc_left_predictor_4x8_c, aom_highbd_dc_top_predictor_4x8_c,
    aom_highbd_dc_128_predictor_4x8_c, aom_highbd_v_predictor_4x8_c,
    aom_highbd_h_predictor_4x8_c, aom_highbd_paeth_predictor_4x8_c,
    aom_highbd_smooth_predictor_4x8_c, aom_highbd_smooth_v_predictor_4x8_c,
    aom_highbd_smooth_h_predictor_4x8_c)

HIGHBD_INTRA_PRED_TEST(
    C_3, TX_4X16, aom_highbd_dc_predictor_4x16_c,
    aom_highbd_dc_left_predictor_4x16_c, aom_highbd_dc_top_predictor_4x16_c,
    aom_highbd_dc_128_predictor_4x16_c, aom_highbd_v_predictor_4x16_c,
    aom_highbd_h_predictor_4x16_c, aom_highbd_paeth_predictor_4x16_c,
    aom_highbd_smooth_predictor_4x16_c, aom_highbd_smooth_v_predictor_4x16_c,
    aom_highbd_smooth_h_predictor_4x16_c)

#if CONFIG_FLEX_PARTITION
HIGHBD_INTRA_PRED_TEST(
    C_4, TX_4X32, aom_highbd_dc_predictor_4x32_c,
    aom_highbd_dc_left_predictor_4x32_c, aom_highbd_dc_top_predictor_4x32_c,
    aom_highbd_dc_128_predictor_4x32_c, aom_highbd_v_predictor_4x32_c,
    aom_highbd_h_predictor_4x32_c, aom_highbd_paeth_predictor_4x32_c,
    aom_highbd_smooth_predictor_4x32_c, aom_highbd_smooth_v_predictor_4x32_c,
    aom_highbd_smooth_h_predictor_4x32_c)

HIGHBD_INTRA_PRED_TEST(
    C_5, TX_4X64, aom_highbd_dc_predictor_4x64_c,
    aom_highbd_dc_left_predictor_4x64_c, aom_highbd_dc_top_predictor_4x64_c,
    aom_highbd_dc_128_predictor_4x64_c, aom_highbd_v_predictor_4x64_c,
    aom_highbd_h_predictor_4x64_c, aom_highbd_paeth_predictor_4x64_c,
    aom_highbd_smooth_predictor_4x64_c, aom_highbd_smooth_v_predictor_4x64_c,
    aom_highbd_smooth_h_predictor_4x64_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
HIGHBD_INTRA_PRED_TEST(SSE2_1, TX_4X4, aom_highbd_dc_predictor_4x4_sse2,
                       aom_highbd_dc_left_predictor_4x4_sse2,
                       aom_highbd_dc_top_predictor_4x4_sse2,
                       aom_highbd_dc_128_predictor_4x4_sse2,
                       aom_highbd_v_predictor_4x4_sse2,
                       aom_highbd_h_predictor_4x4_sse2, NULL, NULL, NULL, NULL)

HIGHBD_INTRA_PRED_TEST(SSE2_2, TX_4X8, aom_highbd_dc_predictor_4x8_sse2,
                       aom_highbd_dc_left_predictor_4x8_sse2,
                       aom_highbd_dc_top_predictor_4x8_sse2,
                       aom_highbd_dc_128_predictor_4x8_sse2,
                       aom_highbd_v_predictor_4x8_sse2,
                       aom_highbd_h_predictor_4x8_sse2, NULL, NULL, NULL, NULL)
#endif

// -----------------------------------------------------------------------------
// 8x8, 8x4, 8x16, 8x32

HIGHBD_INTRA_PRED_TEST(
    C_1, TX_8X8, aom_highbd_dc_predictor_8x8_c,
    aom_highbd_dc_left_predictor_8x8_c, aom_highbd_dc_top_predictor_8x8_c,
    aom_highbd_dc_128_predictor_8x8_c, aom_highbd_v_predictor_8x8_c,
    aom_highbd_h_predictor_8x8_c, aom_highbd_paeth_predictor_8x8_c,
    aom_highbd_smooth_predictor_8x8_c, aom_highbd_smooth_v_predictor_8x8_c,
    aom_highbd_smooth_h_predictor_8x8_c)

HIGHBD_INTRA_PRED_TEST(
    C_2, TX_8X4, aom_highbd_dc_predictor_8x4_c,
    aom_highbd_dc_left_predictor_8x4_c, aom_highbd_dc_top_predictor_8x4_c,
    aom_highbd_dc_128_predictor_8x4_c, aom_highbd_v_predictor_8x4_c,
    aom_highbd_h_predictor_8x4_c, aom_highbd_paeth_predictor_8x4_c,
    aom_highbd_smooth_predictor_8x4_c, aom_highbd_smooth_v_predictor_8x4_c,
    aom_highbd_smooth_h_predictor_8x4_c)

HIGHBD_INTRA_PRED_TEST(
    C_3, TX_8X16, aom_highbd_dc_predictor_8x16_c,
    aom_highbd_dc_left_predictor_8x16_c, aom_highbd_dc_top_predictor_8x16_c,
    aom_highbd_dc_128_predictor_8x16_c, aom_highbd_v_predictor_8x16_c,
    aom_highbd_h_predictor_8x16_c, aom_highbd_paeth_predictor_8x16_c,
    aom_highbd_smooth_predictor_8x16_c, aom_highbd_smooth_v_predictor_8x16_c,
    aom_highbd_smooth_h_predictor_8x16_c)

HIGHBD_INTRA_PRED_TEST(
    C_4, TX_8X32, aom_highbd_dc_predictor_8x32_c,
    aom_highbd_dc_left_predictor_8x32_c, aom_highbd_dc_top_predictor_8x32_c,
    aom_highbd_dc_128_predictor_8x32_c, aom_highbd_v_predictor_8x32_c,
    aom_highbd_h_predictor_8x32_c, aom_highbd_paeth_predictor_8x32_c,
    aom_highbd_smooth_predictor_8x32_c, aom_highbd_smooth_v_predictor_8x32_c,
    aom_highbd_smooth_h_predictor_8x32_c)

#if CONFIG_FLEX_PARTITION
HIGHBD_INTRA_PRED_TEST(
    C_5, TX_8X64, aom_highbd_dc_predictor_8x64_c,
    aom_highbd_dc_left_predictor_8x64_c, aom_highbd_dc_top_predictor_8x64_c,
    aom_highbd_dc_128_predictor_8x64_c, aom_highbd_v_predictor_8x64_c,
    aom_highbd_h_predictor_8x64_c, aom_highbd_paeth_predictor_8x64_c,
    aom_highbd_smooth_predictor_8x64_c, aom_highbd_smooth_v_predictor_8x64_c,
    aom_highbd_smooth_h_predictor_8x64_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2

HIGHBD_INTRA_PRED_TEST(SSE2_1, TX_8X8, aom_highbd_dc_predictor_8x8_sse2,
                       aom_highbd_dc_left_predictor_8x8_sse2,
                       aom_highbd_dc_top_predictor_8x8_sse2,
                       aom_highbd_dc_128_predictor_8x8_sse2,
                       aom_highbd_v_predictor_8x8_sse2,
                       aom_highbd_h_predictor_8x8_sse2, NULL, NULL, NULL, NULL)
HIGHBD_INTRA_PRED_TEST(SSE2_2, TX_8X4, aom_highbd_dc_predictor_8x4_sse2,
                       aom_highbd_dc_left_predictor_8x4_sse2,
                       aom_highbd_dc_top_predictor_8x4_sse2,
                       aom_highbd_dc_128_predictor_8x4_sse2,
                       aom_highbd_v_predictor_8x4_sse2,
                       aom_highbd_h_predictor_8x4_sse2, NULL, NULL, NULL, NULL)
HIGHBD_INTRA_PRED_TEST(SSE2_3, TX_8X16, aom_highbd_dc_predictor_8x16_sse2,
                       aom_highbd_dc_left_predictor_8x16_sse2,
                       aom_highbd_dc_top_predictor_8x16_sse2,
                       aom_highbd_dc_128_predictor_8x16_sse2,
                       aom_highbd_v_predictor_8x16_sse2,
                       aom_highbd_h_predictor_8x16_sse2, NULL, NULL, NULL, NULL)
#endif

#if HAVE_SSSE3
HIGHBD_INTRA_PRED_TEST(SSSE3, TX_8X8, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL)
#endif

// -----------------------------------------------------------------------------
// 16x16, 16x8, 16x32, 16x4, 16x64

HIGHBD_INTRA_PRED_TEST(
    C_1, TX_16X16, aom_highbd_dc_predictor_16x16_c,
    aom_highbd_dc_left_predictor_16x16_c, aom_highbd_dc_top_predictor_16x16_c,
    aom_highbd_dc_128_predictor_16x16_c, aom_highbd_v_predictor_16x16_c,
    aom_highbd_h_predictor_16x16_c, aom_highbd_paeth_predictor_16x16_c,
    aom_highbd_smooth_predictor_16x16_c, aom_highbd_smooth_v_predictor_16x16_c,
    aom_highbd_smooth_h_predictor_16x16_c)

HIGHBD_INTRA_PRED_TEST(
    C_2, TX_16X8, aom_highbd_dc_predictor_16x8_c,
    aom_highbd_dc_left_predictor_16x8_c, aom_highbd_dc_top_predictor_16x8_c,
    aom_highbd_dc_128_predictor_16x8_c, aom_highbd_v_predictor_16x8_c,
    aom_highbd_h_predictor_16x8_c, aom_highbd_paeth_predictor_16x8_c,
    aom_highbd_smooth_predictor_16x8_c, aom_highbd_smooth_v_predictor_16x8_c,
    aom_highbd_smooth_h_predictor_16x8_c)

HIGHBD_INTRA_PRED_TEST(
    C_3, TX_16X32, aom_highbd_dc_predictor_16x32_c,
    aom_highbd_dc_left_predictor_16x32_c, aom_highbd_dc_top_predictor_16x32_c,
    aom_highbd_dc_128_predictor_16x32_c, aom_highbd_v_predictor_16x32_c,
    aom_highbd_h_predictor_16x32_c, aom_highbd_paeth_predictor_16x32_c,
    aom_highbd_smooth_predictor_16x32_c, aom_highbd_smooth_v_predictor_16x32_c,
    aom_highbd_smooth_h_predictor_16x32_c)

HIGHBD_INTRA_PRED_TEST(
    C_4, TX_16X4, aom_highbd_dc_predictor_16x4_c,
    aom_highbd_dc_left_predictor_16x4_c, aom_highbd_dc_top_predictor_16x4_c,
    aom_highbd_dc_128_predictor_16x4_c, aom_highbd_v_predictor_16x4_c,
    aom_highbd_h_predictor_16x4_c, aom_highbd_paeth_predictor_16x4_c,
    aom_highbd_smooth_predictor_16x4_c, aom_highbd_smooth_v_predictor_16x4_c,
    aom_highbd_smooth_h_predictor_16x4_c)

HIGHBD_INTRA_PRED_TEST(
    C_5, TX_16X64, aom_highbd_dc_predictor_16x64_c,
    aom_highbd_dc_left_predictor_16x64_c, aom_highbd_dc_top_predictor_16x64_c,
    aom_highbd_dc_128_predictor_16x64_c, aom_highbd_v_predictor_16x64_c,
    aom_highbd_h_predictor_16x64_c, aom_highbd_paeth_predictor_16x64_c,
    aom_highbd_smooth_predictor_16x64_c, aom_highbd_smooth_v_predictor_16x64_c,
    aom_highbd_smooth_h_predictor_16x64_c)

#if HAVE_SSE2
HIGHBD_INTRA_PRED_TEST(SSE2_1, TX_16X16, aom_highbd_dc_predictor_16x16_sse2,
                       aom_highbd_dc_left_predictor_16x16_sse2,
                       aom_highbd_dc_top_predictor_16x16_sse2,
                       aom_highbd_dc_128_predictor_16x16_sse2,
                       aom_highbd_v_predictor_16x16_sse2,
                       aom_highbd_h_predictor_16x16_sse2, NULL, NULL, NULL,
                       NULL)
HIGHBD_INTRA_PRED_TEST(SSE2_2, TX_16X8, aom_highbd_dc_predictor_16x8_sse2,
                       aom_highbd_dc_left_predictor_16x8_sse2,
                       aom_highbd_dc_top_predictor_16x8_sse2,
                       aom_highbd_dc_128_predictor_16x8_sse2,
                       aom_highbd_v_predictor_16x8_sse2,
                       aom_highbd_h_predictor_16x8_sse2, NULL, NULL, NULL, NULL)
HIGHBD_INTRA_PRED_TEST(SSE2_3, TX_16X32, aom_highbd_dc_predictor_16x32_sse2,
                       aom_highbd_dc_left_predictor_16x32_sse2,
                       aom_highbd_dc_top_predictor_16x32_sse2,
                       aom_highbd_dc_128_predictor_16x32_sse2,
                       aom_highbd_v_predictor_16x32_sse2,
                       aom_highbd_h_predictor_16x32_sse2, NULL, NULL, NULL,
                       NULL)
#endif

#if HAVE_SSSE3
HIGHBD_INTRA_PRED_TEST(SSSE3_1, TX_16X16, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)
#endif

#if HAVE_AVX2
HIGHBD_INTRA_PRED_TEST(AVX2_1, TX_16X16, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)

HIGHBD_INTRA_PRED_TEST(AVX2_2, TX_16X8, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)

HIGHBD_INTRA_PRED_TEST(AVX2_3, TX_16X32, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)
#endif

// -----------------------------------------------------------------------------
// 32x32, 32x16, 32x64, 32x8

HIGHBD_INTRA_PRED_TEST(
    C_1, TX_32X32, aom_highbd_dc_predictor_32x32_c,
    aom_highbd_dc_left_predictor_32x32_c, aom_highbd_dc_top_predictor_32x32_c,
    aom_highbd_dc_128_predictor_32x32_c, aom_highbd_v_predictor_32x32_c,
    aom_highbd_h_predictor_32x32_c, aom_highbd_paeth_predictor_32x32_c,
    aom_highbd_smooth_predictor_32x32_c, aom_highbd_smooth_v_predictor_32x32_c,
    aom_highbd_smooth_h_predictor_32x32_c)

HIGHBD_INTRA_PRED_TEST(
    C_2, TX_32X16, aom_highbd_dc_predictor_32x16_c,
    aom_highbd_dc_left_predictor_32x16_c, aom_highbd_dc_top_predictor_32x16_c,
    aom_highbd_dc_128_predictor_32x16_c, aom_highbd_v_predictor_32x16_c,
    aom_highbd_h_predictor_32x16_c, aom_highbd_paeth_predictor_32x16_c,
    aom_highbd_smooth_predictor_32x16_c, aom_highbd_smooth_v_predictor_32x16_c,
    aom_highbd_smooth_h_predictor_32x16_c)

HIGHBD_INTRA_PRED_TEST(
    C_3, TX_32X64, aom_highbd_dc_predictor_32x64_c,
    aom_highbd_dc_left_predictor_32x64_c, aom_highbd_dc_top_predictor_32x64_c,
    aom_highbd_dc_128_predictor_32x64_c, aom_highbd_v_predictor_32x64_c,
    aom_highbd_h_predictor_32x64_c, aom_highbd_paeth_predictor_32x64_c,
    aom_highbd_smooth_predictor_32x64_c, aom_highbd_smooth_v_predictor_32x64_c,
    aom_highbd_smooth_h_predictor_32x64_c)

HIGHBD_INTRA_PRED_TEST(
    C_4, TX_32X8, aom_highbd_dc_predictor_32x8_c,
    aom_highbd_dc_left_predictor_32x8_c, aom_highbd_dc_top_predictor_32x8_c,
    aom_highbd_dc_128_predictor_32x8_c, aom_highbd_v_predictor_32x8_c,
    aom_highbd_h_predictor_32x8_c, aom_highbd_paeth_predictor_32x8_c,
    aom_highbd_smooth_predictor_32x8_c, aom_highbd_smooth_v_predictor_32x8_c,
    aom_highbd_smooth_h_predictor_32x8_c)

#if CONFIG_FLEX_PARTITION
HIGHBD_INTRA_PRED_TEST(
    C_5, TX_32X4, aom_highbd_dc_predictor_32x4_c,
    aom_highbd_dc_left_predictor_32x4_c, aom_highbd_dc_top_predictor_32x4_c,
    aom_highbd_dc_128_predictor_32x4_c, aom_highbd_v_predictor_32x4_c,
    aom_highbd_h_predictor_32x4_c, aom_highbd_paeth_predictor_32x4_c,
    aom_highbd_smooth_predictor_32x4_c, aom_highbd_smooth_v_predictor_32x4_c,
    aom_highbd_smooth_h_predictor_32x4_c)
#endif  // CONFIG_FLEX_PARTITION

#if HAVE_SSE2
HIGHBD_INTRA_PRED_TEST(SSE2_1, TX_32X32, aom_highbd_dc_predictor_32x32_sse2,
                       aom_highbd_dc_left_predictor_32x32_sse2,
                       aom_highbd_dc_top_predictor_32x32_sse2,
                       aom_highbd_dc_128_predictor_32x32_sse2,
                       aom_highbd_v_predictor_32x32_sse2,
                       aom_highbd_h_predictor_32x32_sse2, NULL, NULL, NULL,
                       NULL)
HIGHBD_INTRA_PRED_TEST(SSE2_2, TX_32X16, aom_highbd_dc_predictor_32x16_sse2,
                       aom_highbd_dc_left_predictor_32x16_sse2,
                       aom_highbd_dc_top_predictor_32x16_sse2,
                       aom_highbd_dc_128_predictor_32x16_sse2,
                       aom_highbd_v_predictor_32x16_sse2,
                       aom_highbd_h_predictor_32x16_sse2, NULL, NULL, NULL,
                       NULL)
#endif

#if HAVE_SSSE3
HIGHBD_INTRA_PRED_TEST(SSSE3_1, TX_32X32, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)
#endif

#if HAVE_AVX2
HIGHBD_INTRA_PRED_TEST(AVX2_1, TX_32X32, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)

HIGHBD_INTRA_PRED_TEST(AVX2_2, TX_32X16, NULL, NULL, NULL, NULL, NULL, NULL,
                       NULL, NULL, NULL, NULL)
#endif

// -----------------------------------------------------------------------------
// 64x64, 64x32, 64x16

HIGHBD_INTRA_PRED_TEST(
    C_1, TX_64X64, aom_highbd_dc_predictor_64x64_c,
    aom_highbd_dc_left_predictor_64x64_c, aom_highbd_dc_top_predictor_64x64_c,
    aom_highbd_dc_128_predictor_64x64_c, aom_highbd_v_predictor_64x64_c,
    aom_highbd_h_predictor_64x64_c, aom_highbd_paeth_predictor_64x64_c,
    aom_highbd_smooth_predictor_64x64_c, aom_highbd_smooth_v_predictor_64x64_c,
    aom_highbd_smooth_h_predictor_64x64_c)

HIGHBD_INTRA_PRED_TEST(
    C_2, TX_64X32, aom_highbd_dc_predictor_64x32_c,
    aom_highbd_dc_left_predictor_64x32_c, aom_highbd_dc_top_predictor_64x32_c,
    aom_highbd_dc_128_predictor_64x32_c, aom_highbd_v_predictor_64x32_c,
    aom_highbd_h_predictor_64x32_c, aom_highbd_paeth_predictor_64x32_c,
    aom_highbd_smooth_predictor_64x32_c, aom_highbd_smooth_v_predictor_64x32_c,
    aom_highbd_smooth_h_predictor_64x32_c)

HIGHBD_INTRA_PRED_TEST(
    C_3, TX_64X16, aom_highbd_dc_predictor_64x16_c,
    aom_highbd_dc_left_predictor_64x16_c, aom_highbd_dc_top_predictor_64x16_c,
    aom_highbd_dc_128_predictor_64x16_c, aom_highbd_v_predictor_64x16_c,
    aom_highbd_h_predictor_64x16_c, aom_highbd_paeth_predictor_64x16_c,
    aom_highbd_smooth_predictor_64x16_c, aom_highbd_smooth_v_predictor_64x16_c,
    aom_highbd_smooth_h_predictor_64x16_c)

#if CONFIG_FLEX_PARTITION
HIGHBD_INTRA_PRED_TEST(
    C_4, TX_64X4, aom_highbd_dc_predictor_64x4_c,
    aom_highbd_dc_left_predictor_64x4_c, aom_highbd_dc_top_predictor_64x4_c,
    aom_highbd_dc_128_predictor_64x4_c, aom_highbd_v_predictor_64x4_c,
    aom_highbd_h_predictor_64x4_c, aom_highbd_paeth_predictor_64x4_c,
    aom_highbd_smooth_predictor_64x4_c, aom_highbd_smooth_v_predictor_64x4_c,
    aom_highbd_smooth_h_predictor_64x4_c)

HIGHBD_INTRA_PRED_TEST(
    C_5, TX_64X8, aom_highbd_dc_predictor_64x8_c,
    aom_highbd_dc_left_predictor_64x8_c, aom_highbd_dc_top_predictor_64x8_c,
    aom_highbd_dc_128_predictor_64x8_c, aom_highbd_v_predictor_64x8_c,
    aom_highbd_h_predictor_64x8_c, aom_highbd_paeth_predictor_64x8_c,
    aom_highbd_smooth_predictor_64x8_c, aom_highbd_smooth_v_predictor_64x8_c,
    aom_highbd_smooth_h_predictor_64x8_c)
#endif  // CONFIG_FLEX_PARTITION
// -----------------------------------------------------------------------------

#include "test/test_libaom.cc"
