Enable aom_satd SSE2 optimization
Enabled aom_satd SSE2 optimization. Added testing for this function.
Change-Id: I01a4df7e4a884365e16c02e1e93de3fe322c8628
diff --git a/aom_dsp/aom_dsp_rtcd_defs.pl b/aom_dsp/aom_dsp_rtcd_defs.pl
index e10acadb..a2b5f05 100755
--- a/aom_dsp/aom_dsp_rtcd_defs.pl
+++ b/aom_dsp/aom_dsp_rtcd_defs.pl
@@ -1127,7 +1127,7 @@
specialize qw/aom_highbd_hadamard_32x32 avx2/;
}
add_proto qw/int aom_satd/, "const tran_low_t *coeff, int length";
- specialize qw/aom_satd neon avx2/;
+ specialize qw/aom_satd neon sse2 avx2/;
add_proto qw/int aom_satd_lp/, "const int16_t *coeff, int length";
specialize qw/aom_satd_lp avx2 neon/;
diff --git a/test/avg_test.cc b/test/avg_test.cc
index 4c6d9b5..9c20714 100644
--- a/test/avg_test.cc
+++ b/test/avg_test.cc
@@ -654,4 +654,22 @@
make_tuple(5, &aom_vector_var_c, &aom_vector_var_neon)));
#endif
+#if HAVE_AVX2
+INSTANTIATE_TEST_SUITE_P(
+ AVX2, SatdTest,
+ ::testing::Values(make_tuple(16, &aom_satd_c, &aom_satd_avx2),
+ make_tuple(64, &aom_satd_c, &aom_satd_avx2),
+ make_tuple(256, &aom_satd_c, &aom_satd_avx2),
+ make_tuple(1024, &aom_satd_c, &aom_satd_avx2)));
+#endif
+
+#if HAVE_SSE2
+INSTANTIATE_TEST_SUITE_P(
+ SSE2, SatdTest,
+ ::testing::Values(make_tuple(16, &aom_satd_c, &aom_satd_sse2),
+ make_tuple(64, &aom_satd_c, &aom_satd_sse2),
+ make_tuple(256, &aom_satd_c, &aom_satd_sse2),
+ make_tuple(1024, &aom_satd_c, &aom_satd_sse2)));
+#endif
+
} // namespace