ref: 355cb14dc7d13d32833d40c042dc4d433e27b776
parent: 2003468df88b10963b304aaa56acc881621d99fa
author: Mans Rullgard <mans@mansr.com>
date: Tue Jul 30 14:08:17 EDT 2013
vp9: neon: convolve: replace some insns with simpler equivalents Change-Id: I5d6906772e6e6adf68d7f0fd5b8b5207a64a3a37
--- a/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm
+++ b/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm
@@ -128,8 +128,8 @@
vqrshrun.s32 d5, q15, #7
; saturate
- vqshrn.u16 d2, q1, #0
- vqshrn.u16 d3, q2, #0
+ vqmovn.u16 d2, q1
+ vqmovn.u16 d3, q2
; transpose
vtrn.16 d2, d3
@@ -137,10 +137,7 @@
vtrn.8 d2, d3
; average the new value and the dst value
- vaddl.u8 q8, d2, d6
- vaddl.u8 q9, d3, d7
- vqrshrn.u16 d2, q8, #1
- vqrshrn.u16 d3, q9, #1
+ vrhadd.u8 q1, q1, q3
vst1.u32 {d2[0]}, [r2], r3
vst1.u32 {d3[0]}, [r2], r3
@@ -234,14 +231,11 @@
vqrshrun.s32 d5, q15, #7
; saturate
- vqshrn.u16 d2, q1, #0
- vqshrn.u16 d3, q2, #0
+ vqmovn.u16 d2, q1
+ vqmovn.u16 d3, q2
; average the new value and the dst value
- vaddl.u8 q8, d2, d6
- vaddl.u8 q9, d3, d7
- vqrshrn.u16 d2, q8, #1
- vqrshrn.u16 d3, q9, #1
+ vrhadd.u8 q1, q1, q3
vst1.u32 {d2[0]}, [r2], r3
vst1.u32 {d2[1]}, [r2], r3
--- a/vp9/common/arm/neon/vp9_convolve8_neon.asm
+++ b/vp9/common/arm/neon/vp9_convolve8_neon.asm
@@ -120,8 +120,8 @@
vqrshrun.s32 d5, q15, #7
; saturate
- vqshrn.u16 d2, q1, #0
- vqshrn.u16 d3, q2, #0
+ vqmovn.u16 d2, q1
+ vqmovn.u16 d3, q2
; transpose
vtrn.16 d2, d3
@@ -213,8 +213,8 @@
vqrshrun.s32 d5, q15, #7
; saturate
- vqshrn.u16 d2, q1, #0
- vqshrn.u16 d3, q2, #0
+ vqmovn.u16 d2, q1
+ vqmovn.u16 d3, q2
vst1.u32 {d2[0]}, [r2], r3
vst1.u32 {d2[1]}, [r2], r3
--
⑨