[PR] avcodec/x86/h264_intrapred: cosmetic changes (PR #23907)
zuxy via ffmpeg-devel <[email protected]> Sat, 25 Jul 2026 03:26:03 -0000
| Newsgroups | gmane.comp.video.ffmpeg.devel |
|---|---|
| Message-ID | <178494996453.59.8729301001994963899@29965ddac10e> |
PR #23907 opened by zuxy URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23907 Patch URL: https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/23907.patch >From ff3a042c8943b64c7be3eb546a1df68351cda82f Mon Sep 17 00:00:00 2001 From: Zuxy Meng <[email protected]> Date: Fri, 24 Jul 2026 20:09:28 -0700 Subject: [PATCH 1/2] libavcodec/x86/h264_intrapred: xmmN -> mN, movdqa -> mova Use m aliases instead of xmm registers directly so that certain macros can work (e.g. SWAP); likewise replace movdqa with mova Signed-off-by: Zuxy Meng <[email protected]> --- libavcodec/x86/h264_intrapred.asm | 820 +++++++++++++++--------------- 1 file changed, 410 insertions(+), 410 deletions(-) diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm index 4a785d480f..911779c136 100644 --- a/libavcodec/x86/h264_intrapred.asm +++ b/libavcodec/x86/h264_intrapred.asm @@ -52,13 +52,13 @@ INIT_XMM sse cglobal pred16x16_vertical_8, 2,3 sub r0, r1 mov r2, 4 - movaps xmm0, [r0] + movaps m0, [r0] .loop: - movaps [r0+r1*1], xmm0 - movaps [r0+r1*2], xmm0 + movaps [r0+r1*1], m0 + movaps [r0+r1*2], m0 lea r0, [r0+r1*2] - movaps [r0+r1*1], xmm0 - movaps [r0+r1*2], xmm0 + movaps [r0+r1*1], m0 + movaps [r0+r1*2], m0 lea r0, [r0+r1*2] dec r2 jg .loop @@ -165,11 +165,11 @@ PRED16x16_DC INIT_XMM sse2 cglobal pred16x16_tm_vp8_8, 2,6,6 sub r0, r1 - pxor xmm2, xmm2 - movdqa xmm0, [r0] - movdqa xmm1, xmm0 - punpcklbw xmm0, xmm2 - punpckhbw xmm1, xmm2 + pxor m2, m2 + mova m0, [r0] + mova m1, m0 + punpcklbw m0, m2 + punpckhbw m1, m2 movzx r4d, byte [r0-1] mov r5d, 8 .loop: @@ -177,22 +177,22 @@ cglobal pred16x16_tm_vp8_8, 2,6,6 movzx r3d, byte [r0+r1*2-1] sub r2d, r4d sub r3d, r4d - movd xmm2, r2d - movd xmm4, r3d - pshuflw xmm2, xmm2, 0 - pshuflw xmm4, xmm4, 0 - punpcklqdq xmm2, xmm2 - punpcklqdq xmm4, xmm4 - movdqa xmm3, xmm2 - movdqa xmm5, xmm4 - paddw xmm2, xmm0 - paddw xmm3, xmm1 - paddw xmm4, xmm0 - paddw xmm5, xmm1 - packuswb xmm2, xmm3 - packuswb xmm4, xmm5 - movdqa [r0+r1*1], xmm2 - movdqa [r0+r1*2], xmm4 + movd m2, r2d + movd m4, r3d + pshuflw m2, m2, 0 + pshuflw m4, m4, 0 + punpcklqdq m2, m2 + punpcklqdq m4, m4 + mova m3, m2 + mova m5, m4 + paddw m2, m0 + paddw m3, m1 + paddw m4, m0 + paddw m5, m1 + packuswb m2, m3 + packuswb m4, m5 + mova [r0+r1*1], m2 + mova [r0+r1*2], m4 lea r0, [r0+r1*2] dec r5d jg .loop @@ -624,26 +624,26 @@ PRED8x8_H INIT_XMM sse2 cglobal pred8x8_top_dc_8, 2,5,2 sub r0, r1 - movq xmm0, [r0] - pxor xmm1, xmm1 + movq m0, [r0] + pxor m1, m1 lea r2, [r0+r1*2] - punpcklbw xmm0, xmm1 - psadbw xmm0, xmm1 ; s0,0,0,0,s1,0,0,0 (w) + punpcklbw m0, m1 + psadbw m0, m1 ; s0,0,0,0,s1,0,0,0 (w) lea r3, [r2+r1*2] - psrlw xmm0, 1 - pavgw xmm0, xmm1 - pshuflw xmm0, xmm0, 0 ; dc0,dc0,dc0,dc0,dc1,0,0,0 - pshufhw xmm0, xmm0, 0 ; dc0,dc1 (w) - packuswb xmm0, xmm1 ; dc0,dc1 (b) - movq [r0+r1*1], xmm0 - movq [r0+r1*2], xmm0 + psrlw m0, 1 + pavgw m0, m1 + pshuflw m0, m0, 0 ; dc0,dc0,dc0,dc0,dc1,0,0,0 + pshufhw m0, m0, 0 ; dc0,dc1 (w) + packuswb m0, m1 ; dc0,dc1 (b) + movq [r0+r1*1], m0 + movq [r0+r1*2], m0 lea r0, [r3+r1*2] - movq [r2+r1*1], xmm0 - movq [r2+r1*2], xmm0 - movq [r3+r1*1], xmm0 - movq [r3+r1*2], xmm0 - movq [r0+r1*1], xmm0 - movq [r0+r1*2], xmm0 + movq [r2+r1*1], m0 + movq [r2+r1*2], m0 + movq [r3+r1*1], m0 + movq [r3+r1*2], m0 + movq [r0+r1*1], m0 + movq [r0+r1*2], m0 RET ;----------------------------------------------------------------------------- @@ -750,9 +750,9 @@ cglobal pred8x8_dc_rv40_8, 2,7,2 INIT_XMM sse2 cglobal pred8x8_tm_vp8_8, 2,6,4 sub r0, r1 - pxor xmm1, xmm1 - movq xmm0, [r0] - punpcklbw xmm0, xmm1 + pxor m1, m1 + movq m0, [r0] + punpcklbw m0, m1 movzx r4d, byte [r0-1] mov r5d, 4 .loop: @@ -760,17 +760,17 @@ cglobal pred8x8_tm_vp8_8, 2,6,4 movzx r3d, byte [r0+r1*2-1] sub r2d, r4d sub r3d, r4d - movd xmm2, r2d - movd xmm3, r3d - pshuflw xmm2, xmm2, 0 - pshuflw xmm3, xmm3, 0 - punpcklqdq xmm2, xmm2 - punpcklqdq xmm3, xmm3 - paddw xmm2, xmm0 - paddw xmm3, xmm0 - packuswb xmm2, xmm3 - movq [r0+r1*1], xmm2 - movhps [r0+r1*2], xmm2 + movd m2, r2d + movd m3, r3d + pshuflw m2, m2, 0 + pshuflw m3, m3, 0 + punpcklqdq m2, m2 + punpcklqdq m3, m3 + paddw m2, m0 + paddw m3, m0 + packuswb m2, m3 + movq [r0+r1*1], m2 + movhps [r0+r1*2], m2 lea r0, [r0+r1*2] dec r5d jg .loop @@ -779,25 +779,25 @@ cglobal pred8x8_tm_vp8_8, 2,6,4 INIT_XMM ssse3 cglobal pred8x8_tm_vp8_8, 2,3,6 sub r0, r1 - movdqa xmm4, [tm_shuf] - pxor xmm1, xmm1 - movq xmm0, [r0] - punpcklbw xmm0, xmm1 - movd xmm5, [r0-4] - pshufb xmm5, xmm4 + mova m4, [tm_shuf] + pxor m1, m1 + movq m0, [r0] + punpcklbw m0, m1 + movd m5, [r0-4] + pshufb m5, m4 mov r2d, 4 .loop: - movd xmm2, [r0+r1*1-4] - movd xmm3, [r0+r1*2-4] - pshufb xmm2, xmm4 - pshufb xmm3, xmm4 - psubw xmm2, xmm5 - psubw xmm3, xmm5 - paddw xmm2, xmm0 - paddw xmm3, xmm0 - packuswb xmm2, xmm3 - movq [r0+r1*1], xmm2 - movhps [r0+r1*2], xmm2 + movd m2, [r0+r1*1-4] + movd m3, [r0+r1*2-4] + pshufb m2, m4 + pshufb m3, m4 + psubw m2, m5 + psubw m3, m5 + paddw m2, m0 + paddw m3, m0 + packuswb m2, m3 + movq [r0+r1*1], m2 + movhps [r0+r1*2], m2 lea r0, [r0+r1*2] dec r2d jg .loop @@ -1067,74 +1067,74 @@ cglobal pred8x8l_vertical_8, 4,4,5 INIT_XMM sse2 cglobal pred8x8l_down_left_8, 4,4,6 sub r0, r3 - movu xmm2, [r0-8] - movu xmm1, [r0] - mova xmm3, xmm1 - psrldq xmm2, 7 - psrldq xmm1, 1 + movu m2, [r0-8] + movu m1, [r0] + mova m3, m1 + psrldq m2, 7 + psrldq m1, 1 test r1d, r1d ; top_left jnz .check_tr .fix_lt: - pxor xmm5, xmm3, xmm2 - psllq xmm5, 56 - psrlq xmm5, 56 - pxor xmm2, xmm5 + pxor m5, m3, m2 + psllq m5, 56 + psrlq m5, 56 + pxor m2, m5 .check_tr: test r2d, r2d ; top_right jnz .do_top .fix_tr_1: - pxor xmm5, xmm3, xmm1 - psrlq xmm5, 56 - psllq xmm5, 56 - pxor xmm1, xmm5 + pxor m5, m3, m1 + psrlq m5, 56 + psllq m5, 56 + pxor m1, m5 .do_top: - PRED4x4_LOWPASS xmm4, xmm2, xmm1, xmm3, xmm5 - movq xmm2, xmm4 + PRED4x4_LOWPASS m4, m2, m1, m3, m5 + movq m2, m4 test r2d, r2d ; top_right jnz .has_top_right .fix_tr_2: - punpcklbw xmm3, xmm3 - pshufhw xmm1, xmm3, 0xff - pshufd xmm1, xmm1, 0xee + punpcklbw m3, m3 + pshufhw m1, m3, 0xff + pshufd m1, m1, 0xee jmp .do_topright .has_top_right: - movq xmm0, [r0+8] - psrlq xmm5, xmm0, 56 - punpcklqdq xmm3, xmm0 - psrldq xmm3, 7 - punpcklqdq xmm4, xmm0, xmm5 - psrldq xmm4, 1 - PRED4x4_LOWPASS xmm1, xmm3, xmm4, xmm0, xmm5 + movq m0, [r0+8] + psrlq m5, m0, 56 + punpcklqdq m3, m0 + psrldq m3, 7 + punpcklqdq m4, m0, m5 + psrldq m4, 1 + PRED4x4_LOWPASS m1, m3, m4, m0, m5 .do_topright: - mova xmm4, xmm1 - psrlq xmm1, 56 - pslldq xmm1, 15 + mova m4, m1 + psrlq m1, 56 + pslldq m1, 15 lea r1, [r0+r3*2] - pslldq xmm4, 8 - por xmm2, xmm4 - movdqa xmm3, xmm2 - psrldq xmm2, 1 - por xmm2, xmm1 + pslldq m4, 8 + por m2, m4 + mova m3, m2 + psrldq m2, 1 + por m2, m1 lea r2, [r1+r3*2] - pslldq xmm1, xmm3, 1 - PRED4x4_LOWPASS xmm3, xmm1, xmm2, xmm3, xmm4 - psrldq xmm3, 1 - movq [r0+r3*1], xmm3 - psrldq xmm3, 1 - movq [r0+r3*2], xmm3 - psrldq xmm3, 1 + pslldq m1, m3, 1 + PRED4x4_LOWPASS m3, m1, m2, m3, m4 + psrldq m3, 1 + movq [r0+r3*1], m3 + psrldq m3, 1 + movq [r0+r3*2], m3 + psrldq m3, 1 lea r0, [r2+r3*2] - movq [r1+r3*1], xmm3 - psrldq xmm3, 1 - movq [r1+r3*2], xmm3 - psrldq xmm3, 1 - movq [r2+r3*1], xmm3 - psrldq xmm3, 1 - movq [r2+r3*2], xmm3 - psrldq xmm3, 1 - movq [r0+r3*1], xmm3 - psrldq xmm3, 1 - movq [r0+r3*2], xmm3 + movq [r1+r3*1], m3 + psrldq m3, 1 + movq [r1+r3*2], m3 + psrldq m3, 1 + movq [r2+r3*1], m3 + psrldq m3, 1 + movq [r2+r3*2], m3 + psrldq m3, 1 + movq [r0+r3*1], m3 + psrldq m3, 1 + movq [r0+r3*2], m3 RET ;----------------------------------------------------------------------------- @@ -1146,101 +1146,101 @@ INIT_XMM sse2 cglobal pred8x8l_down_right_8, 4,5,7 sub r0, r3 lea r4, [r0+r3*2] - movd xmm0, [r0+r3*1-4] - movd xmm4, [r0+r3*0-4] - punpcklbw xmm0, xmm4 - movd xmm1, [r4+r3*1-4] - movd xmm4, [r0+r3*2-4] - punpcklbw xmm1, xmm4 + movd m0, [r0+r3*1-4] + movd m4, [r0+r3*0-4] + punpcklbw m0, m4 + movd m1, [r4+r3*1-4] + movd m4, [r0+r3*2-4] + punpcklbw m1, m4 mov r4, r0 - punpcklwd xmm1, xmm0 + punpcklwd m1, m0 lea r0, [r0+r3*4] - movd xmm2, [r0+r3*1-4] - movd xmm4, [r0+r3*0-4] - punpcklbw xmm2, xmm4 + movd m2, [r0+r3*1-4] + movd m4, [r0+r3*0-4] + punpcklbw m2, m4 lea r0, [r0+r3*2] - movd xmm3, [r0+r3*1-4] - movd xmm4, [r0+r3*0-4] - punpcklbw xmm3, xmm4 - punpcklwd xmm3, xmm2 - punpckhdq xmm3, xmm1 - pshufd xmm3, xmm3, 0xee + movd m3, [r0+r3*1-4] + movd m4, [r0+r3*0-4] + punpcklbw m3, m4 + punpcklwd m3, m2 + punpckhdq m3, m1 + pshufd m3, m3, 0xee lea r0, [r0+r3*2] - movq xmm0, [r0+r3*0-8] - movq xmm1, [r4] + movq m0, [r0+r3*0-8] + movq m1, [r4] mov r0, r4 - mova xmm2, xmm3 - punpcklqdq xmm0, xmm3 - psrldq xmm4, xmm0, 7 - punpcklqdq xmm2, xmm1 - psrldq xmm1, xmm2, 1 + mova m2, m3 + punpcklqdq m0, m3 + psrldq m4, m0, 7 + punpcklqdq m2, m1 + psrldq m1, m2, 1 test r1d, r1d jnz .do_left .fix_lt_1: - pxor xmm5, xmm3, xmm4 - psrlq xmm5, 56 - psllq xmm5, 48 - pxor xmm1, xmm5 + pxor m5, m3, m4 + psrlq m5, 56 + psllq m5, 48 + pxor m1, m5 .do_left: - mova xmm0, xmm4 - PRED4x4_LOWPASS xmm2, xmm1, xmm4, xmm3, xmm5 - mova xmm4, xmm0 - movq xmm6, xmm2 - PRED4x4_LOWPASS xmm1, xmm3, xmm0, xmm4, xmm5 - psllq xmm1, 56 - punpcklqdq xmm1, xmm2 - psrldq xmm1, 7 - mova xmm0, xmm1 - movu xmm2, [r0-8] - movu xmm1, [r0] - mova xmm3, xmm1 - psrldq xmm2, 7 - psrldq xmm1, 1 + mova m0, m4 + PRED4x4_LOWPASS m2, m1, m4, m3, m5 + mova m4, m0 + movq m6, m2 + PRED4x4_LOWPASS m1, m3, m0, m4, m5 + psllq m1, 56 + punpcklqdq m1, m2 + psrldq m1, 7 + mova m0, m1 + movu m2, [r0-8] + movu m1, [r0] + mova m3, m1 + psrldq m2, 7 + psrldq m1, 1 jnz .check_tr .fix_lt_2: - pxor xmm5, xmm3, xmm2 - psllq xmm5, 56 - psrlq xmm5, 56 - pxor xmm2, xmm5 + pxor m5, m3, m2 + psllq m5, 56 + psrlq m5, 56 + pxor m2, m5 .check_tr: test r2d, r2d jnz .do_top .fix_tr_1: - pxor xmm5, xmm3, xmm1 - psrlq xmm5, 56 - psllq xmm5, 56 - pxor xmm1, xmm5 + pxor m5, m3, m1 + psrlq m5, 56 + psllq m5, 56 + pxor m1, m5 .do_top: - PRED4x4_LOWPASS xmm4, xmm2, xmm1, xmm3, xmm5 + PRED4x4_LOWPASS m4, m2, m1, m3, m5 lea r1, [r0+r3*2] - movdqa xmm1, xmm6 - pslldq xmm4, 8 - por xmm6, xmm4 + mova m1, m6 + pslldq m4, 8 + por m6, m4 lea r2, [r1+r3*2] - pslldq xmm4, 1 - por xmm0, xmm4 - psrldq xmm1, 7 - pslldq xmm1, 15 - psrldq xmm1, 7 - por xmm0, xmm1 + pslldq m4, 1 + por m0, m4 + psrldq m1, 7 + pslldq m1, 15 + psrldq m1, 7 + por m0, m1 lea r0, [r2+r3*2] - psrldq xmm2, xmm6, 1 - PRED4x4_LOWPASS xmm3, xmm0, xmm2, xmm6, xmm4 - psrldq xmm1, xmm3, 1 - movq [r0+r3*2], xmm3 - movq [r0+r3*1], xmm1 - psrldq xmm3, 2 - psrldq xmm1, 2 - movq [r2+r3*2], xmm3 - movq [r2+r3*1], xmm1 - psrldq xmm3, 2 - psrldq xmm1, 2 - movq [r1+r3*2], xmm3 - movq [r1+r3*1], xmm1 - psrldq xmm3, 2 - psrldq xmm1, 2 - movq [r4+r3*2], xmm3 - movq [r4+r3*1], xmm1 + psrldq m2, m6, 1 + PRED4x4_LOWPASS m3, m0, m2, m6, m4 + psrldq m1, m3, 1 + movq [r0+r3*2], m3 + movq [r0+r3*1], m1 + psrldq m3, 2 + psrldq m1, 2 + movq [r2+r3*2], m3 + movq [r2+r3*1], m1 + psrldq m3, 2 + psrldq m1, 2 + movq [r1+r3*2], m3 + movq [r1+r3*1], m1 + psrldq m3, 2 + psrldq m1, 2 + movq [r4+r3*2], m3 + movq [r4+r3*1], m1 RET ;----------------------------------------------------------------------------- @@ -1252,101 +1252,101 @@ INIT_XMM sse2 cglobal pred8x8l_vertical_right_8, 4,5,6 sub r0, r3 lea r4, [r0+r3*2] - movd xmm0, [r0+r3*1-4] - movd xmm2, [r0+r3*0-4] - punpcklbw xmm0, xmm2 - movd xmm1, [r4+r3*1-4] - movd xmm3, [r0+r3*2-4] - punpcklbw xmm1, xmm3 + movd m0, [r0+r3*1-4] + movd m2, [r0+r3*0-4] + punpcklbw m0, m2 + movd m1, [r4+r3*1-4] + movd m3, [r0+r3*2-4] + punpcklbw m1, m3 mov r4, r0 - punpcklwd xmm1, xmm0 + punpcklwd m1, m0 lea r0, [r0+r3*4] - movd xmm2, [r0+r3*1-4] - movd xmm5, [r0+r3*0-4] - punpcklbw xmm2, xmm5 + movd m2, [r0+r3*1-4] + movd m5, [r0+r3*0-4] + punpcklbw m2, m5 lea r0, [r0+r3*2] - movd xmm3, [r0+r3*1-4] - movd xmm5, [r0+r3*0-4] - punpcklbw xmm3, xmm5 - punpcklwd xmm3, xmm2 - punpckhdq xmm3, xmm1 - pshufd xmm3, xmm3, 0xee + movd m3, [r0+r3*1-4] + movd m5, [r0+r3*0-4] + punpcklbw m3, m5 + punpcklwd m3, m2 + punpckhdq m3, m1 + pshufd m3, m3, 0xee lea r0, [r0+r3*2] - movq xmm0, [r0+r3*0-8] - movq xmm1, [r4] + movq m0, [r0+r3*0-8] + movq m1, [r4] mov r0, r4 - punpcklqdq xmm0, xmm3 - psrldq xmm0, 7 - mova xmm4, xmm0 - punpcklqdq xmm2, xmm3, xmm1 - psrldq xmm2, 1 - mova xmm1, xmm2 + punpcklqdq m0, m3 + psrldq m0, 7 + mova m4, m0 + punpcklqdq m2, m3, m1 + psrldq m2, 1 + mova m1, m2 test r1d, r1d jnz .do_left .fix_lt_1: - pxor xmm5, xmm3, xmm4 - psrlq xmm5, 56 - psllq xmm5, 48 - pxor xmm1, xmm5 + pxor m5, m3, m4 + psrlq m5, 56 + psllq m5, 48 + pxor m1, m5 .do_left: - PRED4x4_LOWPASS xmm2, xmm1, xmm4, xmm3, xmm5 - movq xmm0, xmm2 - movu xmm2, [r0-8] - movu xmm1, [r0] - mova xmm3, xmm1 - psrldq xmm2, 7 - psrldq xmm1, 1 + PRED4x4_LOWPASS m2, m1, m4, m3, m5 + movq m0, m2 + movu m2, [r0-8] + movu m1, [r0] + mova m3, m1 + psrldq m2, 7 + psrldq m1, 1 jnz .check_tr .fix_lt_2: - pxor xmm5, xmm3, xmm2 - psllq xmm5, 56 - psrlq xmm5, 56 - pxor xmm2, xmm5 + pxor m5, m3, m2 + psllq m5, 56 + psrlq m5, 56 + pxor m2, m5 .check_tr: test r2d, r2d jnz .do_top .fix_tr_1: - pxor xmm5, xmm3, xmm1 - psrlq xmm5, 56 - psllq xmm5, 56 - pxor xmm1, xmm5 + pxor m5, m3, m1 + psrlq m5, 56 + psllq m5, 56 + pxor m1, m5 .do_top: - PRED4x4_LOWPASS xmm4, xmm2, xmm1, xmm3, xmm5 + PRED4x4_LOWPASS m4, m2, m1, m3, m5 lea r1, [r0+r3*2] - pslldq xmm4, 8 - por xmm0, xmm4 - movdqa xmm1, xmm0 + pslldq m4, 8 + por m0, m4 + mova m1, m0 lea r2, [r0+r3*4] - movdqa xmm2, xmm0 - movdqa xmm3, xmm0 - pslldq xmm0, 1 - pslldq xmm1, 2 - pavgb xmm2, xmm0 - PRED4x4_LOWPASS xmm0, xmm3, xmm1, xmm0, xmm5 - pandn xmm4, [pw_ff00], xmm0 - movdqa xmm5, xmm0 - psrlw xmm0, 8 - packuswb xmm4, xmm0 - movhlps xmm0, xmm4 - movhps [r0+r3*2], xmm5 - movhps [r0+r3*1], xmm2 - psrldq xmm5, 4 - movss xmm5, xmm4 - psrldq xmm2, 4 - movss xmm2, xmm0 + mova m2, m0 + mova m3, m0 + pslldq m0, 1 + pslldq m1, 2 + pavgb m2, m0 + PRED4x4_LOWPASS m0, m3, m1, m0, m5 + pandn m4, [pw_ff00], m0 + mova m5, m0 + psrlw m0, 8 + packuswb m4, m0 + movhlps m0, m4 + movhps [r0+r3*2], m5 + movhps [r0+r3*1], m2 + psrldq m5, 4 + movss m5, m4 + psrldq m2, 4 + movss m2, m0 lea r0, [r2+r3*2] - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r0+r3*2], xmm5 - movq [r0+r3*1], xmm2 - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r2+r3*2], xmm5 - movq [r2+r3*1], xmm2 - psrldq xmm5, 1 - psrldq xmm2, 1 - movq [r1+r3*2], xmm5 - movq [r1+r3*1], xmm2 + psrldq m5, 1 + psrldq m2, 1 + movq [r0+r3*2], m5 + movq [r0+r3*1], m2 + psrldq m5, 1 + psrldq m2, 1 + movq [r2+r3*2], m5 + movq [r2+r3*1], m2 + psrldq m5, 1 + psrldq m2, 1 + movq [r1+r3*2], m5 + movq [r1+r3*1], m2 RET ;----------------------------------------------------------------------------- @@ -1357,68 +1357,68 @@ cglobal pred8x8l_vertical_right_8, 4,5,6 INIT_XMM sse2 cglobal pred8x8l_vertical_left_8, 4,4,7 sub r0, r3 - movu xmm2, [r0-8] - movu xmm1, [r0] - mova xmm3, xmm1 - psrldq xmm2, 7 - psrldq xmm1, 1 + movu m2, [r0-8] + movu m1, [r0] + mova m3, m1 + psrldq m2, 7 + psrldq m1, 1 test r1d, r1d jnz .check_tr .fix_lt_2: - pxor xmm5, xmm3, xmm2 - psllq xmm5, 56 - psrlq xmm5, 56 - pxor xmm2, xmm5 + pxor m5, m3, m2 + psllq m5, 56 + psrlq m5, 56 + pxor m2, m5 .check_tr: test r2d, r2d jnz .do_top .fix_tr_1: - pxor xmm5, xmm3, xmm1 - psrlq xmm5, 56 - psllq xmm5, 56 - pxor xmm1, xmm5 + pxor m5, m3, m1 + psrlq m5, 56 + psllq m5, 56 + pxor m1, m5 .do_top: - PRED4x4_LOWPASS xmm4, xmm2, xmm1, xmm3, xmm5 - movq xmm6, xmm4 + PRED4x4_LOWPASS m4, m2, m1, m3, m5 + movq m6, m4 jnz .normal_top .fix_tr_2: - punpcklbw xmm3, xmm3 - pshufd xmm3, xmm3, 0xEE - pshuflw xmm1, xmm3, 0xFF + punpcklbw m3, m3 + pshufd m3, m3, 0xEE + pshuflw m1, m3, 0xFF jmp .do_topright .normal_top: - movq xmm0, [r0+8] - psrlq xmm5, xmm0, 56 - punpcklqdq xmm3, xmm0 - psrldq xmm3, 7 - punpcklqdq xmm4, xmm0, xmm5 - psrldq xmm4, 1 - PRED4x4_LOWPASS xmm1, xmm3, xmm4, xmm0, xmm2 + movq m0, [r0+8] + psrlq m5, m0, 56 + punpcklqdq m3, m0 + psrldq m3, 7 + punpcklqdq m4, m0, m5 + psrldq m4, 1 + PRED4x4_LOWPASS m1, m3, m4, m0, m2 .do_topright: lea r1, [r0+r3*2] lea r2, [r0+r3*4] - pslldq xmm1, 8 - por xmm6, xmm1 - psrldq xmm2, xmm6, 1 - pslldq xmm1, xmm6, 1 - pavgb xmm3, xmm6, xmm2 - PRED4x4_LOWPASS xmm6, xmm1, xmm2, xmm6, xmm5 - psrldq xmm6, 1 - movq [r0+r3*1], xmm3 - movq [r0+r3*2], xmm6 + pslldq m1, 8 + por m6, m1 + psrldq m2, m6, 1 + pslldq m1, m6, 1 + pavgb m3, m6, m2 + PRED4x4_LOWPASS m6, m1, m2, m6, m5 + psrldq m6, 1 + movq [r0+r3*1], m3 + movq [r0+r3*2], m6 lea r0, [r2+r3*2] - psrldq xmm3, 1 - psrldq xmm6, 1 - movq [r1+r3*1], xmm3 - movq [r1+r3*2], xmm6 - psrldq xmm3, 1 - psrldq xmm6, 1 - movq [r2+r3*1], xmm3 - movq [r2+r3*2], xmm6 - psrldq xmm3, 1 - psrldq xmm6, 1 - movq [r0+r3*1], xmm3 - movq [r0+r3*2], xmm6 + psrldq m3, 1 + psrldq m6, 1 + movq [r1+r3*1], m3 + movq [r1+r3*2], m6 + psrldq m3, 1 + psrldq m6, 1 + movq [r2+r3*1], m3 + movq [r2+r3*2], m6 + psrldq m3, 1 + psrldq m6, 1 + movq [r0+r3*1], m3 + movq [r0+r3*2], m6 RET ;----------------------------------------------------------------------------- @@ -1514,118 +1514,118 @@ cglobal pred8x8l_horizontal_up_8, 4,4,6 cglobal pred8x8l_horizontal_down_8, 4,5,8 sub r0, r3 lea r4, [r0+r3*2] - movd xmm0, [r0+r3*1-4] - movd xmm1, [r0+r3*0-4] - punpcklbw xmm0, xmm1 - movd xmm1, [r4+r3*1-4] - movd xmm2, [r0+r3*2-4] - punpcklbw xmm1, xmm2 + movd m0, [r0+r3*1-4] + movd m1, [r0+r3*0-4] + punpcklbw m0, m1 + movd m1, [r4+r3*1-4] + movd m2, [r0+r3*2-4] + punpcklbw m1, m2 mov r4, r0 - punpcklwd xmm1, xmm0 + punpcklwd m1, m0 lea r0, [r0+r3*4] - movd xmm2, [r0+r3*1-4] - movd xmm3, [r0+r3*0-4] - punpcklbw xmm2, xmm3 + movd m2, [r0+r3*1-4] + movd m3, [r0+r3*0-4] + punpcklbw m2, m3 lea r0, [r0+r3*2] - movd xmm3, [r0+r3*1-4] - movd xmm4, [r0+r3*0-4] - punpcklbw xmm3, xmm4 - punpcklwd xmm3, xmm2 - punpckhdq xmm3, xmm1 - pshufd xmm3, xmm3, 0xee + movd m3, [r0+r3*1-4] + movd m4, [r0+r3*0-4] + punpcklbw m3, m4 + punpcklwd m3, m2 + punpckhdq m3, m1 + pshufd m3, m3, 0xee lea r0, [r0+r3*2] - movq xmm0, [r0+r3*0-8] - movq xmm1, [r4] + movq m0, [r0+r3*0-8] + movq m1, [r4] mov r0, r4 - mova xmm2, xmm3 - punpcklqdq xmm0, xmm3 - psrldq xmm0, 7 - mova xmm4, xmm0 - punpcklqdq xmm2, xmm1 - psrldq xmm2, 1 - mova xmm1, xmm2 + mova m2, m3 + punpcklqdq m0, m3 + psrldq m0, 7 + mova m4, m0 + punpcklqdq m2, m1 + psrldq m2, 1 + mova m1, m2 test r1d, r1d jnz .do_left .fix_lt_1: - pxor xmm5, xmm3, xmm4 - psrlq xmm5, 56 - psllq xmm5, 48 - pxor xmm1, xmm5 + pxor m5, m3, m4 + psrlq m5, 56 + psllq m5, 48 + pxor m1, m5 .do_left: - PRED4x4_LOWPASS xmm2, xmm1, xmm4, xmm3, xmm5 - movq xmm6, xmm2 - pslldq xmm6, 8 - mova xmm4, xmm0 - PRED4x4_LOWPASS xmm1, xmm3, xmm0, xmm4, xmm5 - pslldq xmm2, xmm1, 15 - psrldq xmm2, 8 - por xmm6, xmm2 - movdqu xmm2, [r0-8] - movdqu xmm1, [r0] - mova xmm3, xmm1 - psrldq xmm2, 7 - psrldq xmm1, 1 + PRED4x4_LOWPASS m2, m1, m4, m3, m5 + movq m6, m2 + pslldq m6, 8 + mova m4, m0 + PRED4x4_LOWPASS m1, m3, m0, m4, m5 + pslldq m2, m1, 15 + psrldq m2, 8 + por m6, m2 + movu m2, [r0-8] + movu m1, [r0] + mova m3, m1 + psrldq m2, 7 + psrldq m1, 1 test r1d, r1d jnz .check_r2 .fix_lt_2: - pxor xmm5, xmm3, xmm2 - psllq xmm5, 56 - psrlq xmm5, 56 - pxor xmm2, xmm5 + pxor m5, m3, m2 + psllq m5, 56 + psrlq m5, 56 + pxor m2, m5 .check_r2: test r2d, r2d jnz .do_top .fix_tr_1: - pxor xmm5, xmm3, xmm1 - psrlq xmm5, 56 - psllq xmm5, 56 - pxor xmm1, xmm5 + pxor m5, m3, m1 + psrlq m5, 56 + psllq m5, 56 + pxor m1, m5 .do_top: - PRED4x4_LOWPASS xmm7, xmm2, xmm1, xmm3, xmm5 + PRED4x4_LOWPASS m7, m2, m1, m3, m5 test r2d, r2d jz .fix_tr_2 - movq xmm0, [r0+8] - psrlq xmm5, xmm0, 56 - punpcklqdq xmm3, xmm0 - psrldq xmm3, 7 - punpcklqdq xmm4, xmm0, xmm5 - psrldq xmm4, 1 - PRED4x4_LOWPASS xmm1, xmm3, xmm4, xmm0, xmm4 + movq m0, [r0+8] + psrlq m5, m0, 56 + punpcklqdq m3, m0 + psrldq m3, 7 + punpcklqdq m4, m0, m5 + psrldq m4, 1 + PRED4x4_LOWPASS m1, m3, m4, m0, m4 .do_topright: - movq xmm0, xmm1 - pslldq xmm0, 8 - por xmm7, xmm0 + movq m0, m1 + pslldq m0, 8 + por m7, m0 lea r2, [r4+r3*2] - movdqa xmm2, xmm7 - movdqa xmm3, xmm7 - PALIGNR xmm7, xmm6, 7, xmm4 - PALIGNR xmm2, xmm6, 9, xmm0 + mova m2, m7 + mova m3, m7 + PALIGNR m7, m6, 7, m4 + PALIGNR m2, m6, 9, m0 lea r1, [r4+r3*4] - PALIGNR xmm3, xmm6, 8, xmm6 - pavgb xmm4, xmm7, xmm3 + PALIGNR m3, m6, 8, m6 + pavgb m4, m7, m3 lea r0, [r2+r3*4] - PRED4x4_LOWPASS xmm3, xmm7, xmm2, xmm3, xmm5 - punpcklbw xmm4, xmm3 - movhlps xmm3, xmm4 - movq [r0+r3*2], xmm4 - movq [r2+r3*2], xmm3 - psrldq xmm4, 2 - psrldq xmm3, 2 - movq [r0+r3*1], xmm4 - movq [r2+r3*1], xmm3 - psrldq xmm4, 2 - psrldq xmm3, 2 - movq [r1+r3*2], xmm4 - movq [r4+r3*2], xmm3 - psrldq xmm4, 2 - psrldq xmm3, 2 - movq [r1+r3*1], xmm4 - movq [r4+r3*1], xmm3 + PRED4x4_LOWPASS m3, m7, m2, m3, m5 + punpcklbw m4, m3 + movhlps m3, m4 + movq [r0+r3*2], m4 + movq [r2+r3*2], m3 + psrldq m4, 2 + psrldq m3, 2 + movq [r0+r3*1], m4 + movq [r2+r3*1], m3 + psrldq m4, 2 + psrldq m3, 2 + movq [r1+r3*2], m4 + movq [r4+r3*2], m3 + psrldq m4, 2 + psrldq m3, 2 + movq [r1+r3*1], m4 + movq [r4+r3*1], m3 RET .fix_tr_2: - punpcklbw xmm3, xmm3 - pshufd xmm3, xmm3, 0xEE - pshuflw xmm1, xmm3, 0xFF + punpcklbw m3, m3 + pshufd m3, m3, 0xEE + pshuflw m1, m3, 0xFF jmp .do_topright %endmacro -- 2.52.0 >From 3a8e761d05109a61dd746c4a0fb555cd63fac276 Mon Sep 17 00:00:00 2001 From: Zuxy Meng <[email protected]> Date: Fri, 24 Jul 2026 20:21:32 -0700 Subject: [PATCH 2/2] libavcodec/x86/h264_intrapred: Base-4 numbers for shuffling immediates 0xee -> q3232 for example for better readability Signed-off-by: Zuxy Meng <[email protected]> --- libavcodec/x86/h264_intrapred.asm | 74 +++++++++++++++---------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/libavcodec/x86/h264_intrapred.asm b/libavcodec/x86/h264_intrapred.asm index 911779c136..ea26f8435a 100644 --- a/libavcodec/x86/h264_intrapred.asm +++ b/libavcodec/x86/h264_intrapred.asm @@ -259,9 +259,9 @@ cglobal pred16x16_plane_%1_8, 2,9,7 %endif movhlps m1, m0 paddw m0, m1 - PSHUFLW m1, m0, 0xE + PSHUFLW m1, m0, q0032 paddw m0, m1 - PSHUFLW m1, m0, 0x1 + PSHUFLW m1, m0, q0001 paddw m0, m1 ; sum of H coefficients lea r4, [r0+r2*8-1] @@ -467,11 +467,11 @@ cglobal pred8x8_plane_8, 2,9,7 paddw m0, m1 %if notcpuflag(ssse3) - PSHUFLW m1, m0, 0xE + PSHUFLW m1, m0, q0032 paddw m0, m1 %endif ; !ssse3 - PSHUFLW m1, m0, 0x1 + PSHUFLW m1, m0, q0001 paddw m0, m1 ; sum of H coefficients lea r4, [r0+r2*4-1] @@ -684,9 +684,9 @@ cglobal pred8x8_dc_8, 2,5,5 mov r0, r4 punpcklwd m2, m3 punpckldq m0, m2 ; s0, s1, s2, s3 - pshuflw m3, m0, 11110110b ; s2, s1, s3, s3 + pshuflw m3, m0, q3312 ; s2, s1, s3, s3 lea r2, [r0+r1*2] - pshuflw m0, m0, 01110100b ; s0, s1, s3, s1 + pshuflw m0, m0, q1310 ; s0, s1, s3, s1 paddw m0, m3 lea r3, [r2+r1*2] psrlw m0, 2 @@ -885,8 +885,8 @@ cglobal pred8x8l_dc_8, 4,5,6 movd m4, [r0+r3*0-4] punpcklbw m3, m4 punpcklwd m3, m2 - shufps m3, m1, 0xed - pshufd m3, m3, 0x0d + shufps m3, m1, q3231 + pshufd m3, m3, q0031 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r4] @@ -983,7 +983,7 @@ cglobal pred8x8l_horizontal_8, 4,4,6 punpcklbw m3, m4 punpcklwd m3, m2 punpckhdq m3, m1 - pshufd m3, m3, 0xee + pshufd m3, m3, q3232 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r1+r3*0-8] @@ -1002,19 +1002,19 @@ cglobal pred8x8l_horizontal_8, 4,4,6 psrldq m2, 7 lea r1, [r0+r3*2] punpcklbw m2, m2 - pshufhw m0, m2, 0xff - pshufhw m1, m2, 0xaa + pshufhw m0, m2, q3333 + pshufhw m1, m2, q2222 lea r2, [r1+r3*2] - pshufhw m3, m2, 0x55 - pshufhw m4, m2, 0x00 + pshufhw m3, m2, q1111 + pshufhw m4, m2, q0000 movhps [r0+r3*1], m0 movhps [r0+r3*2], m1 movhps [r1+r3*1], m3 movhps [r1+r3*2], m4 - pshuflw m0, m2, 0xff - pshuflw m1, m2, 0xaa - pshuflw m3, m2, 0x55 - pshuflw m4, m2, 0x00 + pshuflw m0, m2, q3333 + pshuflw m1, m2, q2222 + pshuflw m3, m2, q1111 + pshuflw m4, m2, q0000 movq [r2+r3*1], m0 movq [r2+r3*2], m1 lea r0, [r2+r3*2] @@ -1094,8 +1094,8 @@ cglobal pred8x8l_down_left_8, 4,4,6 jnz .has_top_right .fix_tr_2: punpcklbw m3, m3 - pshufhw m1, m3, 0xff - pshufd m1, m1, 0xee + pshufhw m1, m3, q3333 + pshufd m1, m1, q3232 jmp .do_topright .has_top_right: movq m0, [r0+8] @@ -1164,7 +1164,7 @@ cglobal pred8x8l_down_right_8, 4,5,7 punpcklbw m3, m4 punpcklwd m3, m2 punpckhdq m3, m1 - pshufd m3, m3, 0xee + pshufd m3, m3, q3232 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r4] @@ -1270,7 +1270,7 @@ cglobal pred8x8l_vertical_right_8, 4,5,6 punpcklbw m3, m5 punpcklwd m3, m2 punpckhdq m3, m1 - pshufd m3, m3, 0xee + pshufd m3, m3, q3232 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r4] @@ -1383,8 +1383,8 @@ cglobal pred8x8l_vertical_left_8, 4,4,7 jnz .normal_top .fix_tr_2: punpcklbw m3, m3 - pshufd m3, m3, 0xEE - pshuflw m1, m3, 0xFF + pshufd m3, m3, q3232 + pshuflw m1, m3, q3333 jmp .do_topright .normal_top: movq m0, [r0+8] @@ -1451,7 +1451,7 @@ cglobal pred8x8l_horizontal_up_8, 4,4,6 punpcklbw m3, m4 punpcklwd m3, m2 punpckhdq m3, m1 - pshufd m3, m3, 0xee + pshufd m3, m3, q3232 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r1+r3*0-8] @@ -1469,7 +1469,7 @@ cglobal pred8x8l_horizontal_up_8, 4,4,6 punpcklqdq m2, m1 psrldq m2, 7 lea r1, [r0+r3*2] - pshuflw m1, m2, 00011011b + pshuflw m1, m2, q0123 psllq m2, 56 psllw m0, m1, 8 psrlw m1, 8 @@ -1483,11 +1483,11 @@ cglobal pred8x8l_horizontal_up_8, 4,4,6 pavgb m4, m1 psrlq m3, 16 punpcklbw m2, m2 - pshufd m2, m2, 0xee + pshufd m2, m2, q3232 por m3, m2 PRED4x4_LOWPASS m2, m3, m5, m1, m0 punpcklbw m4, m2 - pshufd m0, m4, 0xee + pshufd m0, m4, q3232 psrldq m5, m4, 2 psrldq m2, m4, 4 psrldq m3, m4, 6 @@ -1496,9 +1496,9 @@ cglobal pred8x8l_horizontal_up_8, 4,4,6 lea r0, [r2+r3*2] movq [r1+r3*1], m2 movq [r1+r3*2], m3 - pshuflw m1, m0, 11111001b - pshuflw m2, m0, 11111110b - pshuflw m3, m0, 11111111b + pshuflw m1, m0, q3321 + pshuflw m2, m0, q3332 + pshuflw m3, m0, q3333 movq [r2+r3*1], m0 movq [r2+r3*2], m1 movq [r0+r3*1], m2 @@ -1532,7 +1532,7 @@ cglobal pred8x8l_horizontal_down_8, 4,5,8 punpcklbw m3, m4 punpcklwd m3, m2 punpckhdq m3, m1 - pshufd m3, m3, 0xee + pshufd m3, m3, q3232 lea r0, [r0+r3*2] movq m0, [r0+r3*0-8] movq m1, [r4] @@ -1624,8 +1624,8 @@ cglobal pred8x8l_horizontal_down_8, 4,5,8 RET .fix_tr_2: punpcklbw m3, m3 - pshufd m3, m3, 0xEE - pshuflw m1, m3, 0xFF + pshufd m3, m3, q3232 + pshuflw m1, m3, q3333 jmp .do_topright %endmacro @@ -1824,10 +1824,10 @@ cglobal pred4x4_horizontal_up_8, 3,3,7 movd m2, [r1+r2*2-4] punpcklbw m1, m2 punpcklwd m0, m1 - pshufd m0, m0, 0xFF + pshufd m0, m0, q3333 mova m1, m0 punpcklbw m1, m1 - pshuflw m1, m1, 0xFF + pshuflw m1, m1, q3333 punpckldq m0, m1 mova m2, m0 mova m3, m0 @@ -1866,7 +1866,7 @@ cglobal pred4x4_horizontal_down_8, 3,3,6 punpcklbw m2, m3 ; l0 l1 punpcklwd m1, m2 ; l0 l1 l2 l3 punpckhdq m1, m0 ; t2 t1 t0 lt l0 l1 l2 l3 - pshufd m1, m1, 0xEE + pshufd m1, m1, q3232 psrlq m0, m1, 16 ; .. .. t2 t1 t0 lt l0 l1 psrlq m2, m1, 8 ; .. t2 t1 t0 lt l0 l1 l2 pavgb m5, m1, m2 @@ -1939,7 +1939,7 @@ cglobal pred4x4_down_right_8, 3,3,5 punpcklbw m2, m3 movd m3, [r0] punpcklwd m1, m2 - pshufd m1, m1, 0xEE + pshufd m1, m1, q3232 punpcklqdq m1, m3 psrldq m1, 5 movq m3, [r1+r2*1-8] -- 2.52.0 _______________________________________________ ffmpeg-devel mailing list -- [email protected] To unsubscribe send an email to [email protected]