diff --git a/test/lpf_8_test.cc b/test/lpf_8_test.cc
index cee0d3b..8d70c06 100644
--- a/test/lpf_8_test.cc
+++ b/test/lpf_8_test.cc
@@ -412,71 +412,69 @@
 
 #if HAVE_SSE2
 #if CONFIG_HIGHBITDEPTH
-INSTANTIATE_TEST_CASE_P(
-    SSE2, Loop8Test6Param,
-    ::testing::Values(make_tuple(&aom_highbd_lpf_horizontal_4_sse2,
-                                 &aom_highbd_lpf_horizontal_4_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_4_sse2,
-                                 &aom_highbd_lpf_vertical_4_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_sse2,
-                                 &aom_highbd_lpf_horizontal_8_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_8_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_16_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_8_sse2,
-                                 &aom_highbd_lpf_vertical_8_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_16_sse2,
-                                 &aom_highbd_lpf_vertical_16_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_4_sse2,
-                                 &aom_highbd_lpf_horizontal_4_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_4_sse2,
-                                 &aom_highbd_lpf_vertical_4_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_sse2,
-                                 &aom_highbd_lpf_horizontal_8_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_8_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_16_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_8_sse2,
-                                 &aom_highbd_lpf_vertical_8_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_16_sse2,
-                                 &aom_highbd_lpf_vertical_16_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_4_sse2,
-                                 &aom_highbd_lpf_horizontal_4_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_4_sse2,
-                                 &aom_highbd_lpf_vertical_4_c, 12),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_sse2,
-                                 &aom_highbd_lpf_horizontal_8_c, 12),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_8_c, 12),
-                      make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
-                                 &aom_highbd_lpf_horizontal_edge_16_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_8_sse2,
-                                 &aom_highbd_lpf_vertical_8_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_16_sse2,
-                                 &aom_highbd_lpf_vertical_16_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
-                                 &aom_highbd_lpf_vertical_16_dual_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
-                                 &aom_highbd_lpf_vertical_16_dual_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
-                                 &aom_highbd_lpf_vertical_16_dual_c, 12)));
+
+const loop8_param_t kHbdLoop8Test6[] = {
+  make_tuple(&aom_highbd_lpf_horizontal_4_sse2, &aom_highbd_lpf_horizontal_4_c,
+             8),
+  make_tuple(&aom_highbd_lpf_vertical_4_sse2, &aom_highbd_lpf_vertical_4_c, 8),
+  make_tuple(&aom_highbd_lpf_horizontal_8_sse2, &aom_highbd_lpf_horizontal_8_c,
+             8),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
+             &aom_highbd_lpf_horizontal_edge_8_c, 8),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
+             &aom_highbd_lpf_horizontal_edge_16_c, 8),
+  make_tuple(&aom_highbd_lpf_vertical_8_sse2, &aom_highbd_lpf_vertical_8_c, 8),
+  make_tuple(&aom_highbd_lpf_vertical_16_sse2, &aom_highbd_lpf_vertical_16_c,
+             8),
+  make_tuple(&aom_highbd_lpf_horizontal_4_sse2, &aom_highbd_lpf_horizontal_4_c,
+             10),
+  make_tuple(&aom_highbd_lpf_vertical_4_sse2, &aom_highbd_lpf_vertical_4_c, 10),
+  make_tuple(&aom_highbd_lpf_horizontal_8_sse2, &aom_highbd_lpf_horizontal_8_c,
+             10),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
+             &aom_highbd_lpf_horizontal_edge_8_c, 10),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
+             &aom_highbd_lpf_horizontal_edge_16_c, 10),
+  make_tuple(&aom_highbd_lpf_vertical_8_sse2, &aom_highbd_lpf_vertical_8_c, 10),
+  make_tuple(&aom_highbd_lpf_vertical_16_sse2, &aom_highbd_lpf_vertical_16_c,
+             10),
+  make_tuple(&aom_highbd_lpf_horizontal_4_sse2, &aom_highbd_lpf_horizontal_4_c,
+             12),
+  make_tuple(&aom_highbd_lpf_vertical_4_sse2, &aom_highbd_lpf_vertical_4_c, 12),
+  make_tuple(&aom_highbd_lpf_horizontal_8_sse2, &aom_highbd_lpf_horizontal_8_c,
+             12),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_8_sse2,
+             &aom_highbd_lpf_horizontal_edge_8_c, 12),
+  make_tuple(&aom_highbd_lpf_horizontal_edge_16_sse2,
+             &aom_highbd_lpf_horizontal_edge_16_c, 12),
+  make_tuple(&aom_highbd_lpf_vertical_8_sse2, &aom_highbd_lpf_vertical_8_c, 12),
+  make_tuple(&aom_highbd_lpf_vertical_16_sse2, &aom_highbd_lpf_vertical_16_c,
+             12),
+  make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
+             &aom_highbd_lpf_vertical_16_dual_c, 8),
+  make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
+             &aom_highbd_lpf_vertical_16_dual_c, 10),
+  make_tuple(&aom_highbd_lpf_vertical_16_dual_sse2,
+             &aom_highbd_lpf_vertical_16_dual_c, 12)
+};
+
+INSTANTIATE_TEST_CASE_P(SSE2, Loop8Test6Param,
+                        ::testing::ValuesIn(kHbdLoop8Test6));
 #else
-INSTANTIATE_TEST_CASE_P(
-    SSE2, Loop8Test6Param,
-    ::testing::Values(
-        make_tuple(&aom_lpf_horizontal_4_sse2, &aom_lpf_horizontal_4_c, 8),
-        make_tuple(&aom_lpf_horizontal_8_sse2, &aom_lpf_horizontal_8_c, 8),
-        make_tuple(&aom_lpf_horizontal_edge_8_sse2,
-                   &aom_lpf_horizontal_edge_8_c, 8),
-        make_tuple(&aom_lpf_horizontal_edge_16_sse2,
-                   &aom_lpf_horizontal_edge_16_c, 8),
-        make_tuple(&aom_lpf_vertical_4_sse2, &aom_lpf_vertical_4_c, 8),
-        make_tuple(&aom_lpf_vertical_8_sse2, &aom_lpf_vertical_8_c, 8),
-        make_tuple(&aom_lpf_vertical_16_sse2, &aom_lpf_vertical_16_c, 8),
-        make_tuple(&aom_lpf_vertical_16_dual_sse2, &aom_lpf_vertical_16_dual_c,
-                   8)));
+const loop8_param_t kLoop8Test6[] = {
+  make_tuple(&aom_lpf_horizontal_4_sse2, &aom_lpf_horizontal_4_c, 8),
+  make_tuple(&aom_lpf_horizontal_8_sse2, &aom_lpf_horizontal_8_c, 8),
+  make_tuple(&aom_lpf_horizontal_edge_8_sse2, &aom_lpf_horizontal_edge_8_c, 8),
+  make_tuple(&aom_lpf_horizontal_edge_16_sse2, &aom_lpf_horizontal_edge_16_c,
+             8),
+  make_tuple(&aom_lpf_vertical_4_sse2, &aom_lpf_vertical_4_c, 8),
+  make_tuple(&aom_lpf_vertical_8_sse2, &aom_lpf_vertical_8_c, 8),
+  make_tuple(&aom_lpf_vertical_16_sse2, &aom_lpf_vertical_16_c, 8),
+  make_tuple(&aom_lpf_vertical_16_dual_sse2, &aom_lpf_vertical_16_dual_c, 8)
+};
+
+INSTANTIATE_TEST_CASE_P(SSE2, Loop8Test6Param,
+                        ::testing::ValuesIn(kLoop8Test6));
 #endif  // CONFIG_HIGHBITDEPTH
 #endif
 
@@ -491,43 +489,45 @@
 
 #if HAVE_SSE2
 #if CONFIG_HIGHBITDEPTH
-INSTANTIATE_TEST_CASE_P(
-    SSE2, Loop8Test9Param,
-    ::testing::Values(make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_4_dual_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_8_dual_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
-                                 &aom_highbd_lpf_vertical_4_dual_c, 8),
-                      make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
-                                 &aom_highbd_lpf_vertical_8_dual_c, 8),
-                      make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_4_dual_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_8_dual_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
-                                 &aom_highbd_lpf_vertical_4_dual_c, 10),
-                      make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
-                                 &aom_highbd_lpf_vertical_8_dual_c, 10),
-                      make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_4_dual_c, 12),
-                      make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
-                                 &aom_highbd_lpf_horizontal_8_dual_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
-                                 &aom_highbd_lpf_vertical_4_dual_c, 12),
-                      make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
-                                 &aom_highbd_lpf_vertical_8_dual_c, 12)));
+const dualloop8_param_t kHbdLoop8Test9[] = {
+  make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
+             &aom_highbd_lpf_horizontal_4_dual_c, 8),
+  make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
+             &aom_highbd_lpf_horizontal_8_dual_c, 8),
+  make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
+             &aom_highbd_lpf_vertical_4_dual_c, 8),
+  make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
+             &aom_highbd_lpf_vertical_8_dual_c, 8),
+  make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
+             &aom_highbd_lpf_horizontal_4_dual_c, 10),
+  make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
+             &aom_highbd_lpf_horizontal_8_dual_c, 10),
+  make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
+             &aom_highbd_lpf_vertical_4_dual_c, 10),
+  make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
+             &aom_highbd_lpf_vertical_8_dual_c, 10),
+  make_tuple(&aom_highbd_lpf_horizontal_4_dual_sse2,
+             &aom_highbd_lpf_horizontal_4_dual_c, 12),
+  make_tuple(&aom_highbd_lpf_horizontal_8_dual_sse2,
+             &aom_highbd_lpf_horizontal_8_dual_c, 12),
+  make_tuple(&aom_highbd_lpf_vertical_4_dual_sse2,
+             &aom_highbd_lpf_vertical_4_dual_c, 12),
+  make_tuple(&aom_highbd_lpf_vertical_8_dual_sse2,
+             &aom_highbd_lpf_vertical_8_dual_c, 12)
+};
+
+INSTANTIATE_TEST_CASE_P(SSE2, Loop8Test9Param,
+                        ::testing::ValuesIn(kHbdLoop8Test9));
 #else
-INSTANTIATE_TEST_CASE_P(
-    SSE2, Loop8Test9Param,
-    ::testing::Values(make_tuple(&aom_lpf_horizontal_4_dual_sse2,
-                                 &aom_lpf_horizontal_4_dual_c, 8),
-                      make_tuple(&aom_lpf_horizontal_8_dual_sse2,
-                                 &aom_lpf_horizontal_8_dual_c, 8),
-                      make_tuple(&aom_lpf_vertical_4_dual_sse2,
-                                 &aom_lpf_vertical_4_dual_c, 8),
-                      make_tuple(&aom_lpf_vertical_8_dual_sse2,
-                                 &aom_lpf_vertical_8_dual_c, 8)));
+const dualloop8_param_t kLoop8Test9[] = {
+  make_tuple(&aom_lpf_horizontal_4_dual_sse2, &aom_lpf_horizontal_4_dual_c, 8),
+  make_tuple(&aom_lpf_horizontal_8_dual_sse2, &aom_lpf_horizontal_8_dual_c, 8),
+  make_tuple(&aom_lpf_vertical_4_dual_sse2, &aom_lpf_vertical_4_dual_c, 8),
+  make_tuple(&aom_lpf_vertical_8_dual_sse2, &aom_lpf_vertical_8_dual_c, 8)
+};
+
+INSTANTIATE_TEST_CASE_P(SSE2, Loop8Test9Param,
+                        ::testing::ValuesIn(kLoop8Test9));
 #endif  // CONFIG_HIGHBITDEPTH
 #endif
 
