summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorParag Salasakar <img.mips1@gmail.com>2015-06-26 14:02:16 +0530
committerParag Salasakar <img.mips1@gmail.com>2015-06-30 12:22:18 +0530
commit2d730a289a75b7a098e2c03d6db07fb4fdfd9850 (patch)
treeaa9056be225be4bc3018af5b5679f2ed77c8e7d9 /test
parentc040f96e4b4cf42b48696f1460780bcbed445bb9 (diff)
downloadlibvpx-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.cc48
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