summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMans Rullgard <mans@mansr.com>2013-07-30 18:08:17 +0100
committerJohann <johann.koenig@duck.com>2013-08-02 08:11:28 -0700
commit355cb14dc7d13d32833d40c042dc4d433e27b776 (patch)
tree242a670e64afc05202fb652d6f3285c15c1a13b2
parent2003468df88b10963b304aaa56acc881621d99fa (diff)
downloadlibvpx-355cb14dc7d13d32833d40c042dc4d433e27b776.tar
libvpx-355cb14dc7d13d32833d40c042dc4d433e27b776.tar.gz
libvpx-355cb14dc7d13d32833d40c042dc4d433e27b776.tar.bz2
libvpx-355cb14dc7d13d32833d40c042dc4d433e27b776.zip
vp9: neon: convolve: replace some insns with simpler equivalents
Change-Id: I5d6906772e6e6adf68d7f0fd5b8b5207a64a3a37
-rw-r--r--vp9/common/arm/neon/vp9_convolve8_avg_neon.asm18
-rw-r--r--vp9/common/arm/neon/vp9_convolve8_neon.asm8
2 files changed, 10 insertions, 16 deletions
diff --git a/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm b/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm
index 536841114..110a56cdd 100644
--- a/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm
+++ b/vp9/common/arm/neon/vp9_convolve8_avg_neon.asm
@@ -128,8 +128,8 @@ loop_horiz
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 @@ loop_horiz
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 @@ loop_vert
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
diff --git a/vp9/common/arm/neon/vp9_convolve8_neon.asm b/vp9/common/arm/neon/vp9_convolve8_neon.asm
index 914624382..845e4a866 100644
--- a/vp9/common/arm/neon/vp9_convolve8_neon.asm
+++ b/vp9/common/arm/neon/vp9_convolve8_neon.asm
@@ -120,8 +120,8 @@ loop_horiz
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 @@ loop_vert
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