summaryrefslogtreecommitdiff
path: root/vpx_dsp/ppc
diff options
context:
space:
mode:
authorLuca Barbato <lu_zero@gentoo.org>2017-04-08 00:39:24 +0000
committerJames Zern <jzern@google.com>2017-04-19 19:49:31 -0700
commitd68d37872c82ab81da384a65ce17b684d4e2cc24 (patch)
treee4d42608182903d4dcc14c9e913a2ae50f25ea95 /vpx_dsp/ppc
parentf9d20e6df21296899143d832f1a8d7ed7985e395 (diff)
downloadlibvpx-d68d37872c82ab81da384a65ce17b684d4e2cc24.tar
libvpx-d68d37872c82ab81da384a65ce17b684d4e2cc24.tar.gz
libvpx-d68d37872c82ab81da384a65ce17b684d4e2cc24.tar.bz2
libvpx-d68d37872c82ab81da384a65ce17b684d4e2cc24.zip
ppc: dc_128 predictor 32x32
6x faster. Change-Id: I1da8f51b4262871cb98f0aa03ccda41b0ac2b08b
Diffstat (limited to 'vpx_dsp/ppc')
-rw-r--r--vpx_dsp/ppc/intrapred_vsx.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/vpx_dsp/ppc/intrapred_vsx.c b/vpx_dsp/ppc/intrapred_vsx.c
index 155cc722f..9350170f3 100644
--- a/vpx_dsp/ppc/intrapred_vsx.c
+++ b/vpx_dsp/ppc/intrapred_vsx.c
@@ -379,3 +379,22 @@ void vpx_dc_128_predictor_16x16_vsx(uint8_t *dst, ptrdiff_t stride,
dc_fill_predictor_16x16(dst, stride, v128);
}
+
+static INLINE void dc_fill_predictor_32x32(uint8_t *dst, const ptrdiff_t stride,
+ const uint8x16_t val) {
+ int i;
+
+ for (i = 0; i < 32; i++, dst += stride) {
+ vec_vsx_st(val, 0, dst);
+ vec_vsx_st(val, 16, dst);
+ }
+}
+
+void vpx_dc_128_predictor_32x32_vsx(uint8_t *dst, ptrdiff_t stride,
+ const uint8_t *above, const uint8_t *left) {
+ const uint8x16_t v128 = vec_sl(vec_splat_u8(1), vec_splat_u8(7));
+ (void)above;
+ (void)left;
+
+ dc_fill_predictor_32x32(dst, stride, v128);
+}