diff options
author | Alexandra Hájková <alexandra.khirnova@gmail.com> | 2018-06-08 09:41:12 +0000 |
---|---|---|
committer | Alexandra Hájková <alexandra.khirnova@gmail.com> | 2018-06-14 16:39:10 +0000 |
commit | 0652a3f76c731336a3becb12ea449584a4f89b3d (patch) | |
tree | 07318a9c81ed69feee26c2c61016bdc16e07bd5e /vp9/common | |
parent | 4997a29c861e5bbd7d00a8a375a65160b3f6a695 (diff) | |
download | libvpx-0652a3f76c731336a3becb12ea449584a4f89b3d.tar libvpx-0652a3f76c731336a3becb12ea449584a4f89b3d.tar.gz libvpx-0652a3f76c731336a3becb12ea449584a4f89b3d.tar.bz2 libvpx-0652a3f76c731336a3becb12ea449584a4f89b3d.zip |
ppc: add vp9_iht16x16_256_add_vsx
Change-Id: I51e7ed32d8d87c25ee126e8b4f8fc616d0327584
Diffstat (limited to 'vp9/common')
-rw-r--r-- | vp9/common/ppc/vp9_idct_vsx.c | 31 | ||||
-rw-r--r-- | vp9/common/vp9_rtcd_defs.pl | 2 |
2 files changed, 32 insertions, 1 deletions
diff --git a/vp9/common/ppc/vp9_idct_vsx.c b/vp9/common/ppc/vp9_idct_vsx.c index a9426b168..1b2a93edb 100644 --- a/vp9/common/ppc/vp9_idct_vsx.c +++ b/vp9/common/ppc/vp9_idct_vsx.c @@ -82,3 +82,34 @@ void vp9_iht8x8_64_add_vsx(const tran_low_t *input, uint8_t *dest, int stride, vpx_round_store8x8_vsx(in, dest, stride); } + +void vp9_iht16x16_256_add_vsx(const tran_low_t *input, uint8_t *dest, + int stride, int tx_type) { + int16x8_t in0[16], in1[16]; + + LOAD_INPUT16(load_tran_low, input, 0, 8 * sizeof(*input), in0); + LOAD_INPUT16(load_tran_low, input, 8 * 8 * 2 * sizeof(*input), + 8 * sizeof(*input), in1); + + switch (tx_type) { + case DCT_DCT: + vpx_idct16_vsx(in0, in1); + vpx_idct16_vsx(in0, in1); + break; + case ADST_DCT: + vpx_idct16_vsx(in0, in1); + vpx_iadst16_vsx(in0, in1); + break; + case DCT_ADST: + vpx_iadst16_vsx(in0, in1); + vpx_idct16_vsx(in0, in1); + break; + default: + assert(tx_type == ADST_ADST); + vpx_iadst16_vsx(in0, in1); + vpx_iadst16_vsx(in0, in1); + break; + } + + vpx_round_store16x16_vsx(in0, in1, dest, stride); +} diff --git a/vp9/common/vp9_rtcd_defs.pl b/vp9/common/vp9_rtcd_defs.pl index 4afbffa90..8c84b1fd7 100644 --- a/vp9/common/vp9_rtcd_defs.pl +++ b/vp9/common/vp9_rtcd_defs.pl @@ -69,7 +69,7 @@ if (vpx_config("CONFIG_EMULATE_HARDWARE") ne "yes") { # CONFIG_VP9_HIGHBITDEPTH is off. specialize qw/vp9_iht4x4_16_add neon sse2 vsx/; specialize qw/vp9_iht8x8_64_add neon sse2 vsx/; - specialize qw/vp9_iht16x16_256_add neon sse2/; + specialize qw/vp9_iht16x16_256_add neon sse2 vsx/; if (vpx_config("CONFIG_VP9_HIGHBITDEPTH") ne "yes") { # Note that these specializations are appended to the above ones. specialize qw/vp9_iht4x4_16_add dspr2 msa/; |