summaryrefslogtreecommitdiff
path: root/test/sixtap_predict_test.cc
diff options
context:
space:
mode:
authorJohann <johannkoenig@google.com>2016-09-02 11:29:20 -0700
committerJohann <johannkoenig@google.com>2016-09-15 14:56:47 -0700
commitd9dce2f48eed1368a44c368fa87a506bd89ffec5 (patch)
tree224fa01a75dc5534e65a691388af99f997397202 /test/sixtap_predict_test.cc
parent4d1540f8ce1c9965bc89674ba4e46e332f52599d (diff)
downloadlibvpx-d9dce2f48eed1368a44c368fa87a506bd89ffec5.tar
libvpx-d9dce2f48eed1368a44c368fa87a506bd89ffec5.tar.gz
libvpx-d9dce2f48eed1368a44c368fa87a506bd89ffec5.tar.bz2
libvpx-d9dce2f48eed1368a44c368fa87a506bd89ffec5.zip
Restore vp8_sixtap_predict4x4_neon
This function was removed when clang started introducing alignment hints which caused the 32 bit vld1_lane_u32/vst1_lane_u32 to fail: https://llvm.org/bugs/show_bug.cgi?id=24421 The load has been rendered safe with an implementation ~indiscernible performance-wise that uses _u8 and over-reads just a touch. The store, when unaligned, has a version that is ~25% slower but safe when xoffset = 0 (second pass filter only). When the first pass filter (or both) are in play, the new version is almost identical in speed. Worst case performance (both filters, unaligned stores) is roughly 3-4x faster than C. BUG=webm:817 BUG=webm:1273 Change-Id: I1e490e94453e0872151fe0dafb05557463f6247d
Diffstat (limited to 'test/sixtap_predict_test.cc')
-rw-r--r--test/sixtap_predict_test.cc3
1 files changed, 2 insertions, 1 deletions
diff --git a/test/sixtap_predict_test.cc b/test/sixtap_predict_test.cc
index 31a604417..110c09aa8 100644
--- a/test/sixtap_predict_test.cc
+++ b/test/sixtap_predict_test.cc
@@ -195,7 +195,8 @@ INSTANTIATE_TEST_CASE_P(
NEON, SixtapPredictTest,
::testing::Values(make_tuple(16, 16, &vp8_sixtap_predict16x16_neon),
make_tuple(8, 8, &vp8_sixtap_predict8x8_neon),
- make_tuple(8, 4, &vp8_sixtap_predict8x4_neon)));
+ make_tuple(8, 4, &vp8_sixtap_predict8x4_neon),
+ make_tuple(4, 4, &vp8_sixtap_predict4x4_neon)));
#endif
#if HAVE_MMX
INSTANTIATE_TEST_CASE_P(