summaryrefslogtreecommitdiff
path: root/vp9/common/arm
diff options
context:
space:
mode:
authorhkuang <hkuang@google.com>2014-01-26 10:37:06 -0800
committerhkuang <hkuang@google.com>2014-01-27 10:17:20 -0800
commit05d2081d38da99dabcf8c0b9b99d2e2edb421990 (patch)
treeca77bead6cde52a77e8acae6d7fc7fb8f17b4426 /vp9/common/arm
parentcacea00facd93087ec9c65c603b7d5024309e3b4 (diff)
downloadlibvpx-05d2081d38da99dabcf8c0b9b99d2e2edb421990.tar
libvpx-05d2081d38da99dabcf8c0b9b99d2e2edb421990.tar.gz
libvpx-05d2081d38da99dabcf8c0b9b99d2e2edb421990.tar.bz2
libvpx-05d2081d38da99dabcf8c0b9b99d2e2edb421990.zip
Fix the vp9_tm_predictor_8x8_neon.
Change-Id: I832cf83871044bfee7b7e57dbd31bae05cbd53e9
Diffstat (limited to 'vp9/common/arm')
-rw-r--r--vp9/common/arm/neon/vp9_reconintra_neon.asm53
1 files changed, 28 insertions, 25 deletions
diff --git a/vp9/common/arm/neon/vp9_reconintra_neon.asm b/vp9/common/arm/neon/vp9_reconintra_neon.asm
index 65d087af8..baa943b9c 100644
--- a/vp9/common/arm/neon/vp9_reconintra_neon.asm
+++ b/vp9/common/arm/neon/vp9_reconintra_neon.asm
@@ -347,29 +347,32 @@ loop_h
ldrb r12, [r12]
vdup.u8 d0, r12
+ ; preload 8 left
+ vld1.8 d30, [r3]
+
; Load above 8 pixels
vld1.64 {d2}, [r2]
+ vmovl.u8 q10, d30
+
; Compute above - ytop_left
vsubl.u8 q3, d2, d0
; Load left row by row and compute left + (above - ytop_left)
- vld1.u8 {d6}, [r3]
-
; 1st row and 2nd row
- vdup.u8 d0, d6[0]
- vdup.u8 d1, d6[1]
- vaddw.s16 q1, q3, d0
- vaddw.s16 q2, q3, d1
+ vdup.16 q0, d20[0]
+ vdup.16 q1, d20[1]
+ vadd.s16 q0, q3, q0
+ vadd.s16 q1, q3, q1
; 3rd row and 4th row
- vdup.u8 d0, d6[2]
- vdup.u8 d1, d6[3]
- vaddw.s16 q8, q3, d0
- vaddw.s16 q9, q3, d1
+ vdup.16 q8, d20[2]
+ vdup.16 q9, d20[3]
+ vadd.s16 q8, q3, q8
+ vadd.s16 q9, q3, q9
- vqshrun.s16 d0, q1, #0
- vqshrun.s16 d1, q2, #0
+ vqshrun.s16 d0, q0, #0
+ vqshrun.s16 d1, q1, #0
vqshrun.s16 d2, q8, #0
vqshrun.s16 d3, q9, #0
@@ -379,19 +382,19 @@ loop_h
vst1.64 {d3}, [r0], r1
; 5th row and 6th row
- vdup.u8 d0, d6[4]
- vdup.u8 d1, d6[5]
- vaddw.s16 q1, q3, d0
- vaddw.s16 q2, q3, d1
-
- ; 7rd row and 8th row
- vdup.u8 d0, d6[6]
- vdup.u8 d1, d6[7]
- vaddw.s16 q8, q3, d0
- vaddw.s16 q9, q3, d1
-
- vqshrun.s16 d0, q1, #0
- vqshrun.s16 d1, q2, #0
+ vdup.16 q0, d21[0]
+ vdup.16 q1, d21[1]
+ vadd.s16 q0, q3, q0
+ vadd.s16 q1, q3, q1
+
+ ; 7th row and 8th row
+ vdup.16 q8, d21[2]
+ vdup.16 q9, d21[3]
+ vadd.s16 q8, q3, q8
+ vadd.s16 q9, q3, q9
+
+ vqshrun.s16 d0, q0, #0
+ vqshrun.s16 d1, q1, #0
vqshrun.s16 d2, q8, #0
vqshrun.s16 d3, q9, #0