diff options
author | Luca Barbato <lu_zero@gentoo.org> | 2017-04-08 00:39:24 +0000 |
---|---|---|
committer | James Zern <jzern@google.com> | 2017-04-19 19:49:31 -0700 |
commit | d68d37872c82ab81da384a65ce17b684d4e2cc24 (patch) | |
tree | e4d42608182903d4dcc14c9e913a2ae50f25ea95 /vpx_dsp/ppc | |
parent | f9d20e6df21296899143d832f1a8d7ed7985e395 (diff) | |
download | libvpx-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.c | 19 |
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); +} |