diff options
-rw-r--r-- | vp9/common/arm/neon/vp9_iht4x4_add_neon.c | 16 | ||||
-rw-r--r-- | vp9/common/arm/neon/vp9_iht8x8_add_neon.c | 104 | ||||
-rw-r--r-- | vpx_dsp/arm/idct16x16_add_neon.asm | 146 | ||||
-rw-r--r-- | vpx_dsp/arm/idct16x16_add_neon.c | 144 | ||||
-rw-r--r-- | vpx_dsp/arm/idct32x32_add_neon.c | 4 | ||||
-rw-r--r-- | vpx_dsp/arm/idct4x4_add_neon.asm | 16 | ||||
-rw-r--r-- | vpx_dsp/arm/idct8x8_add_neon.asm | 48 |
7 files changed, 239 insertions, 239 deletions
diff --git a/vp9/common/arm/neon/vp9_iht4x4_add_neon.c b/vp9/common/arm/neon/vp9_iht4x4_add_neon.c index cbd61de90..45040d745 100644 --- a/vp9/common/arm/neon/vp9_iht4x4_add_neon.c +++ b/vp9/common/arm/neon/vp9_iht4x4_add_neon.c @@ -77,10 +77,10 @@ static INLINE void IDCT4x4_1D(int16x4_t *d0s16, int16x4_t *d1s16, q15s32 = vmlsl_s16(q15s32, d19s16, *d0s16); q10s32 = vmlal_s16(q10s32, d19s16, *d2s16); - d26s16 = vqrshrn_n_s32(q13s32, 14); - d27s16 = vqrshrn_n_s32(q14s32, 14); - d29s16 = vqrshrn_n_s32(q15s32, 14); - d28s16 = vqrshrn_n_s32(q10s32, 14); + d26s16 = vrshrn_n_s32(q13s32, 14); + d27s16 = vrshrn_n_s32(q14s32, 14); + d29s16 = vrshrn_n_s32(q15s32, 14); + d28s16 = vrshrn_n_s32(q10s32, 14); q13s16 = vcombine_s16(d26s16, d27s16); q14s16 = vcombine_s16(d28s16, d29s16); @@ -125,10 +125,10 @@ static INLINE void IADST4x4_1D(int16x4_t *d3s16, int16x4_t *d4s16, q14s32 = vaddq_s32(q11s32, q12s32); q10s32 = vsubq_s32(q10s32, q12s32); - d16s16 = vqrshrn_n_s32(q13s32, 14); - d17s16 = vqrshrn_n_s32(q14s32, 14); - d18s16 = vqrshrn_n_s32(q15s32, 14); - d19s16 = vqrshrn_n_s32(q10s32, 14); + d16s16 = vrshrn_n_s32(q13s32, 14); + d17s16 = vrshrn_n_s32(q14s32, 14); + d18s16 = vrshrn_n_s32(q15s32, 14); + d19s16 = vrshrn_n_s32(q10s32, 14); *q8s16 = vcombine_s16(d16s16, d17s16); *q9s16 = vcombine_s16(d18s16, d19s16); diff --git a/vp9/common/arm/neon/vp9_iht8x8_add_neon.c b/vp9/common/arm/neon/vp9_iht8x8_add_neon.c index f7e0a6d98..5f54e6b90 100644 --- a/vp9/common/arm/neon/vp9_iht8x8_add_neon.c +++ b/vp9/common/arm/neon/vp9_iht8x8_add_neon.c @@ -76,10 +76,10 @@ static INLINE void IDCT8x8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q5s32 = vmlsl_s16(q5s32, d22s16, d3s16); q6s32 = vmlsl_s16(q6s32, d23s16, d3s16); - d8s16 = vqrshrn_n_s32(q2s32, 14); - d9s16 = vqrshrn_n_s32(q3s32, 14); - d10s16 = vqrshrn_n_s32(q5s32, 14); - d11s16 = vqrshrn_n_s32(q6s32, 14); + d8s16 = vrshrn_n_s32(q2s32, 14); + d9s16 = vrshrn_n_s32(q3s32, 14); + d10s16 = vrshrn_n_s32(q5s32, 14); + d11s16 = vrshrn_n_s32(q6s32, 14); q4s16 = vcombine_s16(d8s16, d9s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -93,10 +93,10 @@ static INLINE void IDCT8x8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q9s32 = vmlal_s16(q9s32, d22s16, d2s16); q13s32 = vmlal_s16(q13s32, d23s16, d2s16); - d14s16 = vqrshrn_n_s32(q2s32, 14); - d15s16 = vqrshrn_n_s32(q3s32, 14); - d12s16 = vqrshrn_n_s32(q9s32, 14); - d13s16 = vqrshrn_n_s32(q13s32, 14); + d14s16 = vrshrn_n_s32(q2s32, 14); + d15s16 = vrshrn_n_s32(q3s32, 14); + d12s16 = vrshrn_n_s32(q9s32, 14); + d13s16 = vrshrn_n_s32(q13s32, 14); q6s16 = vcombine_s16(d12s16, d13s16); q7s16 = vcombine_s16(d14s16, d15s16); @@ -115,10 +115,10 @@ static INLINE void IDCT8x8_1D(int16x8_t *q8s16, int16x8_t *q9s16, d0s16 = vdup_n_s16(cospi_24_64); d1s16 = vdup_n_s16(cospi_8_64); - d18s16 = vqrshrn_n_s32(q2s32, 14); - d19s16 = vqrshrn_n_s32(q3s32, 14); - d22s16 = vqrshrn_n_s32(q13s32, 14); - d23s16 = vqrshrn_n_s32(q15s32, 14); + d18s16 = vrshrn_n_s32(q2s32, 14); + d19s16 = vrshrn_n_s32(q3s32, 14); + d22s16 = vrshrn_n_s32(q13s32, 14); + d23s16 = vrshrn_n_s32(q15s32, 14); *q9s16 = vcombine_s16(d18s16, d19s16); *q11s16 = vcombine_s16(d22s16, d23s16); @@ -132,10 +132,10 @@ static INLINE void IDCT8x8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q8s32 = vmlal_s16(q8s32, d28s16, d0s16); q12s32 = vmlal_s16(q12s32, d29s16, d0s16); - d26s16 = vqrshrn_n_s32(q2s32, 14); - d27s16 = vqrshrn_n_s32(q3s32, 14); - d30s16 = vqrshrn_n_s32(q8s32, 14); - d31s16 = vqrshrn_n_s32(q12s32, 14); + d26s16 = vrshrn_n_s32(q2s32, 14); + d27s16 = vrshrn_n_s32(q3s32, 14); + d30s16 = vrshrn_n_s32(q8s32, 14); + d31s16 = vrshrn_n_s32(q12s32, 14); *q13s16 = vcombine_s16(d26s16, d27s16); *q15s16 = vcombine_s16(d30s16, d31s16); @@ -165,10 +165,10 @@ static INLINE void IDCT8x8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q11s32 = vmlal_s16(q11s32, d26s16, d16s16); q12s32 = vmlal_s16(q12s32, d27s16, d16s16); - d10s16 = vqrshrn_n_s32(q9s32, 14); - d11s16 = vqrshrn_n_s32(q10s32, 14); - d12s16 = vqrshrn_n_s32(q11s32, 14); - d13s16 = vqrshrn_n_s32(q12s32, 14); + d10s16 = vrshrn_n_s32(q9s32, 14); + d11s16 = vrshrn_n_s32(q10s32, 14); + d12s16 = vrshrn_n_s32(q11s32, 14); + d13s16 = vrshrn_n_s32(q12s32, 14); q5s16 = vcombine_s16(d10s16, d11s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -242,8 +242,8 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q1s32 = vsubq_s32(q1s32, q5s32); q2s32 = vsubq_s32(q2s32, q6s32); - d22s16 = vqrshrn_n_s32(q11s32, 14); - d23s16 = vqrshrn_n_s32(q12s32, 14); + d22s16 = vrshrn_n_s32(q11s32, 14); + d23s16 = vrshrn_n_s32(q12s32, 14); *q11s16 = vcombine_s16(d22s16, d23s16); q12s32 = vaddq_s32(q3s32, q7s32); @@ -251,12 +251,12 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q3s32 = vsubq_s32(q3s32, q7s32); q4s32 = vsubq_s32(q4s32, q8s32); - d2s16 = vqrshrn_n_s32(q1s32, 14); - d3s16 = vqrshrn_n_s32(q2s32, 14); - d24s16 = vqrshrn_n_s32(q12s32, 14); - d25s16 = vqrshrn_n_s32(q15s32, 14); - d6s16 = vqrshrn_n_s32(q3s32, 14); - d7s16 = vqrshrn_n_s32(q4s32, 14); + d2s16 = vrshrn_n_s32(q1s32, 14); + d3s16 = vrshrn_n_s32(q2s32, 14); + d24s16 = vrshrn_n_s32(q12s32, 14); + d25s16 = vrshrn_n_s32(q15s32, 14); + d6s16 = vrshrn_n_s32(q3s32, 14); + d7s16 = vrshrn_n_s32(q4s32, 14); *q12s16 = vcombine_s16(d24s16, d25s16); d0s16 = vdup_n_s16(cospi_10_64); @@ -291,10 +291,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q2s32 = vsubq_s32(q2s32, q10s32); q6s32 = vsubq_s32(q6s32, q9s32); - d28s16 = vqrshrn_n_s32(q14s32, 14); - d29s16 = vqrshrn_n_s32(q15s32, 14); - d4s16 = vqrshrn_n_s32(q2s32, 14); - d5s16 = vqrshrn_n_s32(q6s32, 14); + d28s16 = vrshrn_n_s32(q14s32, 14); + d29s16 = vrshrn_n_s32(q15s32, 14); + d4s16 = vrshrn_n_s32(q2s32, 14); + d5s16 = vrshrn_n_s32(q6s32, 14); *q14s16 = vcombine_s16(d28s16, d29s16); q9s32 = vaddq_s32(q4s32, q0s32); @@ -305,10 +305,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, d30s16 = vdup_n_s16(cospi_8_64); d31s16 = vdup_n_s16(cospi_24_64); - d18s16 = vqrshrn_n_s32(q9s32, 14); - d19s16 = vqrshrn_n_s32(q10s32, 14); - d8s16 = vqrshrn_n_s32(q4s32, 14); - d9s16 = vqrshrn_n_s32(q5s32, 14); + d18s16 = vrshrn_n_s32(q9s32, 14); + d19s16 = vrshrn_n_s32(q10s32, 14); + d8s16 = vrshrn_n_s32(q4s32, 14); + d9s16 = vrshrn_n_s32(q5s32, 14); *q9s16 = vcombine_s16(d18s16, d19s16); q5s32 = vmull_s16(d2s16, d30s16); @@ -341,10 +341,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q5s32 = vsubq_s32(q5s32, q1s32); q6s32 = vsubq_s32(q6s32, q3s32); - d18s16 = vqrshrn_n_s32(q14s32, 14); - d19s16 = vqrshrn_n_s32(q15s32, 14); - d10s16 = vqrshrn_n_s32(q5s32, 14); - d11s16 = vqrshrn_n_s32(q6s32, 14); + d18s16 = vrshrn_n_s32(q14s32, 14); + d19s16 = vrshrn_n_s32(q15s32, 14); + d10s16 = vrshrn_n_s32(q5s32, 14); + d11s16 = vrshrn_n_s32(q6s32, 14); *q9s16 = vcombine_s16(d18s16, d19s16); q1s32 = vaddq_s32(q7s32, q10s32); @@ -352,10 +352,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q7s32 = vsubq_s32(q7s32, q10s32); q0s32 = vsubq_s32(q0s32, q2s32); - d28s16 = vqrshrn_n_s32(q1s32, 14); - d29s16 = vqrshrn_n_s32(q3s32, 14); - d14s16 = vqrshrn_n_s32(q7s32, 14); - d15s16 = vqrshrn_n_s32(q0s32, 14); + d28s16 = vrshrn_n_s32(q1s32, 14); + d29s16 = vrshrn_n_s32(q3s32, 14); + d14s16 = vrshrn_n_s32(q7s32, 14); + d15s16 = vrshrn_n_s32(q0s32, 14); *q14s16 = vcombine_s16(d28s16, d29s16); d30s16 = vdup_n_s16(cospi_16_64); @@ -374,10 +374,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q13s32 = vmlsl_s16(q13s32, d24s16, d30s16); q1s32 = vmlsl_s16(q1s32, d25s16, d30s16); - d4s16 = vqrshrn_n_s32(q2s32, 14); - d5s16 = vqrshrn_n_s32(q3s32, 14); - d24s16 = vqrshrn_n_s32(q13s32, 14); - d25s16 = vqrshrn_n_s32(q1s32, 14); + d4s16 = vrshrn_n_s32(q2s32, 14); + d5s16 = vrshrn_n_s32(q3s32, 14); + d24s16 = vrshrn_n_s32(q13s32, 14); + d25s16 = vrshrn_n_s32(q1s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); *q12s16 = vcombine_s16(d24s16, d25s16); @@ -391,10 +391,10 @@ static INLINE void IADST8X8_1D(int16x8_t *q8s16, int16x8_t *q9s16, q11s32 = vmlsl_s16(q11s32, d14s16, d30s16); q0s32 = vmlsl_s16(q0s32, d15s16, d30s16); - d20s16 = vqrshrn_n_s32(q13s32, 14); - d21s16 = vqrshrn_n_s32(q1s32, 14); - d12s16 = vqrshrn_n_s32(q11s32, 14); - d13s16 = vqrshrn_n_s32(q0s32, 14); + d20s16 = vrshrn_n_s32(q13s32, 14); + d21s16 = vrshrn_n_s32(q1s32, 14); + d12s16 = vrshrn_n_s32(q11s32, 14); + d13s16 = vrshrn_n_s32(q0s32, 14); *q10s16 = vcombine_s16(d20s16, d21s16); q6s16 = vcombine_s16(d12s16, d13s16); diff --git a/vpx_dsp/arm/idct16x16_add_neon.asm b/vpx_dsp/arm/idct16x16_add_neon.asm index 05fce054c..7e2161cf8 100644 --- a/vpx_dsp/arm/idct16x16_add_neon.asm +++ b/vpx_dsp/arm/idct16x16_add_neon.asm @@ -100,12 +100,12 @@ vdup.16 d3, r12 ; duplicate cospi_20_64 ; dct_const_round_shift(temp1) - vqrshrn.s32 d8, q2, #14 ; >> 14 - vqrshrn.s32 d9, q3, #14 ; >> 14 + vrshrn.s32 d8, q2, #14 ; >> 14 + vrshrn.s32 d9, q3, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d14, q5, #14 ; >> 14 - vqrshrn.s32 d15, q6, #14 ; >> 14 + vrshrn.s32 d14, q5, #14 ; >> 14 + vrshrn.s32 d15, q6, #14 ; >> 14 ; preloading to avoid stall ; cospi_16_64 = 11585 @@ -131,12 +131,12 @@ vmlal.s16 q15, d23, d2 ; dct_const_round_shift(temp1) - vqrshrn.s32 d10, q2, #14 ; >> 14 - vqrshrn.s32 d11, q3, #14 ; >> 14 + vrshrn.s32 d10, q2, #14 ; >> 14 + vrshrn.s32 d11, q3, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q9, #14 ; >> 14 - vqrshrn.s32 d13, q15, #14 ; >> 14 + vrshrn.s32 d12, q9, #14 ; >> 14 + vrshrn.s32 d13, q15, #14 ; >> 14 ; stage 4 vdup.16 d30, r3 ; cospi_16_64 @@ -164,12 +164,12 @@ vsub.s32 q1, q11, q1 ; dct_const_round_shift(temp1) - vqrshrn.s32 d16, q3, #14 ; >> 14 - vqrshrn.s32 d17, q12, #14 ; >> 14 + vrshrn.s32 d16, q3, #14 ; >> 14 + vrshrn.s32 d17, q12, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d18, q13, #14 ; >> 14 - vqrshrn.s32 d19, q1, #14 ; >> 14 + vrshrn.s32 d18, q13, #14 ; >> 14 + vrshrn.s32 d19, q1, #14 ; >> 14 ; step1[2] * cospi_24_64 - step1[3] * cospi_8_64; ; step1[2] * cospi_8_64 @@ -189,12 +189,12 @@ vmlsl.s16 q13, d29, d31 ; dct_const_round_shift(temp2) - vqrshrn.s32 d22, q0, #14 ; >> 14 - vqrshrn.s32 d23, q1, #14 ; >> 14 + vrshrn.s32 d22, q0, #14 ; >> 14 + vrshrn.s32 d23, q1, #14 ; >> 14 ; dct_const_round_shift(temp1) - vqrshrn.s32 d20, q12, #14 ; >> 14 - vqrshrn.s32 d21, q13, #14 ; >> 14 + vrshrn.s32 d20, q12, #14 ; >> 14 + vrshrn.s32 d21, q13, #14 ; >> 14 vsub.s16 q13, q4, q5 ; step2[5] = step1[4] - step1[5]; vadd.s16 q4, q4, q5 ; step2[4] = step1[4] + step1[5]; @@ -229,15 +229,15 @@ vadd.s32 q10, q10, q12 ; dct_const_round_shift(temp1) - vqrshrn.s32 d10, q6, #14 ; >> 14 - vqrshrn.s32 d11, q13, #14 ; >> 14 + vrshrn.s32 d10, q6, #14 ; >> 14 + vrshrn.s32 d11, q13, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q9, #14 ; >> 14 - vqrshrn.s32 d13, q10, #14 ; >> 14 + vrshrn.s32 d12, q9, #14 ; >> 14 + vrshrn.s32 d13, q10, #14 ; >> 14 ; stage 6 - vadd.s16 q8, q0, q15 ; step2[0] = step1[0] + step1[7]; + vadd.s16 q8, q0, q15 ; step2[0] = step1[0] + step1[7]; vadd.s16 q9, q1, q6 ; step2[1] = step1[1] + step1[6]; vadd.s16 q10, q2, q5 ; step2[2] = step1[2] + step1[5]; vadd.s16 q11, q3, q4 ; step2[3] = step1[3] + step1[4]; @@ -327,12 +327,12 @@ vdup.16 d31, r12 ; duplicate cospi_18_64 ; dct_const_round_shift(temp1) - vqrshrn.s32 d0, q2, #14 ; >> 14 - vqrshrn.s32 d1, q3, #14 ; >> 14 + vrshrn.s32 d0, q2, #14 ; >> 14 + vrshrn.s32 d1, q3, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d14, q1, #14 ; >> 14 - vqrshrn.s32 d15, q4, #14 ; >> 14 + vrshrn.s32 d14, q1, #14 ; >> 14 + vrshrn.s32 d15, q4, #14 ; >> 14 ; preloading to avoid stall ; cospi_22_64 = 7723 @@ -361,12 +361,12 @@ vdup.16 d31, r12 ; duplicate cospi_10_64 ; dct_const_round_shift(temp1) - vqrshrn.s32 d2, q2, #14 ; >> 14 - vqrshrn.s32 d3, q3, #14 ; >> 14 + vrshrn.s32 d2, q2, #14 ; >> 14 + vrshrn.s32 d3, q3, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q4, #14 ; >> 14 - vqrshrn.s32 d13, q5, #14 ; >> 14 + vrshrn.s32 d12, q4, #14 ; >> 14 + vrshrn.s32 d13, q5, #14 ; >> 14 ; step1[10] * cospi_22_64 vmull.s16 q11, d20, d30 @@ -395,12 +395,12 @@ vdup.16 d31, r12 ; duplicate cospi_26_64 ; dct_const_round_shift(temp1) - vqrshrn.s32 d4, q11, #14 ; >> 14 - vqrshrn.s32 d5, q12, #14 ; >> 14 + vrshrn.s32 d4, q11, #14 ; >> 14 + vrshrn.s32 d5, q12, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d11, q5, #14 ; >> 14 - vqrshrn.s32 d10, q4, #14 ; >> 14 + vrshrn.s32 d11, q5, #14 ; >> 14 + vrshrn.s32 d10, q4, #14 ; >> 14 ; step1[11] * cospi_6_64 vmull.s16 q10, d28, d30 @@ -422,12 +422,12 @@ vadd.s16 q0, q0, q1 ; step1[8]=step2[8]+step2[9] ; dct_const_round_shift(temp1) - vqrshrn.s32 d6, q10, #14 ; >> 14 - vqrshrn.s32 d7, q11, #14 ; >> 14 + vrshrn.s32 d6, q10, #14 ; >> 14 + vrshrn.s32 d7, q11, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d8, q12, #14 ; >> 14 - vqrshrn.s32 d9, q13, #14 ; >> 14 + vrshrn.s32 d8, q12, #14 ; >> 14 + vrshrn.s32 d9, q13, #14 ; >> 14 ; stage 3 vsub.s16 q10, q3, q2 ; step1[10]=-step2[10]+step2[11] @@ -468,12 +468,12 @@ vdup.16 d30, r12 ; duplicate -cospi_8_64 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q2, #14 ; >> 14 - vqrshrn.s32 d13, q3, #14 ; >> 14 + vrshrn.s32 d12, q2, #14 ; >> 14 + vrshrn.s32 d13, q3, #14 ; >> 14 ; dct_const_round_shift(temp1) - vqrshrn.s32 d2, q4, #14 ; >> 14 - vqrshrn.s32 d3, q5, #14 ; >> 14 + vrshrn.s32 d2, q4, #14 ; >> 14 + vrshrn.s32 d3, q5, #14 ; >> 14 vmov.s16 q3, q11 vmov.s16 q4, q12 @@ -495,12 +495,12 @@ vmlal.s16 q9, d27, d31 ; dct_const_round_shift(temp2) - vqrshrn.s32 d4, q11, #14 ; >> 14 - vqrshrn.s32 d5, q12, #14 ; >> 14 + vrshrn.s32 d4, q11, #14 ; >> 14 + vrshrn.s32 d5, q12, #14 ; >> 14 ; dct_const_round_shift(temp1) - vqrshrn.s32 d10, q8, #14 ; >> 14 - vqrshrn.s32 d11, q9, #14 ; >> 14 + vrshrn.s32 d10, q8, #14 ; >> 14 + vrshrn.s32 d11, q9, #14 ; >> 14 ; stage 5 vadd.s16 q8, q0, q3 ; step1[8] = step2[8]+step2[11]; @@ -535,12 +535,12 @@ vadd.s32 q4, q4, q1 ; dct_const_round_shift(temp1) - vqrshrn.s32 d4, q5, #14 ; >> 14 - vqrshrn.s32 d5, q6, #14 ; >> 14 + vrshrn.s32 d4, q5, #14 ; >> 14 + vrshrn.s32 d5, q6, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d10, q10, #14 ; >> 14 - vqrshrn.s32 d11, q4, #14 ; >> 14 + vrshrn.s32 d10, q10, #14 ; >> 14 + vrshrn.s32 d11, q4, #14 ; >> 14 ; step1[11] * cospi_16_64 vmull.s16 q0, d22, d14 @@ -559,12 +559,12 @@ vadd.s32 q6, q6, q1 ; dct_const_round_shift(temp1) - vqrshrn.s32 d6, q10, #14 ; >> 14 - vqrshrn.s32 d7, q4, #14 ; >> 14 + vrshrn.s32 d6, q10, #14 ; >> 14 + vrshrn.s32 d7, q4, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d8, q13, #14 ; >> 14 - vqrshrn.s32 d9, q6, #14 ; >> 14 + vrshrn.s32 d8, q13, #14 ; >> 14 + vrshrn.s32 d9, q6, #14 ; >> 14 mov r4, #16 ; pass1_output stride ldr r3, [sp] ; load skip_adding @@ -833,12 +833,12 @@ end_idct16x16_pass2 vadd.s32 q10, q10, q12 ; dct_const_round_shift(temp1) - vqrshrn.s32 d11, q15, #14 ; >> 14 - vqrshrn.s32 d10, q6, #14 ; >> 14 + vrshrn.s32 d11, q15, #14 ; >> 14 + vrshrn.s32 d10, q6, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q9, #14 ; >> 14 - vqrshrn.s32 d13, q10, #14 ; >> 14 + vrshrn.s32 d12, q9, #14 ; >> 14 + vrshrn.s32 d13, q10, #14 ; >> 14 ; stage 6 vadd.s16 q2, q8, q7 ; step2[0] = step1[0] + step1[7]; @@ -950,12 +950,12 @@ end_idct16x16_pass2 vdup.16 d30, r12 ; duplicate -cospi_8_64 ; dct_const_round_shift(temp1) - vqrshrn.s32 d2, q12, #14 ; >> 14 - vqrshrn.s32 d3, q5, #14 ; >> 14 + vrshrn.s32 d2, q12, #14 ; >> 14 + vrshrn.s32 d3, q5, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d12, q2, #14 ; >> 14 - vqrshrn.s32 d13, q11, #14 ; >> 14 + vrshrn.s32 d12, q2, #14 ; >> 14 + vrshrn.s32 d13, q11, #14 ; >> 14 ; - step1[13] * cospi_8_64 vmull.s16 q10, d8, d30 @@ -974,12 +974,12 @@ end_idct16x16_pass2 vmlal.s16 q9, d9, d31 ; dct_const_round_shift(temp1) - vqrshrn.s32 d4, q10, #14 ; >> 14 - vqrshrn.s32 d5, q13, #14 ; >> 14 + vrshrn.s32 d4, q10, #14 ; >> 14 + vrshrn.s32 d5, q13, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d10, q8, #14 ; >> 14 - vqrshrn.s32 d11, q9, #14 ; >> 14 + vrshrn.s32 d10, q8, #14 ; >> 14 + vrshrn.s32 d11, q9, #14 ; >> 14 ; stage 5 vadd.s16 q8, q0, q3 ; step1[8] = step2[8]+step2[11]; @@ -1014,12 +1014,12 @@ end_idct16x16_pass2 vadd.s32 q1, q4, q1 ; dct_const_round_shift(temp1) - vqrshrn.s32 d4, q5, #14 ; >> 14 - vqrshrn.s32 d5, q6, #14 ; >> 14 + vrshrn.s32 d4, q5, #14 ; >> 14 + vrshrn.s32 d5, q6, #14 ; >> 14 ; dct_const_round_shift(temp2) - vqrshrn.s32 d10, q0, #14 ; >> 14 - vqrshrn.s32 d11, q1, #14 ; >> 14 + vrshrn.s32 d10, q0, #14 ; >> 14 + vrshrn.s32 d11, q1, #14 ; >> 14 ; step1[11] * cospi_16_64 vmull.s16 q0, d22, d14 @@ -1038,12 +1038,12 @@ end_idct16x16_pass2 vadd.s32 q6, q6, q1 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d6, q10, #14 ; >> 14 - vqrshrn.s32 d7, q4, #14 ; >> 14 + vrshrn.s32 d6, q10, #14 ; >> 14 + vrshrn.s32 d7, q4, #14 ; >> 14 ; dct_const_round_shift((step1[11] + step1[12]) * cospi_16_64); - vqrshrn.s32 d8, q13, #14 ; >> 14 - vqrshrn.s32 d9, q6, #14 ; >> 14 + vrshrn.s32 d8, q13, #14 ; >> 14 + vrshrn.s32 d9, q6, #14 ; >> 14 mov r4, #16 ; pass1_output stride ldr r3, [sp] ; load skip_adding diff --git a/vpx_dsp/arm/idct16x16_add_neon.c b/vpx_dsp/arm/idct16x16_add_neon.c index d101bba41..08e82a15c 100644 --- a/vpx_dsp/arm/idct16x16_add_neon.c +++ b/vpx_dsp/arm/idct16x16_add_neon.c @@ -85,10 +85,10 @@ void vpx_idct16x16_256_add_neon_pass1(const int16_t *in, int16_t *out) { d2s16 = vdup_n_s16((int16_t)cospi_12_64); d3s16 = vdup_n_s16((int16_t)cospi_20_64); - d8s16 = vqrshrn_n_s32(q2s32, 14); - d9s16 = vqrshrn_n_s32(q3s32, 14); - d14s16 = vqrshrn_n_s32(q5s32, 14); - d15s16 = vqrshrn_n_s32(q6s32, 14); + d8s16 = vrshrn_n_s32(q2s32, 14); + d9s16 = vrshrn_n_s32(q3s32, 14); + d14s16 = vrshrn_n_s32(q5s32, 14); + d15s16 = vrshrn_n_s32(q6s32, 14); q4s16 = vcombine_s16(d8s16, d9s16); q7s16 = vcombine_s16(d14s16, d15s16); @@ -102,10 +102,10 @@ void vpx_idct16x16_256_add_neon_pass1(const int16_t *in, int16_t *out) { q9s32 = vmlal_s16(q9s32, d22s16, d2s16); q15s32 = vmlal_s16(q15s32, d23s16, d2s16); - d10s16 = vqrshrn_n_s32(q2s32, 14); - d11s16 = vqrshrn_n_s32(q3s32, 14); - d12s16 = vqrshrn_n_s32(q9s32, 14); - d13s16 = vqrshrn_n_s32(q15s32, 14); + d10s16 = vrshrn_n_s32(q2s32, 14); + d11s16 = vrshrn_n_s32(q3s32, 14); + d12s16 = vrshrn_n_s32(q9s32, 14); + d13s16 = vrshrn_n_s32(q15s32, 14); q5s16 = vcombine_s16(d10s16, d11s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -125,10 +125,10 @@ void vpx_idct16x16_256_add_neon_pass1(const int16_t *in, int16_t *out) { q13s32 = vsubq_s32(q2s32, q0s32); q1s32 = vsubq_s32(q11s32, q1s32); - d16s16 = vqrshrn_n_s32(q3s32, 14); - d17s16 = vqrshrn_n_s32(q12s32, 14); - d18s16 = vqrshrn_n_s32(q13s32, 14); - d19s16 = vqrshrn_n_s32(q1s32, 14); + d16s16 = vrshrn_n_s32(q3s32, 14); + d17s16 = vrshrn_n_s32(q12s32, 14); + d18s16 = vrshrn_n_s32(q13s32, 14); + d19s16 = vrshrn_n_s32(q1s32, 14); q8s16 = vcombine_s16(d16s16, d17s16); q9s16 = vcombine_s16(d18s16, d19s16); @@ -142,10 +142,10 @@ void vpx_idct16x16_256_add_neon_pass1(const int16_t *in, int16_t *out) { q12s32 = vmlsl_s16(q12s32, d28s16, d31s16); q13s32 = vmlsl_s16(q13s32, d29s16, d31s16); - d22s16 = vqrshrn_n_s32(q0s32, 14); - d23s16 = vqrshrn_n_s32(q1s32, 14); - d20s16 = vqrshrn_n_s32(q12s32, 14); - d21s16 = vqrshrn_n_s32(q13s32, 14); + d22s16 = vrshrn_n_s32(q0s32, 14); + d23s16 = vrshrn_n_s32(q1s32, 14); + d20s16 = vrshrn_n_s32(q12s32, 14); + d21s16 = vrshrn_n_s32(q13s32, 14); q10s16 = vcombine_s16(d20s16, d21s16); q11s16 = vcombine_s16(d22s16, d23s16); @@ -176,10 +176,10 @@ void vpx_idct16x16_256_add_neon_pass1(const int16_t *in, int16_t *out) { q9s32 = vaddq_s32(q9s32, q11s32); q10s32 = vaddq_s32(q10s32, q12s32); - d10s16 = vqrshrn_n_s32(q6s32, 14); - d11s16 = vqrshrn_n_s32(q13s32, 14); - d12s16 = vqrshrn_n_s32(q9s32, 14); - d13s16 = vqrshrn_n_s32(q10s32, 14); + d10s16 = vrshrn_n_s32(q6s32, 14); + d11s16 = vrshrn_n_s32(q13s32, 14); + d12s16 = vrshrn_n_s32(q9s32, 14); + d13s16 = vrshrn_n_s32(q10s32, 14); q5s16 = vcombine_s16(d10s16, d11s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -289,10 +289,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q1s32 = vmlal_s16(q1s32, d30s16, d12s16); q4s32 = vmlal_s16(q4s32, d31s16, d12s16); - d0s16 = vqrshrn_n_s32(q2s32, 14); - d1s16 = vqrshrn_n_s32(q3s32, 14); - d14s16 = vqrshrn_n_s32(q1s32, 14); - d15s16 = vqrshrn_n_s32(q4s32, 14); + d0s16 = vrshrn_n_s32(q2s32, 14); + d1s16 = vrshrn_n_s32(q3s32, 14); + d14s16 = vrshrn_n_s32(q1s32, 14); + d15s16 = vrshrn_n_s32(q4s32, 14); q0s16 = vcombine_s16(d0s16, d1s16); q7s16 = vcombine_s16(d14s16, d15s16); @@ -309,10 +309,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q4s32 = vmlal_s16(q4s32, d22s16, d30s16); q5s32 = vmlal_s16(q5s32, d23s16, d30s16); - d2s16 = vqrshrn_n_s32(q2s32, 14); - d3s16 = vqrshrn_n_s32(q3s32, 14); - d12s16 = vqrshrn_n_s32(q4s32, 14); - d13s16 = vqrshrn_n_s32(q5s32, 14); + d2s16 = vrshrn_n_s32(q2s32, 14); + d3s16 = vrshrn_n_s32(q3s32, 14); + d12s16 = vrshrn_n_s32(q4s32, 14); + d13s16 = vrshrn_n_s32(q5s32, 14); q1s16 = vcombine_s16(d2s16, d3s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -329,10 +329,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q4s32 = vmlal_s16(q4s32, d26s16, d30s16); q5s32 = vmlal_s16(q5s32, d27s16, d30s16); - d4s16 = vqrshrn_n_s32(q11s32, 14); - d5s16 = vqrshrn_n_s32(q12s32, 14); - d11s16 = vqrshrn_n_s32(q5s32, 14); - d10s16 = vqrshrn_n_s32(q4s32, 14); + d4s16 = vrshrn_n_s32(q11s32, 14); + d5s16 = vrshrn_n_s32(q12s32, 14); + d11s16 = vrshrn_n_s32(q5s32, 14); + d10s16 = vrshrn_n_s32(q4s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -349,10 +349,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q12s32 = vmlal_s16(q12s32, d18s16, d30s16); q13s32 = vmlal_s16(q13s32, d19s16, d30s16); - d6s16 = vqrshrn_n_s32(q10s32, 14); - d7s16 = vqrshrn_n_s32(q11s32, 14); - d8s16 = vqrshrn_n_s32(q12s32, 14); - d9s16 = vqrshrn_n_s32(q13s32, 14); + d6s16 = vrshrn_n_s32(q10s32, 14); + d7s16 = vrshrn_n_s32(q11s32, 14); + d8s16 = vrshrn_n_s32(q12s32, 14); + d9s16 = vrshrn_n_s32(q13s32, 14); q3s16 = vcombine_s16(d6s16, d7s16); q4s16 = vcombine_s16(d8s16, d9s16); @@ -389,10 +389,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q4s32 = vmlsl_s16(q4s32, d18s16, d30s16); q5s32 = vmlsl_s16(q5s32, d19s16, d30s16); - d12s16 = vqrshrn_n_s32(q2s32, 14); - d13s16 = vqrshrn_n_s32(q3s32, 14); - d2s16 = vqrshrn_n_s32(q4s32, 14); - d3s16 = vqrshrn_n_s32(q5s32, 14); + d12s16 = vrshrn_n_s32(q2s32, 14); + d13s16 = vrshrn_n_s32(q3s32, 14); + d2s16 = vrshrn_n_s32(q4s32, 14); + d3s16 = vrshrn_n_s32(q5s32, 14); q1s16 = vcombine_s16(d2s16, d3s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -410,10 +410,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q8s32 = vmlal_s16(q8s32, d26s16, d31s16); q9s32 = vmlal_s16(q9s32, d27s16, d31s16); - d4s16 = vqrshrn_n_s32(q11s32, 14); - d5s16 = vqrshrn_n_s32(q12s32, 14); - d10s16 = vqrshrn_n_s32(q8s32, 14); - d11s16 = vqrshrn_n_s32(q9s32, 14); + d4s16 = vrshrn_n_s32(q11s32, 14); + d5s16 = vrshrn_n_s32(q12s32, 14); + d10s16 = vrshrn_n_s32(q8s32, 14); + d11s16 = vrshrn_n_s32(q9s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -449,10 +449,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q10s32 = vaddq_s32(q3s32, q0s32); q4s32 = vaddq_s32(q4s32, q1s32); - d4s16 = vqrshrn_n_s32(q5s32, 14); - d5s16 = vqrshrn_n_s32(q6s32, 14); - d10s16 = vqrshrn_n_s32(q10s32, 14); - d11s16 = vqrshrn_n_s32(q4s32, 14); + d4s16 = vrshrn_n_s32(q5s32, 14); + d5s16 = vrshrn_n_s32(q6s32, 14); + d10s16 = vrshrn_n_s32(q10s32, 14); + d11s16 = vrshrn_n_s32(q4s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -466,10 +466,10 @@ void vpx_idct16x16_256_add_neon_pass2(const int16_t *src, int16_t *out, q13s32 = vaddq_s32(q13s32, q0s32); q6s32 = vaddq_s32(q6s32, q1s32); - d6s16 = vqrshrn_n_s32(q10s32, 14); - d7s16 = vqrshrn_n_s32(q4s32, 14); - d8s16 = vqrshrn_n_s32(q13s32, 14); - d9s16 = vqrshrn_n_s32(q6s32, 14); + d6s16 = vrshrn_n_s32(q10s32, 14); + d7s16 = vrshrn_n_s32(q4s32, 14); + d8s16 = vrshrn_n_s32(q13s32, 14); + d9s16 = vrshrn_n_s32(q6s32, 14); q3s16 = vcombine_s16(d6s16, d7s16); q4s16 = vcombine_s16(d8s16, d9s16); @@ -823,10 +823,10 @@ void vpx_idct16x16_10_add_neon_pass1(const tran_low_t *in, int16_t *out) { q9s32 = vaddq_s32(q9s32, q11s32); q10s32 = vaddq_s32(q10s32, q12s32); - d11s16 = vqrshrn_n_s32(q15s32, 14); - d10s16 = vqrshrn_n_s32(q6s32, 14); - d12s16 = vqrshrn_n_s32(q9s32, 14); - d13s16 = vqrshrn_n_s32(q10s32, 14); + d11s16 = vrshrn_n_s32(q15s32, 14); + d10s16 = vrshrn_n_s32(q6s32, 14); + d12s16 = vrshrn_n_s32(q9s32, 14); + d13s16 = vrshrn_n_s32(q10s32, 14); q5s16 = vcombine_s16(d10s16, d11s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -934,10 +934,10 @@ void vpx_idct16x16_10_add_neon_pass2(const tran_low_t *src, int16_t *out, q2s32 = vmlal_s16(q2s32, d14s16, d30s16); q11s32 = vmlal_s16(q11s32, d15s16, d30s16); - d2s16 = vqrshrn_n_s32(q12s32, 14); - d3s16 = vqrshrn_n_s32(q5s32, 14); - d12s16 = vqrshrn_n_s32(q2s32, 14); - d13s16 = vqrshrn_n_s32(q11s32, 14); + d2s16 = vrshrn_n_s32(q12s32, 14); + d3s16 = vrshrn_n_s32(q5s32, 14); + d12s16 = vrshrn_n_s32(q2s32, 14); + d13s16 = vrshrn_n_s32(q11s32, 14); q1s16 = vcombine_s16(d2s16, d3s16); q6s16 = vcombine_s16(d12s16, d13s16); @@ -952,10 +952,10 @@ void vpx_idct16x16_10_add_neon_pass2(const tran_low_t *src, int16_t *out, q8s32 = vmlal_s16(q8s32, d8s16, d31s16); q9s32 = vmlal_s16(q9s32, d9s16, d31s16); - d4s16 = vqrshrn_n_s32(q10s32, 14); - d5s16 = vqrshrn_n_s32(q13s32, 14); - d10s16 = vqrshrn_n_s32(q8s32, 14); - d11s16 = vqrshrn_n_s32(q9s32, 14); + d4s16 = vrshrn_n_s32(q10s32, 14); + d5s16 = vrshrn_n_s32(q13s32, 14); + d10s16 = vrshrn_n_s32(q8s32, 14); + d11s16 = vrshrn_n_s32(q9s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -990,10 +990,10 @@ void vpx_idct16x16_10_add_neon_pass2(const tran_low_t *src, int16_t *out, q0s32 = vaddq_s32(q3s32, q0s32); q4s32 = vaddq_s32(q4s32, q1s32); - d4s16 = vqrshrn_n_s32(q5s32, 14); - d5s16 = vqrshrn_n_s32(q6s32, 14); - d10s16 = vqrshrn_n_s32(q0s32, 14); - d11s16 = vqrshrn_n_s32(q4s32, 14); + d4s16 = vrshrn_n_s32(q5s32, 14); + d5s16 = vrshrn_n_s32(q6s32, 14); + d10s16 = vrshrn_n_s32(q0s32, 14); + d11s16 = vrshrn_n_s32(q4s32, 14); q2s16 = vcombine_s16(d4s16, d5s16); q5s16 = vcombine_s16(d10s16, d11s16); @@ -1007,10 +1007,10 @@ void vpx_idct16x16_10_add_neon_pass2(const tran_low_t *src, int16_t *out, q13s32 = vaddq_s32(q13s32, q0s32); q6s32 = vaddq_s32(q6s32, q1s32); - d6s16 = vqrshrn_n_s32(q10s32, 14); - d7s16 = vqrshrn_n_s32(q4s32, 14); - d8s16 = vqrshrn_n_s32(q13s32, 14); - d9s16 = vqrshrn_n_s32(q6s32, 14); + d6s16 = vrshrn_n_s32(q10s32, 14); + d7s16 = vrshrn_n_s32(q4s32, 14); + d8s16 = vrshrn_n_s32(q13s32, 14); + d9s16 = vrshrn_n_s32(q6s32, 14); q3s16 = vcombine_s16(d6s16, d7s16); q4s16 = vcombine_s16(d8s16, d9s16); diff --git a/vpx_dsp/arm/idct32x32_add_neon.c b/vpx_dsp/arm/idct32x32_add_neon.c index 4eff9b970..c3a765101 100644 --- a/vpx_dsp/arm/idct32x32_add_neon.c +++ b/vpx_dsp/arm/idct32x32_add_neon.c @@ -146,8 +146,8 @@ static INLINE void DO_BUTTERFLY(int16x8_t q14s16, int16x8_t q13s16, q11s32 = vaddq_s32(q12s32, q11s32); q10s32 = vaddq_s32(q10s32, q15s32); - *qAs16 = vcombine_s16(vqrshrn_n_s32(q8s32, 14), vqrshrn_n_s32(q9s32, 14)); - *qBs16 = vcombine_s16(vqrshrn_n_s32(q11s32, 14), vqrshrn_n_s32(q10s32, 14)); + *qAs16 = vcombine_s16(vrshrn_n_s32(q8s32, 14), vrshrn_n_s32(q9s32, 14)); + *qBs16 = vcombine_s16(vrshrn_n_s32(q11s32, 14), vrshrn_n_s32(q10s32, 14)); } static INLINE void idct32_transpose_pair(const int16_t *input, int16_t *t_buf) { diff --git a/vpx_dsp/arm/idct4x4_add_neon.asm b/vpx_dsp/arm/idct4x4_add_neon.asm index cb96d4f94..1550785a9 100644 --- a/vpx_dsp/arm/idct4x4_add_neon.asm +++ b/vpx_dsp/arm/idct4x4_add_neon.asm @@ -88,10 +88,10 @@ vmlal.s16 q1, d19, d22 ; dct_const_round_shift - vqrshrn.s32 d26, q13, #14 - vqrshrn.s32 d27, q14, #14 - vqrshrn.s32 d29, q15, #14 - vqrshrn.s32 d28, q1, #14 + vrshrn.s32 d26, q13, #14 + vrshrn.s32 d27, q14, #14 + vrshrn.s32 d29, q15, #14 + vrshrn.s32 d28, q1, #14 ; stage 2 ; output[0] = step[0] + step[3]; @@ -139,10 +139,10 @@ vmlal.s16 q1, d19, d22 ; dct_const_round_shift - vqrshrn.s32 d26, q13, #14 - vqrshrn.s32 d27, q14, #14 - vqrshrn.s32 d29, q15, #14 - vqrshrn.s32 d28, q1, #14 + vrshrn.s32 d26, q13, #14 + vrshrn.s32 d27, q14, #14 + vrshrn.s32 d29, q15, #14 + vrshrn.s32 d28, q1, #14 ; stage 2 ; output[0] = step[0] + step[3]; diff --git a/vpx_dsp/arm/idct8x8_add_neon.asm b/vpx_dsp/arm/idct8x8_add_neon.asm index a5c9c927d..b58bf0ccd 100644 --- a/vpx_dsp/arm/idct8x8_add_neon.asm +++ b/vpx_dsp/arm/idct8x8_add_neon.asm @@ -47,12 +47,12 @@ vmlsl.s16 q6, d23, d3 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d8, q2, #14 ; >> 14 - vqrshrn.s32 d9, q3, #14 ; >> 14 + vrshrn.s32 d8, q2, #14 ; >> 14 + vrshrn.s32 d9, q3, #14 ; >> 14 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d10, q5, #14 ; >> 14 - vqrshrn.s32 d11, q6, #14 ; >> 14 + vrshrn.s32 d10, q5, #14 ; >> 14 + vrshrn.s32 d11, q6, #14 ; >> 14 ; input[1] * cospi_4_64 vmull.s16 q2, d18, d1 @@ -71,15 +71,15 @@ vmlal.s16 q13, d23, d2 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d14, q2, #14 ; >> 14 - vqrshrn.s32 d15, q3, #14 ; >> 14 + vrshrn.s32 d14, q2, #14 ; >> 14 + vrshrn.s32 d15, q3, #14 ; >> 14 ; stage 2 & stage 3 - even half vdup.16 d0, r7 ; duplicate cospi_16_64 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d12, q9, #14 ; >> 14 - vqrshrn.s32 d13, q13, #14 ; >> 14 + vrshrn.s32 d12, q9, #14 ; >> 14 + vrshrn.s32 d13, q13, #14 ; >> 14 ; input[0] * cospi_16_64 vmull.s16 q2, d16, d0 @@ -101,12 +101,12 @@ vdup.16 d1, r9 ; duplicate cospi_8_64 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d18, q2, #14 ; >> 14 - vqrshrn.s32 d19, q3, #14 ; >> 14 + vrshrn.s32 d18, q2, #14 ; >> 14 + vrshrn.s32 d19, q3, #14 ; >> 14 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d22, q13, #14 ; >> 14 - vqrshrn.s32 d23, q15, #14 ; >> 14 + vrshrn.s32 d22, q13, #14 ; >> 14 + vrshrn.s32 d23, q15, #14 ; >> 14 ; input[1] * cospi_24_64 - input[3] * cospi_8_64 ; input[1] * cospi_24_64 @@ -126,12 +126,12 @@ vmlal.s16 q12, d29, d0 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d26, q2, #14 ; >> 14 - vqrshrn.s32 d27, q3, #14 ; >> 14 + vrshrn.s32 d26, q2, #14 ; >> 14 + vrshrn.s32 d27, q3, #14 ; >> 14 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d30, q8, #14 ; >> 14 - vqrshrn.s32 d31, q12, #14 ; >> 14 + vrshrn.s32 d30, q8, #14 ; >> 14 + vrshrn.s32 d31, q12, #14 ; >> 14 vadd.s16 q0, q9, q15 ; output[0] = step[0] + step[3] vadd.s16 q1, q11, q13 ; output[1] = step[1] + step[2] @@ -164,12 +164,12 @@ vmlal.s16 q12, d27, d16 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d10, q9, #14 ; >> 14 - vqrshrn.s32 d11, q10, #14 ; >> 14 + vrshrn.s32 d10, q9, #14 ; >> 14 + vrshrn.s32 d11, q10, #14 ; >> 14 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d12, q11, #14 ; >> 14 - vqrshrn.s32 d13, q12, #14 ; >> 14 + vrshrn.s32 d12, q11, #14 ; >> 14 + vrshrn.s32 d13, q12, #14 ; >> 14 ; stage 4 vadd.s16 q8, q0, q7 ; output[0] = step1[0] + step1[7]; @@ -423,12 +423,12 @@ vmlal.s16 q12, d27, d16 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d10, q9, #14 ; >> 14 - vqrshrn.s32 d11, q10, #14 ; >> 14 + vrshrn.s32 d10, q9, #14 ; >> 14 + vrshrn.s32 d11, q10, #14 ; >> 14 ; dct_const_round_shift(input_dc * cospi_16_64) - vqrshrn.s32 d12, q11, #14 ; >> 14 - vqrshrn.s32 d13, q12, #14 ; >> 14 + vrshrn.s32 d12, q11, #14 ; >> 14 + vrshrn.s32 d13, q12, #14 ; >> 14 ; stage 4 vadd.s16 q8, q0, q7 ; output[0] = step1[0] + step1[7]; |