From: hkuang Date: Fri, 16 Aug 2013 17:54:56 +0000 (-0700) Subject: Reduce instructions of idct4x4. X-Git-Tag: v1.3.0~590^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df0715204cccc9d9652bf43eb6fc164cca6a0fe4;p=libvpx Reduce instructions of idct4x4. Change-Id: Ia26a2526804e7e2f656b0051618a615fca8fc79d --- diff --git a/vp9/common/arm/neon/vp9_short_idct4x4_add_neon.asm b/vp9/common/arm/neon/vp9_short_idct4x4_add_neon.asm index 433032237..adc17fc97 100644 --- a/vp9/common/arm/neon/vp9_short_idct4x4_add_neon.asm +++ b/vp9/common/arm/neon/vp9_short_idct4x4_add_neon.asm @@ -81,17 +81,15 @@ ; input[1] * cospi_24_64 - input[3] * cospi_8_64; ; input[1] * cospi_8_64 + input[3] * cospi_24_64; vmull.s16 q15, d17, d22 - vmull.s16 q0, d19, d20 vmull.s16 q1, d17, d20 - vmull.s16 q2, d19, d22 - vsub.s32 q3, q15, q0 - vadd.s32 q8, q1, q2 + vmlsl.s16 q15, d19, d20 + vmlal.s16 q1, d19, d22 ; dct_const_round_shift vqrshrn.s32 d26, q13, #14 vqrshrn.s32 d27, q14, #14 - vqrshrn.s32 d29, q3, #14 - vqrshrn.s32 d28, q8, #14 + vqrshrn.s32 d29, q15, #14 + vqrshrn.s32 d28, q1, #14 ; stage 2 ; output[0] = step[0] + step[3]; @@ -132,17 +130,15 @@ ; input[1] * cospi_24_64 - input[3] * cospi_8_64; ; input[1] * cospi_8_64 + input[3] * cospi_24_64; vmull.s16 q15, d17, d22 - vmull.s16 q0, d19, d20 vmull.s16 q1, d17, d20 - vmull.s16 q2, d19, d22 - vsub.s32 q3, q15, q0 - vadd.s32 q8, q1, q2 + vmlsl.s16 q15, d19, d20 + vmlal.s16 q1, d19, d22 ; dct_const_round_shift vqrshrn.s32 d26, q13, #14 vqrshrn.s32 d27, q14, #14 - vqrshrn.s32 d29, q3, #14 - vqrshrn.s32 d28, q8, #14 + vqrshrn.s32 d29, q15, #14 + vqrshrn.s32 d28, q1, #14 ; stage 2 ; output[0] = step[0] + step[3];