Index: source/libvpx/test/variance_test.cc |
=================================================================== |
--- source/libvpx/test/variance_test.cc (revision 290053) |
+++ source/libvpx/test/variance_test.cc (working copy) |
@@ -90,14 +90,14 @@ |
rnd(ACMRandom::DeterministicSeed()); |
block_size_ = width_ * height_; |
- src_ = new uint8_t[block_size_]; |
+ src_ = reinterpret_cast<uint8_t *>(vpx_memalign(16, block_size_)); |
ref_ = new uint8_t[block_size_]; |
ASSERT_TRUE(src_ != NULL); |
ASSERT_TRUE(ref_ != NULL); |
} |
virtual void TearDown() { |
- delete[] src_; |
+ vpx_free(src_); |
delete[] ref_; |
libvpx_test::ClearSystemState(); |
} |
@@ -707,24 +707,7 @@ |
#endif |
#if HAVE_AVX2 |
-// TODO(jzern): these prototypes can be removed after the avx2 versions are |
-// reenabled in vp9_rtcd_defs.pl. |
-extern "C" { |
-unsigned int vp9_sub_pixel_variance32x32_avx2( |
- const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, |
- const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); |
-unsigned int vp9_sub_pixel_variance64x64_avx2( |
- const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, |
- const uint8_t *ref_ptr, int ref_stride, unsigned int *sse); |
-unsigned int vp9_sub_pixel_avg_variance32x32_avx2( |
- const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, |
- const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, |
- const uint8_t *second_pred); |
-unsigned int vp9_sub_pixel_avg_variance64x64_avx2( |
- const uint8_t *src_ptr, int source_stride, int xoffset, int yoffset, |
- const uint8_t *ref_ptr, int ref_stride, unsigned int *sse, |
- const uint8_t *second_pred); |
-} |
+ |
const vp9_variance_fn_t variance16x16_avx2 = vp9_variance16x16_avx2; |
const vp9_variance_fn_t variance32x16_avx2 = vp9_variance32x16_avx2; |
const vp9_variance_fn_t variance32x32_avx2 = vp9_variance32x32_avx2; |
@@ -743,7 +726,7 @@ |
const vp9_subpixvariance_fn_t subpel_variance64x64_avx2 = |
vp9_sub_pixel_variance64x64_avx2; |
INSTANTIATE_TEST_CASE_P( |
- DISABLED_AVX2, VP9SubpelVarianceTest, |
+ AVX2, VP9SubpelVarianceTest, |
::testing::Values(make_tuple(5, 5, subpel_variance32x32_avx2), |
make_tuple(6, 6, subpel_variance64x64_avx2))); |
@@ -752,10 +735,32 @@ |
const vp9_subp_avg_variance_fn_t subpel_avg_variance64x64_avx2 = |
vp9_sub_pixel_avg_variance64x64_avx2; |
INSTANTIATE_TEST_CASE_P( |
- DISABLED_AVX2, VP9SubpelAvgVarianceTest, |
+ AVX2, VP9SubpelAvgVarianceTest, |
::testing::Values(make_tuple(5, 5, subpel_avg_variance32x32_avx2), |
make_tuple(6, 6, subpel_avg_variance64x64_avx2))); |
#endif // HAVE_AVX2 |
+#if HAVE_NEON |
+const vp9_variance_fn_t variance8x8_neon = vp9_variance8x8_neon; |
+const vp9_variance_fn_t variance16x16_neon = vp9_variance16x16_neon; |
+const vp9_variance_fn_t variance32x32_neon = vp9_variance32x32_neon; |
+INSTANTIATE_TEST_CASE_P( |
+ NEON, VP9VarianceTest, |
+ ::testing::Values(make_tuple(3, 3, variance8x8_neon), |
+ make_tuple(4, 4, variance16x16_neon), |
+ make_tuple(5, 5, variance32x32_neon))); |
+ |
+const vp9_subpixvariance_fn_t subpel_variance8x8_neon = |
+ vp9_sub_pixel_variance8x8_neon; |
+const vp9_subpixvariance_fn_t subpel_variance16x16_neon = |
+ vp9_sub_pixel_variance16x16_neon; |
+const vp9_subpixvariance_fn_t subpel_variance32x32_neon = |
+ vp9_sub_pixel_variance32x32_neon; |
+INSTANTIATE_TEST_CASE_P( |
+ NEON, VP9SubpelVarianceTest, |
+ ::testing::Values(make_tuple(3, 3, subpel_variance8x8_neon), |
+ make_tuple(4, 4, subpel_variance16x16_neon), |
+ make_tuple(5, 5, subpel_variance32x32_neon))); |
+#endif // HAVE_NEON |
#endif // CONFIG_VP9_ENCODER |
} // namespace vp9 |