diff options
author | Parag Salasakar <img.mips1@gmail.com> | 2015-06-26 14:02:16 +0530 |
---|---|---|
committer | Parag Salasakar <img.mips1@gmail.com> | 2015-06-30 12:22:18 +0530 |
commit | 2d730a289a75b7a098e2c03d6db07fb4fdfd9850 (patch) | |
tree | aa9056be225be4bc3018af5b5679f2ed77c8e7d9 /test | |
parent | c040f96e4b4cf42b48696f1460780bcbed445bb9 (diff) | |
download | libvpx-2d730a289a75b7a098e2c03d6db07fb4fdfd9850.tar libvpx-2d730a289a75b7a098e2c03d6db07fb4fdfd9850.tar.gz libvpx-2d730a289a75b7a098e2c03d6db07fb4fdfd9850.tar.bz2 libvpx-2d730a289a75b7a098e2c03d6db07fb4fdfd9850.zip |
mips msa vpx_dsp variance optimization
average improvement ~2x-4x
Change-Id: Ia3eef3f390148c2eb5cdc580a94cb26369737f82
Diffstat (limited to 'test')
-rw-r--r-- | test/variance_test.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/variance_test.cc b/test/variance_test.cc index 670fe0980..220170048 100644 --- a/test/variance_test.cc +++ b/test/variance_test.cc @@ -2011,4 +2011,52 @@ INSTANTIATE_TEST_CASE_P( ::testing::Values(make_tuple(4, 4, variance16x16_media, 0), make_tuple(3, 3, variance8x8_media, 0))); #endif // HAVE_MEDIA + +#if HAVE_MSA +INSTANTIATE_TEST_CASE_P(MSA, SumOfSquaresTest, + ::testing::Values(vpx_get_mb_ss_msa)); + +const Get4x4SseFunc get4x4sse_cs_msa = vpx_get4x4sse_cs_msa; +INSTANTIATE_TEST_CASE_P(MSA, VpxSseTest, + ::testing::Values(make_tuple(2, 2, get4x4sse_cs_msa))); + +const VarianceMxNFunc mse16x16_msa = vpx_mse16x16_msa; +const VarianceMxNFunc mse16x8_msa = vpx_mse16x8_msa; +const VarianceMxNFunc mse8x16_msa = vpx_mse8x16_msa; +const VarianceMxNFunc mse8x8_msa = vpx_mse8x8_msa; +INSTANTIATE_TEST_CASE_P(MSA, VpxMseTest, + ::testing::Values(make_tuple(4, 4, mse16x16_msa), + make_tuple(4, 3, mse16x8_msa), + make_tuple(3, 4, mse8x16_msa), + make_tuple(3, 3, mse8x8_msa))); + +const VarianceMxNFunc variance64x64_msa = vpx_variance64x64_msa; +const VarianceMxNFunc variance64x32_msa = vpx_variance64x32_msa; +const VarianceMxNFunc variance32x64_msa = vpx_variance32x64_msa; +const VarianceMxNFunc variance32x32_msa = vpx_variance32x32_msa; +const VarianceMxNFunc variance32x16_msa = vpx_variance32x16_msa; +const VarianceMxNFunc variance16x32_msa = vpx_variance16x32_msa; +const VarianceMxNFunc variance16x16_msa = vpx_variance16x16_msa; +const VarianceMxNFunc variance16x8_msa = vpx_variance16x8_msa; +const VarianceMxNFunc variance8x16_msa = vpx_variance8x16_msa; +const VarianceMxNFunc variance8x8_msa = vpx_variance8x8_msa; +const VarianceMxNFunc variance8x4_msa = vpx_variance8x4_msa; +const VarianceMxNFunc variance4x8_msa = vpx_variance4x8_msa; +const VarianceMxNFunc variance4x4_msa = vpx_variance4x4_msa; +INSTANTIATE_TEST_CASE_P( + MSA, VpxVarianceTest, + ::testing::Values(make_tuple(6, 6, variance64x64_msa, 0), + make_tuple(6, 5, variance64x32_msa, 0), + make_tuple(5, 6, variance32x64_msa, 0), + make_tuple(5, 5, variance32x32_msa, 0), + make_tuple(5, 4, variance32x16_msa, 0), + make_tuple(4, 5, variance16x32_msa, 0), + make_tuple(4, 4, variance16x16_msa, 0), + make_tuple(4, 3, variance16x8_msa, 0), + make_tuple(3, 4, variance8x16_msa, 0), + make_tuple(3, 3, variance8x8_msa, 0), + make_tuple(3, 2, variance8x4_msa, 0), + make_tuple(2, 3, variance4x8_msa, 0), + make_tuple(2, 2, variance4x4_msa, 0))); +#endif // HAVE_MSA } // namespace |