[PR] avcodec/x86/h264_loopfilter: Improve deblock_h_luma_intra_8 (PR #24217)

mkver via ffmpeg-devel <[email protected]>
Newsgroups gmane.comp.video.ffmpeg.devel
Message-ID <[email protected]>
PR #24217 opened by mkver
URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24217
Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/24217.patch

In particular, don't use MMX in it.


>From fd1d320bfe6529da6c4c138205ea950f2ea7c980 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Thu, 20 Aug 2026 13:47:01 +0200
Subject: [PATCH 1/5] avcodec/x86/h264_deblock: Write lines in original order

I.e. not lines 9-16, then lines 1-8. No changes in benchmarks
here; it is mainly done to reduce differences with the 32bit code.

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/h264_deblock.asm | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm
index 379adb3290..2a6b024d4b 100644
--- a/libavcodec/x86/h264_deblock.asm
+++ b/libavcodec/x86/h264_deblock.asm
@@ -758,9 +758,9 @@ cglobal deblock_h_luma_intra_8, 4,9,0,0x80
 
     ; transpose 8x16 -> tmp space
     TRANSPOSE8x8_MEM  PASS8ROWS(r6, r5, r1, r8), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30)
-    lea    r6, [r6+r1*8]
+    lea    r0, [r6+r1*8]
     lea    r5, [r5+r1*8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(r6, r5, r1, r8), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
+    TRANSPOSE8x8_MEM  PASS8ROWS(r0, r5, r1, r8), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
 
     lea    r0,  [pix_tmp+0x40]
     mov    r1,  0x10
@@ -768,12 +768,10 @@ cglobal deblock_h_luma_intra_8, 4,9,0,0x80
 
     ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8)
     lea    r5, [r6+r8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8)
-    shl    r7,  3
-    sub    r6,  r7
-    sub    r5,  r7
-    shr    r7,  3
     TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8)
+    lea    r6, [r6+8*r7]
+    lea    r5, [r5+8*r7]
+    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8)
     RET
 %else
 cglobal deblock_h_luma_intra_8, 2,4,8,0x80
-- 
2.52.0


>From 3abd486033c1f28b259c53e5f2522a050c378c7a Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Thu, 20 Aug 2026 14:35:59 +0200
Subject: [PATCH 2/5] avcodec/x86/h264_deblock: Combine 32,64 code for
 deblock_h_luma_intra_8

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/h264_deblock.asm | 90 +++++++++++++++------------------
 1 file changed, 41 insertions(+), 49 deletions(-)

diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm
index 2a6b024d4b..8e35218375 100644
--- a/libavcodec/x86/h264_deblock.asm
+++ b/libavcodec/x86/h264_deblock.asm
@@ -741,15 +741,23 @@ cglobal deblock_v_luma_intra_8, 4,6,16,ARCH_X86_64*0x50-0x50
     RET
 
 INIT_MMX cpuname
-%if ARCH_X86_64
 ;-----------------------------------------------------------------------------
 ; void ff_deblock_h_luma_intra(uint8_t *pix, ptrdiff_t stride, int alpha, int beta)
 ;-----------------------------------------------------------------------------
-cglobal deblock_h_luma_intra_8, 4,9,0,0x80
-    lea    r8,  [r1*3]
-    lea    r6,  [r0-4]
-    lea    r5,  [r0-4+r8]
-    mov    r7,  r1
+%if ARCH_X86_64
+cglobal deblock_h_luma_intra_8, 4,9,0,0x80, pix0, stride0, alpha, beta, unused, pix3, pix, stride, stride3
+    lea         stride3q,  [stride0q*3]
+    lea             pixq,  [pix0q-4]
+    mov          strideq,  stride0q
+    lea            pix3q,  [pix0q-4+stride3q]
+%else
+cglobal deblock_h_luma_intra_8, 2,4,8,0x80, pix, stride, pix3, stride3
+%define stride0q strideq
+%define pix0q pixq
+    lea         stride3q,  [strideq*3]
+    sub             pixq,  4
+    lea            pix3q,  [pixq+stride3q]
+%endif
 %if WIN64
     %define pix_tmp rsp+0x20 ; shadow space
 %else
@@ -757,55 +765,39 @@ cglobal deblock_h_luma_intra_8, 4,9,0,0x80
 %endif
 
     ; transpose 8x16 -> tmp space
-    TRANSPOSE8x8_MEM  PASS8ROWS(r6, r5, r1, r8), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30)
-    lea    r0, [r6+r1*8]
-    lea    r5, [r5+r1*8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(r0, r5, r1, r8), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
+    TRANSPOSE8x8_MEM  PASS8ROWS(pixq, pix3q, stride0q, stride3q), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30)
+    lea            pix0q, [pixq +stride0q*8]
+    lea            pix3q, [pix3q+stride0q*8]
+    TRANSPOSE8x8_MEM  PASS8ROWS(pix0q, pix3q, stride0q, stride3q), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
 
-    lea    r0,  [pix_tmp+0x40]
-    mov    r1,  0x10
-    call   deblock_v_luma_intra_8
-
-    ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8)
-    lea    r5, [r6+r8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8)
-    lea    r6, [r6+8*r7]
-    lea    r5, [r5+8*r7]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r6, r5, r7, r8)
-    RET
+    lea            pix0q,  [pix_tmp+0x40]
+%if ARCH_X86_64
+    mov         stride0d,  0x10
 %else
-cglobal deblock_h_luma_intra_8, 2,4,8,0x80
-    lea    r3,  [r1*3]
-    sub    r0,  4
-    lea    r2,  [r0+r3]
-    %define pix_tmp rsp
-
-    ; transpose 8x16 -> tmp space
-    TRANSPOSE8x8_MEM  PASS8ROWS(r0, r2, r1, r3), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30)
-    lea    r0,  [r0+r1*8]
-    lea    r2,  [r2+r1*8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(r0, r2, r1, r3), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
-
-    lea    r0,  [pix_tmp+0x40]
-    PUSH   dword r3m
-    PUSH   dword r2m
-    PUSH   dword 16
-    PUSH   r0
+    PUSH       dword r3m
+    PUSH       dword r2m
+    PUSH       dword 16
+    PUSH       pixd
+%endif
     call   deblock_v_luma_intra_8
-    ADD    esp, 16
+%if ARCH_X86_64
+    lea            pix3q, [pixq+stride3q]
+%else
+    mov          strided,  stridem
+    mov             pixd,  pixm
+
+    ADD              esp, 16
+    lea         stride3d,  [strided*3]
+    sub             pixd,  4
+    lea            pix3d,  [pixd+stride3d]
+%endif
 
-    mov    r1,  r1m
-    mov    r0,  r0mp
-    lea    r3,  [r1*3]
-    sub    r0,  4
-    lea    r2,  [r0+r3]
     ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8)
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(r0, r2, r1, r3)
-    lea    r0,  [r0+r1*8]
-    lea    r2,  [r2+r1*8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(r0, r2, r1, r3)
+    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp,   pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(pixq, pix3q, strideq, stride3q)
+    lea             pixq, [pixq +8*strideq]
+    lea            pix3q, [pix3q+8*strideq]
+    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(pixq, pix3q, strideq, stride3q)
     RET
-%endif ; ARCH_X86_64
 %endmacro ; DEBLOCK_LUMA_INTRA
 
 INIT_XMM sse2
-- 
2.52.0


>From 101227ab8d00634fe0189be2f4ded4065b2b90b4 Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Thu, 20 Aug 2026 17:02:25 +0200
Subject: [PATCH 3/5] avcodec/x86/h264_deblock: Avoid mmx in
 deblock_h_luma_intra_8

Old benchmarks:
  h_loop_filter_luma_intra_8bpp_c:        28.0
  h_loop_filter_luma_intra_8bpp_sse2:     74.5 ( 0.38x)
  h_loop_filter_luma_intra_8bpp_avx:      74.6 ( 0.38x)

New benchmarks:
  h_loop_filter_luma_intra_8bpp_c:        26.3
  h_loop_filter_luma_intra_8bpp_sse2:     57.4 ( 0.46x)
  h_loop_filter_luma_intra_8bpp_avx:      57.6 ( 0.46x)

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/h264_deblock.asm | 69 +++++++++++++++++++++++++++++----
 1 file changed, 62 insertions(+), 7 deletions(-)

diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm
index 8e35218375..6243c89e3a 100644
--- a/libavcodec/x86/h264_deblock.asm
+++ b/libavcodec/x86/h264_deblock.asm
@@ -740,12 +740,11 @@ cglobal deblock_v_luma_intra_8, 4,6,16,ARCH_X86_64*0x50-0x50
     LUMA_INTRA_P012 [r0], [r0+r1], [r0+2*r1], [r0+r5]
     RET
 
-INIT_MMX cpuname
 ;-----------------------------------------------------------------------------
 ; void ff_deblock_h_luma_intra(uint8_t *pix, ptrdiff_t stride, int alpha, int beta)
 ;-----------------------------------------------------------------------------
 %if ARCH_X86_64
-cglobal deblock_h_luma_intra_8, 4,9,0,0x80, pix0, stride0, alpha, beta, unused, pix3, pix, stride, stride3
+cglobal deblock_h_luma_intra_8, 4,9,9,0x80, pix0, stride0, alpha, beta, unused, pix3, pix, stride, stride3
     lea         stride3q,  [stride0q*3]
     lea             pixq,  [pix0q-4]
     mov          strideq,  stride0q
@@ -764,11 +763,67 @@ cglobal deblock_h_luma_intra_8, 2,4,8,0x80, pix, stride, pix3, stride3
     %define pix_tmp rsp
 %endif
 
-    ; transpose 8x16 -> tmp space
-    TRANSPOSE8x8_MEM  PASS8ROWS(pixq, pix3q, stride0q, stride3q), PASS8ROWS(pix_tmp, pix_tmp+0x30, 0x10, 0x30)
+    movq              m0, [pixq]
+    movq              m1, [pixq+stride0q]
+    movq              m2, [pixq+2*stride0q]
+    movq              m3, [pix3q]
+    movq              m4, [pix3q+stride0q]
     lea            pix0q, [pixq +stride0q*8]
-    lea            pix3q, [pix3q+stride0q*8]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix0q, pix3q, stride0q, stride3q), PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30)
+    movq              m5, [pix3q+2*stride0q]
+    punpcklbw         m0, m1
+    movq              m6, [pix3q+stride3q]
+    punpcklbw         m2, m3
+    movq              m7, [pix3q+4*stride0q]
+    punpcklbw         m4, m5
+    lea            pix3q, [pix3q+8*stride0q]
+    movq              m1, [pix0q]
+    SBUTTERFLY        wd, 0, 2, 5
+    movq              m3, [pix0q+stride0q]
+    punpcklbw         m6, m7
+    movq              m5, [pix0q+2*stride0q]
+    SBUTTERFLY        wd, 4, 6, 7
+    movq              m7, [pix3q]
+    punpcklbw         m1, m3
+    SBUTTERFLY        dq, 0, 4, 3
+%if ARCH_X86_32
+    movq       [pix_tmp], m0
+%endif
+    movq              m3, [pix3q+stride0q]
+    punpcklbw         m5, m7
+%if ARCH_X86_32
+    movhps  [pix_tmp+16], m0
+%endif
+    SBUTTERFLY        dq, 2, 6, 7
+    movq              m7, [pix3q+2*stride0q]
+%if ARCH_X86_64
+    SWAP               0, 8
+%endif
+    SBUTTERFLY        wd, 1, 5, 0
+    movq              m0, [pix3q+stride3q]
+    punpcklbw         m3, m7
+    movq              m7, [pix3q+4*stride0q]
+    punpcklbw         m0, m7
+    SBUTTERFLY        wd, 3, 0, 7
+    SBUTTERFLY        dq, 1, 3, 7
+%if ARCH_X86_32
+    movq     [pix_tmp+8], m1
+    movhps  [pix_tmp+24], m1
+%endif
+    SBUTTERFLY       qdq, 4, 3, 7
+    mova    [pix_tmp+32], m4
+    mova    [pix_tmp+48], m3
+    SBUTTERFLY        dq, 5, 0, 7
+    SBUTTERFLY       qdq, 2, 5, 7
+    mova    [pix_tmp+64], m2
+    mova    [pix_tmp+80], m5
+%if ARCH_X86_64
+    SBUTTERFLY       qdq, 8, 1, 7
+    mova    [pix_tmp+16], m1
+    mova       [pix_tmp], m8
+%endif
+    SBUTTERFLY       qdq, 6, 0, 7
+    mova    [pix_tmp+96], m6
+    mova   [pix_tmp+112], m0
 
     lea            pix0q,  [pix_tmp+0x40]
 %if ARCH_X86_64
@@ -791,7 +846,7 @@ cglobal deblock_h_luma_intra_8, 2,4,8,0x80, pix, stride, pix3, stride3
     sub             pixd,  4
     lea            pix3d,  [pixd+stride3d]
 %endif
-
+INIT_MMX cpuname
     ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8)
     TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp,   pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(pixq, pix3q, strideq, stride3q)
     lea             pixq, [pixq +8*strideq]
-- 
2.52.0


>From c2b3bec71281cfea6d6dd7f059c49ba988b5986c Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Thu, 20 Aug 2026 17:08:50 +0200
Subject: [PATCH 4/5] avcodec/x86/h264_deblock: Remove obsolete macro
 parameters

Forgotten in b1140d3c982e0720d2dd638f2d7ae0ca6552ac13.

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/h264_deblock.asm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm
index 6243c89e3a..961cf84a0c 100644
--- a/libavcodec/x86/h264_deblock.asm
+++ b/libavcodec/x86/h264_deblock.asm
@@ -649,7 +649,7 @@ DEBLOCK_LUMA 16
     %define mask1p mask1q
 %endmacro
 
-%macro DEBLOCK_LUMA_INTRA 1
+%macro DEBLOCK_LUMA_INTRA 0
     %define p1 m0
     %define p0 m1
     %define q0 m2
@@ -856,10 +856,10 @@ INIT_MMX cpuname
 %endmacro ; DEBLOCK_LUMA_INTRA
 
 INIT_XMM sse2
-DEBLOCK_LUMA_INTRA v
+DEBLOCK_LUMA_INTRA
 %if HAVE_AVX_EXTERNAL
 INIT_XMM avx
-DEBLOCK_LUMA_INTRA v
+DEBLOCK_LUMA_INTRA
 %endif
 
 %macro LOAD_8_ROWS 8
-- 
2.52.0


>From a2e7b15475ceffae674093d4d3abb4d1d9d7e9da Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <[email protected]>
Date: Thu, 20 Aug 2026 17:52:07 +0200
Subject: [PATCH 5/5] avcodec/x86/h264_deblock: Don't use mmx in
 deblock_h_luma_intra_8

Old benchmarks:
  h_loop_filter_luma_intra_8bpp_c:        26.3
  h_loop_filter_luma_intra_8bpp_sse2:     57.4 ( 0.46x)
  h_loop_filter_luma_intra_8bpp_avx:      57.6 ( 0.46x)

New benchmarks:
  h_loop_filter_luma_intra_8bpp_c:        26.5
  h_loop_filter_luma_intra_8bpp_sse2:     52.2 ( 0.51x)
  h_loop_filter_luma_intra_8bpp_avx:      52.3 ( 0.51x)

Signed-off-by: Andreas Rheinhardt <[email protected]>
---
 libavcodec/x86/h264_deblock.asm | 92 ++++++++++++++++++---------------
 1 file changed, 50 insertions(+), 42 deletions(-)

diff --git a/libavcodec/x86/h264_deblock.asm b/libavcodec/x86/h264_deblock.asm
index 961cf84a0c..b47d84effb 100644
--- a/libavcodec/x86/h264_deblock.asm
+++ b/libavcodec/x86/h264_deblock.asm
@@ -96,43 +96,6 @@ cextern pb_3
     RESET_MM_PERMUTATION
 %endmacro
 
-; in: 8 rows of 8 in %1..%8
-; out: 8 rows of 8 in %9..%16
-%macro TRANSPOSE8x8_MEM 16
-    RESET_MM_PERMUTATION
-    movq  m0, %1
-    movq  m1, %2
-    movq  m2, %3
-    movq  m3, %4
-    movq  m4, %5
-    movq  m5, %6
-    movq  m6, %7
-    SBUTTERFLY bw, 0, 1, 7
-    SBUTTERFLY bw, 2, 3, 7
-    SBUTTERFLY bw, 4, 5, 7
-    SBUTTERFLY3 bw, m6, %8, m7
-    movq  %9,  m5
-    SBUTTERFLY wd, 0, 2, 5
-    SBUTTERFLY wd, 4, 6, 5
-    SBUTTERFLY wd, 1, 3, 5
-    movq  %11, m6
-    movq  m6,  %9
-    SBUTTERFLY wd, 6, 7, 5
-    SBUTTERFLY dq, 0, 4, 5
-    SBUTTERFLY dq, 1, 6, 5
-    movq  %9,  m0
-    movq  %10, m4
-    movq  %13, m1
-    movq  %14, m6
-    SBUTTERFLY3 dq, m2, %11, m0
-    SBUTTERFLY dq, 3, 7, 4
-    movq  %11, m2
-    movq  %12, m0
-    movq  %15, m3
-    movq  %16, m7
-    RESET_MM_PERMUTATION
-%endmacro
-
 ; out: %4 = |%1-%2|>%3
 ; clobbers: %5
 %macro DIFF_GT 5
@@ -846,12 +809,57 @@ cglobal deblock_h_luma_intra_8, 2,4,8,0x80, pix, stride, pix3, stride3
     sub             pixd,  4
     lea            pix3d,  [pixd+stride3d]
 %endif
-INIT_MMX cpuname
-    ; transpose 16x6 -> original space (but we can't write only 6 pixels, so really 16x8)
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp,   pix_tmp+0x30, 0x10, 0x30), PASS8ROWS(pixq, pix3q, strideq, stride3q)
-    lea             pixq, [pixq +8*strideq]
+    RESET_MM_PERMUTATION
+    mova              m0, [pix_tmp]
+    mova              m1, [pix_tmp+16]
+    mova              m2, [pix_tmp+32]
+    mova              m3, [pix_tmp+48]
+    SBUTTERFLY        bw, 0, 1, 7
+    mova              m4, [pix_tmp+64]
+    mova              m5, [pix_tmp+80]
+    SBUTTERFLY        bw, 2, 3, 7
+    mova              m6, [pix_tmp+96]
+    SBUTTERFLY        wd, 0, 2, 7
+%if ARCH_X86_64
+    mova              m8, [pix_tmp+112]
+%endif
+    SBUTTERFLY        wd, 1, 3, 7
+    SBUTTERFLY        bw, 4, 5, 7
+%if ARCH_X86_64
+    SBUTTERFLY        bw, 6, 8, 7
+%else
+    punpcklbw         m6, [pix_tmp+112]
+%endif
+    SBUTTERFLY        wd, 4, 6, 7
+    SBUTTERFLY        dq, 0, 4, 7
+    movq          [pixq], m0
+    movhps [pixq+strideq], m0
+%if ARCH_X86_64
+    SWAP               0, 8
+%else
+    mova              m0, [pix_tmp+96]
+    punpckhbw         m0, [pix_tmp+112]
+%endif
+    SBUTTERFLY        dq, 2, 6, 7
+    movq [pixq+2*strideq], m4
+    movhps       [pix3q], m4
+    SBUTTERFLY        wd, 5, 0, 7
+    movq [pix3q+strideq], m2
+    movhps [pix3q+2*strideq], m2
+    lea             pixq, [pixq+8*strideq]
+    SBUTTERFLY        dq, 1, 5, 7
+    movq [pix3q+stride3q], m6
+    movhps [pix3q+4*strideq], m6
     lea            pix3q, [pix3q+8*strideq]
-    TRANSPOSE8x8_MEM  PASS8ROWS(pix_tmp+8, pix_tmp+0x38, 0x10, 0x30), PASS8ROWS(pixq, pix3q, strideq, stride3q)
+    SBUTTERFLY        dq, 3, 0, 7
+    movq          [pixq], m1
+    movhps [pixq+strideq], m1
+    movq [pixq+2*strideq], m5
+    movhps       [pix3q], m5
+    movq [pix3q+strideq], m3
+    movhps [pix3q+2*strideq], m3
+    movq [pix3q+stride3q], m0
+    movhps [pix3q+4*strideq], m0
     RET
 %endmacro ; DEBLOCK_LUMA_INTRA
 
-- 
2.52.0

_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.