summaryrefslogtreecommitdiff
path: root/vp9/common
diff options
context:
space:
mode:
authorAlexandra Hájková <alexandra.khirnova@gmail.com>2018-06-08 09:41:12 +0000
committerAlexandra Hájková <alexandra.khirnova@gmail.com>2018-06-14 16:39:10 +0000
commit0652a3f76c731336a3becb12ea449584a4f89b3d (patch)
tree07318a9c81ed69feee26c2c61016bdc16e07bd5e /vp9/common
parent4997a29c861e5bbd7d00a8a375a65160b3f6a695 (diff)
downloadlibvpx-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.c31
-rw-r--r--vp9/common/vp9_rtcd_defs.pl2
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/;