Add test for block_error.

Add tests for low bitdepth block_error functions
for AVX2, MSA and NEON.

Change-Id: Iad0145656e0fb5232dbc249532cc021225de74bf
diff --git a/test/error_block_test.cc b/test/error_block_test.cc
index 3664ccf..d98cc09 100644
--- a/test/error_block_test.cc
+++ b/test/error_block_test.cc
@@ -35,9 +35,21 @@
                                   const tran_low_t *dqcoeff,
                                   intptr_t block_size, int64_t *ssz, int bps);
 
+typedef int64_t (*ErrorBlockFunc8Bits)(const tran_low_t *coeff,
+                                       const tran_low_t *dqcoeff,
+                                       intptr_t block_size, int64_t *ssz);
+
 typedef ::testing::tuple<ErrorBlockFunc, ErrorBlockFunc, aom_bit_depth_t>
     ErrorBlockParam;
 
+template <ErrorBlockFunc8Bits fn>
+int64_t BlockError8BitWrapper(const tran_low_t *coeff,
+                              const tran_low_t *dqcoeff, intptr_t block_size,
+                              int64_t *ssz, int bps) {
+  EXPECT_EQ(bps, 8);
+  return fn(coeff, dqcoeff, block_size, ssz);
+}
+
 class ErrorBlockTest : public ::testing::TestWithParam<ErrorBlockParam> {
  public:
   virtual ~ErrorBlockTest() {}
@@ -220,9 +232,9 @@
   }
 }
 
-#if (HAVE_SSE2 || HAVE_AVX)
 using ::testing::make_tuple;
 
+#if (HAVE_SSE2 || HAVE_AVX)
 INSTANTIATE_TEST_CASE_P(
     SSE2, ErrorBlockTest,
     ::testing::Values(make_tuple(&av1_highbd_block_error_sse2,
@@ -234,8 +246,6 @@
 #endif  // HAVE_SSE2
 
 #if (HAVE_AVX2)
-using ::testing::make_tuple;
-
 INSTANTIATE_TEST_CASE_P(
     AVX2, ErrorBlockTest,
     ::testing::Values(make_tuple(&av1_highbd_block_error_avx2,
@@ -243,6 +253,25 @@
                       make_tuple(&av1_highbd_block_error_avx2,
                                  &av1_highbd_block_error_c, AOM_BITS_12),
                       make_tuple(&av1_highbd_block_error_avx2,
-                                 &av1_highbd_block_error_c, AOM_BITS_8)));
+                                 &av1_highbd_block_error_c, AOM_BITS_8),
+                      make_tuple(&BlockError8BitWrapper<av1_block_error_avx2>,
+                                 &BlockError8BitWrapper<av1_block_error_c>,
+                                 AOM_BITS_8)));
 #endif  // HAVE_AVX2
+
+#if (HAVE_MSA)
+INSTANTIATE_TEST_CASE_P(
+    MSA, ErrorBlockTest,
+    ::testing::Values(make_tuple(&BlockError8BitWrapper<av1_block_error_msa>,
+                                 &BlockError8BitWrapper<av1_block_error_c>,
+                                 AOM_BITS_8)));
+#endif  // HAVE_MSA
+
+#if (HAVE_NEON)
+INSTANTIATE_TEST_CASE_P(
+    NEON, ErrorBlockTest,
+    ::testing::Values(make_tuple(&BlockError8BitWrapper<av1_block_error_neon>,
+                                 &BlockError8BitWrapper<av1_block_error_c>,
+                                 AOM_BITS_8)));
+#endif  // HAVE_NEON
 }  // namespace