From d9e3fe8c22cb848d2c4a72dd11b8886153fcee3a Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michaelni@gmx.at>
Date: Mon, 23 Mar 2015 00:26:42 +0100
Subject: [PATCH] postproc/postprocess_template: split first part of block loop

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
---
 libpostproc/postprocess_template.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/libpostproc/postprocess_template.c b/libpostproc/postprocess_template.c
index 5e51b525d1b..366b77490a1 100644
--- a/libpostproc/postprocess_template.c
+++ b/libpostproc/postprocess_template.c
@@ -3471,11 +3471,9 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
         for(x=0; x<width; ){
             int startx = x;
             int endx = FFMIN(width, x+32);
+            uint8_t *dstBlockStart = dstBlock;
+            const uint8_t *srcBlockStart = srcBlock;
           for(; x < endx; x+=BLOCK_SIZE){
-            const int stride= dstStride;
-            av_unused uint8_t *tmpXchg;
-
-
 #if TEMPLATE_PP_MMXEXT && HAVE_6REGS
 /*
             prefetchnta(srcBlock + (((x>>2)&6) + 5)*srcStride + 32);
@@ -3522,6 +3520,16 @@ static void RENAME(postProcess)(const uint8_t src[], int srcStride, uint8_t dst[
 /*          else if(mode & CUBIC_BLEND_DEINT_FILTER)
                 RENAME(deInterlaceBlendCubic)(dstBlock, dstStride);
 */
+            dstBlock+=8;
+            srcBlock+=8;
+          }
+
+          dstBlock = dstBlockStart;
+          srcBlock = srcBlockStart;
+
+          for(x = startx; x < endx; x+=BLOCK_SIZE){
+            const int stride= dstStride;
+            av_unused uint8_t *tmpXchg;
 
             if(isColor){
                 QP= QPptr[x>>qpHShift];
-- 
GitLab