From 9bd843aaab25e570edb03f140f27af74e48201bb Mon Sep 17 00:00:00 2001
From: Kieran Kunhya <kierank@obe.tv>
Date: Sat, 2 Mar 2024 21:10:35 +0000
Subject: [PATCH] libavcodec/h264pred: Remove pred8x8_horizontal_8_mmxext

---
 libavcodec/x86/h264_intrapred.asm    | 8 ++++----
 libavcodec/x86/h264_intrapred_init.c | 9 +++++----
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm
index ea46bc5..495df92 100644
--- a/libavcodec/x86/h264_intrapred.asm
+++ b/libavcodec/x86/h264_intrapred.asm
@@ -592,17 +592,17 @@ cglobal pred8x8_horizontal_8, 2,3
 .loop:
     SPLATB_LOAD m0, r0+r1*0-1, m2
     SPLATB_LOAD m1, r0+r1*1-1, m2
-    mova [r0+r1*0], m0
-    mova [r0+r1*1], m1
+    movq [r0+r1*0], m0
+    movq [r0+r1*1], m1
     lea       r0, [r0+r1*2]
     dec       r2
     jg .loop
     RET
 %endmacro

-INIT_MMX mmxext
+INIT_XMM sse2
 PRED8x8_H
-INIT_MMX ssse3
+INIT_XMM ssse3
 PRED8x8_H

 ;-----------------------------------------------------------------------------
diff --git a/libavcodec/x86/h264_intrapred_init.c b/libavcodec/x86/h264_intrapred_init.c
index aa9bc72..41b011b 100644
--- a/libavcodec/x86/h264_intrapred_init.c
+++ b/libavcodec/x86/h264_intrapred_init.c
@@ -117,7 +117,7 @@ PRED8x8(top_dc, 8, mmxext)
 PRED8x8(dc_rv40, 8, mmxext)
 PRED8x8(dc, 8, mmxext)
 PRED8x8(vertical, 8, sse2)
-PRED8x8(horizontal, 8, mmxext)
+PRED8x8(horizontal, 8, sse2)
 PRED8x8(horizontal, 8, ssse3)
 PRED8x8(plane, 8, sse2)
 PRED8x8(plane, 8, ssse3)
@@ -164,8 +164,6 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,

     if (bit_depth == 8) {
         if (EXTERNAL_MMXEXT(cpu_flags)) {
-            if (chroma_format_idc <= 1)
-                h->pred8x8[HOR_PRED8x8          ] = ff_pred8x8_horizontal_8_mmxext;
             h->pred8x8l [TOP_DC_PRED            ] = ff_pred8x8l_top_dc_8_mmxext;
             h->pred8x8l [DC_PRED                ] = ff_pred8x8l_dc_8_mmxext;
             h->pred8x8l [HOR_PRED               ] = ff_pred8x8l_horizontal_8_mmxext;
@@ -210,8 +208,11 @@ av_cold void ff_h264_pred_init_x86(H264PredContext *h, int codec_id,
             h->pred8x8l [VERT_RIGHT_PRED      ] = ff_pred8x8l_vertical_right_8_sse2;
             h->pred8x8l [VERT_LEFT_PRED       ] = ff_pred8x8l_vertical_left_8_sse2;
             h->pred8x8l [HOR_DOWN_PRED        ] = ff_pred8x8l_horizontal_down_8_sse2;
-            if (chroma_format_idc <= 1)
+            if (chroma_format_idc <= 1) {
                 h->pred8x8  [VERT_PRED8x8     ] = ff_pred8x8_vertical_8_sse2;
+                h->pred8x8  [HOR_PRED8x8      ] = ff_pred8x8_horizontal_8_sse2;
+
+            }
             if (codec_id == AV_CODEC_ID_VP7 || codec_id == AV_CODEC_ID_VP8) {
                 h->pred16x16[PLANE_PRED8x8    ] = ff_pred16x16_tm_vp8_8_sse2;
                 h->pred8x8  [PLANE_PRED8x8    ] = ff_pred8x8_tm_vp8_8_sse2;
--
1.9.1