summaryrefslogtreecommitdiff
path: root/test/vp9_quantize_test.cc
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2017-08-03 10:22:07 -0700
committerJohann <johannkoenig@google.com>2017-08-08 12:22:14 -0700
commitd52cb5972930b68b0d0ce15b45d1a788dcd78322 (patch)
treece9561fd1dcc68e820a3e826aa277994e3df6466 /test/vp9_quantize_test.cc
parentcbb83ba4aa99b40b0b4a2a407bfd6d0d8be87d1f (diff)
downloadlibvpx-d52cb5972930b68b0d0ce15b45d1a788dcd78322.tar
libvpx-d52cb5972930b68b0d0ce15b45d1a788dcd78322.tar.gz
libvpx-d52cb5972930b68b0d0ce15b45d1a788dcd78322.tar.bz2
libvpx-d52cb5972930b68b0d0ce15b45d1a788dcd78322.zip
quantize: copy ssse3 optimizations to intrinsics
Fairly minor differences from sse2. pabsw and psignw are the big gains. Also re-uses some values in eob calculation to avoid an extra pcmp. Fixes test failures in HBD and OS X builds. Allows using it in 32bit builds, where it is about 40% faster than sse2. Substantially faster than the assembly for skip_block. 10-20% faster the rest of the time. Change-Id: If783bb3567e561e47667e10133b9c84414a334e2
Diffstat (limited to 'test/vp9_quantize_test.cc')
-rw-r--r--test/vp9_quantize_test.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/test/vp9_quantize_test.cc b/test/vp9_quantize_test.cc
index 7ec8f585b..c4aae2d9d 100644
--- a/test/vp9_quantize_test.cc
+++ b/test/vp9_quantize_test.cc
@@ -333,15 +333,20 @@ INSTANTIATE_TEST_CASE_P(SSE2, VP9QuantizeTest,
#endif // CONFIG_VP9_HIGHBITDEPTH
#endif // HAVE_SSE2
-// TODO(johannkoenig): SSSE3 optimizations do not yet pass these tests.
-#if HAVE_SSSE3 && ARCH_X86_64
+#if HAVE_SSSE3
+INSTANTIATE_TEST_CASE_P(SSSE3, VP9QuantizeTest,
+ ::testing::Values(make_tuple(&vpx_quantize_b_ssse3,
+ &vpx_quantize_b_c,
+ VPX_BITS_8, 16)));
+
+#if ARCH_X86_64
+// TODO(johannkoenig): SSSE3 optimizations do not yet pass this test.
INSTANTIATE_TEST_CASE_P(
DISABLED_SSSE3, VP9QuantizeTest,
- ::testing::Values(make_tuple(&vpx_quantize_b_ssse3, &vpx_quantize_b_c,
- VPX_BITS_8, 16),
- make_tuple(&vpx_quantize_b_32x32_ssse3,
+ ::testing::Values(make_tuple(&vpx_quantize_b_32x32_ssse3,
&vpx_quantize_b_32x32_c, VPX_BITS_8, 32)));
-#endif // HAVE_SSSE3 && ARCH_X86_64
+#endif // ARCH_X86_64
+#endif // HAVE_SSSE3
// TODO(johannkoenig): AVX optimizations do not yet pass the 32x32 test or
// highbitdepth configurations.