summaryrefslogtreecommitdiff
path: root/vpx_dsp
diff options
context:
space:
mode:
authorKaustubh Raste <kaustubh.raste@imgtec.com>2016-11-19 03:37:29 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2016-11-19 03:37:29 +0000
commita38e9f412dc2e6e026a69661a8a50306dd86404b (patch)
treeb78ee7ccec9080aa4f4db7b73898b408288f6281 /vpx_dsp
parent3d55311062b07732cd7863df32c9f05a60ecfac7 (diff)
parentc56e5dd620efc61f5185b314bf672255b35d289b (diff)
downloadlibvpx-a38e9f412dc2e6e026a69661a8a50306dd86404b.tar
libvpx-a38e9f412dc2e6e026a69661a8a50306dd86404b.tar.gz
libvpx-a38e9f412dc2e6e026a69661a8a50306dd86404b.tar.bz2
libvpx-a38e9f412dc2e6e026a69661a8a50306dd86404b.zip
Merge "Fix SingleLargeCoeff idct test"
Diffstat (limited to 'vpx_dsp')
-rw-r--r--vpx_dsp/mips/txfm_macros_msa.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/vpx_dsp/mips/txfm_macros_msa.h b/vpx_dsp/mips/txfm_macros_msa.h
index da100f6a9..f077fa481 100644
--- a/vpx_dsp/mips/txfm_macros_msa.h
+++ b/vpx_dsp/mips/txfm_macros_msa.h
@@ -15,19 +15,24 @@
#define DOTP_CONST_PAIR(reg0, reg1, cnst0, cnst1, out0, out1) \
{ \
- v8i16 k0_m = __msa_fill_h(cnst0); \
- v4i32 s0_m, s1_m, s2_m, s3_m; \
+ v4i32 s0_m, s1_m, s2_m, s3_m, s4_m, s5_m; \
+ v8i16 k0_m, k1_m, k2_m, zero = { 0 }; \
\
- s0_m = (v4i32)__msa_fill_h(cnst1); \
- k0_m = __msa_ilvev_h((v8i16)s0_m, k0_m); \
+ k0_m = __msa_fill_h(cnst0); \
+ k1_m = __msa_fill_h(cnst1); \
+ k2_m = __msa_ilvev_h((v8i16)k1_m, k0_m); \
+ k0_m = __msa_ilvev_h((v8i16)zero, k0_m); \
+ k1_m = __msa_ilvev_h(k1_m, (v8i16)zero); \
\
- ILVRL_H2_SW((-reg1), reg0, s1_m, s0_m); \
+ ILVRL_H2_SW(reg1, reg0, s5_m, s4_m); \
ILVRL_H2_SW(reg0, reg1, s3_m, s2_m); \
- DOTP_SH2_SW(s1_m, s0_m, k0_m, k0_m, s1_m, s0_m); \
+ DOTP_SH2_SW(s5_m, s4_m, k0_m, k0_m, s1_m, s0_m); \
+ s1_m = __msa_dpsub_s_w(s1_m, (v8i16)s5_m, k1_m); \
+ s0_m = __msa_dpsub_s_w(s0_m, (v8i16)s4_m, k1_m); \
SRARI_W2_SW(s1_m, s0_m, DCT_CONST_BITS); \
out0 = __msa_pckev_h((v8i16)s0_m, (v8i16)s1_m); \
\
- DOTP_SH2_SW(s3_m, s2_m, k0_m, k0_m, s1_m, s0_m); \
+ DOTP_SH2_SW(s3_m, s2_m, k2_m, k2_m, s1_m, s0_m); \
SRARI_W2_SW(s1_m, s0_m, DCT_CONST_BITS); \
out1 = __msa_pckev_h((v8i16)s0_m, (v8i16)s1_m); \
}