1400 to 1070.<br><br><div class="gmail_quote">On Thu, Feb 2, 2012 at 2:56 PM, George Stephanos <span dir="ltr"><<a href="mailto:gaf.stephanos@gmail.com">gaf.stephanos@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
---<br>
 common/arm/pixel-a.S |   78 ++++++++++++++++++++++++++++++++++++++++++++++++++<br>
<div class="im"> common/arm/pixel.h   |    1 +<br>
 common/pixel.c       |    1 +<br>
</div> 3 files changed, 80 insertions(+), 0 deletions(-)<br>
<br>
diff --git a/common/arm/pixel-a.S b/common/arm/pixel-a.S<br>
index 995049b..db32671 100644<br>
--- a/common/arm/pixel-a.S<br>
+++ b/common/arm/pixel-a.S<br>
@@ -1336,3 +1336,81 @@ function x264_intra_sad_x3_8x8_neon<br>
<div class="im"><br>
     bx          lr<br>
 .endfunc<br>
+<br>
+function x264_intra_sad_x3_8x8c_neon<br>
+    push        {r4, lr}<br>
</div>+    vmov.i8     q8, #0<br>
<div class="im">+    vmov.i8     q11, #0<br>
+    add         r2, #8<br>
+    sub         lr, r1, #FDEC_STRIDE<br>
+    mov         r3, #FENC_STRIDE<br>
+    vld1.8      {d0}, [lr]<br>
+    mov         r4, #FDEC_STRIDE<br>
+    sub         lr, r1, #1<br>
+<br>
</div>+.irp Y,24,25,26,27,28,29,30,31<br>
+    vld1.8      {d\Y}, [r0], r3<br>
+    vld1.8      {d18[]}, [lr], r4<br>
+.if \Y == 24<br>
+    vabdl.u8    q2, d0, d\Y<br>
+    vabdl.u8    q10, d18, d\Y<br>
+.else<br>
+    vabal.u8    q2, d0, d\Y<br>
+    vabal.u8    q10, d18, d\Y<br>
+.endif<br>
+.if \Y < 28<br>
+    vaddw.u8    q8, d18<br>
+.else<br>
+    vaddw.u8    q11, d18<br>
+.endif<br>
+.endr<br>
+<br>
+    vmovl.u8    q3, d0<br>
+    vmov.i8     d17, #0<br>
<div class="im">+    vadd.u16    d20, d21<br>
+    vadd.u16    d4, d5<br>
</div>+    vpadd.u16   d20, d17<br>
+    vpadd.u16   d4, d17<br>
+    vpadd.u16   d20, d17<br>
+    vpadd.u16   d4, d17<br>
+    vpadd.u16   d6, d17<br>
+    vpadd.u16   d7, d17<br>
+    vpadd.u16   d6, d17<br>
+    vpadd.u16   d7, d17<br>
+<br>
+    vst1.32     {d4[0]}, [r2,:32]<br>
+    sub         r2, #4<br>
+    vst1.32     {d20[0]}, [r2,:32]<br>
<div class="im">+<br>
+    vadd.u16    d3, d7, d22<br>
+    vadd.u16    d0, d6, d16<br>
+    vrshr.u16   d1, d7, #2<br>
+    vrshr.u16   d3, #3<br>
+    vrshr.u16   d0, #3<br>
+    vrshr.u16   d2, d22, #2<br>
+    vdup.8      d1, d1[0]<br>
+    vdup.8      d3, d3[0]<br>
+    vdup.8      d0, d0[0]<br>
+    vdup.8      d2, d2[0]<br>
+<br>
</div><div class="im">+    vext.8      d0, d0, d1, #4<br>
+    vext.8      d1, d2, d3, #4<br>
+<br>
</div>+    vabdl.u8    q11, d0, d24<br>
+    vabdl.u8    q10, d0, d25<br>
<div class="im">+    vabal.u8    q11, d0, d26<br>
+    vabal.u8    q10, d0, d27<br>
+    vabal.u8    q11, d1, d28<br>
+    vabal.u8    q10, d1, d29<br>
+    vabal.u8    q11, d1, d30<br>
+    vabal.u8    q10, d1, d31<br>
+<br>
+    sub         r2, #4<br>
+    vadd.u16    q11, q10<br>
+    vadd.u16    d22, d23<br>
</div>+    vpadd.u16   d22, d17<br>
+    vpadd.u16   d22, d17<br>
+    vst1.32     {d22[0]}, [r2,:32]<br>
<div class="im HOEnZb">+<br>
+    pop        {r4, pc}<br>
+.endfunc<br>
</div><div class="HOEnZb"><div class="h5">diff --git a/common/arm/pixel.h b/common/arm/pixel.h<br>
index 07a72c2..506cf59 100644<br>
--- a/common/arm/pixel.h<br>
+++ b/common/arm/pixel.h<br>
@@ -71,4 +71,5 @@ float x264_pixel_ssim_end4_neon( int sum0[5][4], int sum1[5][4], int width );<br>
<br>
 void x264_intra_sad_x3_4x4_armv6( uint8_t *, uint8_t *, int * );<br>
 void x264_intra_sad_x3_8x8_neon( uint8_t *, uint8_t *, int * );<br>
+void x264_intra_sad_x3_8x8c_neon( uint8_t *, uint8_t *, int * );<br>
 #endif<br>
diff --git a/common/pixel.c b/common/pixel.c<br>
index af7006f..f6d6a04 100644<br>
--- a/common/pixel.c<br>
+++ b/common/pixel.c<br>
@@ -1213,6 +1213,7 @@ void x264_pixel_init( int cpu, x264_pixel_function_t *pixf )<br>
     if( cpu&X264_CPU_NEON )<br>
     {<br>
         pixf->intra_sad_x3_8x8  = x264_intra_sad_x3_8x8_neon;<br>
+        pixf->intra_sad_x3_8x8c   = x264_intra_sad_x3_8x8c_neon;<br>
         INIT5( sad, _neon );<br>
         INIT5( sad_aligned, _neon );<br>
         INIT7( sad_x3, _neon );<br>
--<br>
1.7.4.1<br>
<br>
</div></div></blockquote></div><br>