diff --git a/test/error_block_test.cc b/test/error_block_test.cc
index 85ec076..7365907 100644
--- a/test/error_block_test.cc
+++ b/test/error_block_test.cc
@@ -235,35 +235,39 @@
 using ::testing::make_tuple;
 
 #if (HAVE_SSE2)
-INSTANTIATE_TEST_CASE_P(
-    SSE2, ErrorBlockTest,
-    ::testing::Values(
+const ErrorBlockParam kErrorBlockTestParamsSse2[] = {
 #if CONFIG_AV1_HIGHBITDEPTH
-        make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
-                   AOM_BITS_10),
-        make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
-                   AOM_BITS_12),
-        make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
-                   AOM_BITS_8),
+  make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
+             AOM_BITS_10),
+  make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
+             AOM_BITS_12),
+  make_tuple(&av1_highbd_block_error_sse2, &av1_highbd_block_error_c,
+             AOM_BITS_8),
 #endif
-        make_tuple(&BlockError8BitWrapper<av1_block_error_sse2>,
-                   &BlockError8BitWrapper<av1_block_error_c>, AOM_BITS_8)));
+  make_tuple(&BlockError8BitWrapper<av1_block_error_sse2>,
+             &BlockError8BitWrapper<av1_block_error_c>, AOM_BITS_8)
+};
+
+INSTANTIATE_TEST_CASE_P(SSE2, ErrorBlockTest,
+                        ::testing::ValuesIn(kErrorBlockTestParamsSse2));
 #endif  // HAVE_SSE2
 
 #if (HAVE_AVX2)
-INSTANTIATE_TEST_CASE_P(
-    AVX2, ErrorBlockTest,
-    ::testing::Values(
+const ErrorBlockParam kErrorBlockTestParamsAvx2[] = {
 #if CONFIG_AV1_HIGHBITDEPTH
-        make_tuple(&av1_highbd_block_error_avx2, &av1_highbd_block_error_c,
-                   AOM_BITS_10),
-        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),
+  make_tuple(&av1_highbd_block_error_avx2, &av1_highbd_block_error_c,
+             AOM_BITS_10),
+  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),
 #endif
-        make_tuple(&BlockError8BitWrapper<av1_block_error_avx2>,
-                   &BlockError8BitWrapper<av1_block_error_c>, AOM_BITS_8)));
+  make_tuple(&BlockError8BitWrapper<av1_block_error_avx2>,
+             &BlockError8BitWrapper<av1_block_error_c>, AOM_BITS_8)
+};
+
+INSTANTIATE_TEST_CASE_P(AVX2, ErrorBlockTest,
+                        ::testing::ValuesIn(kErrorBlockTestParamsAvx2));
 #endif  // HAVE_AVX2
 
 #if (HAVE_MSA)
