Commit 9a0e010a9c for ffmpeg
commit 9a0e010a9c6fdd29be953eef49fdf3634e004b2e
Author: Zhao Zhili <quinkblack@foxmail.com>
Date: Wed Sep 30 19:55:14 2026 +0800
aarch64/h26x: load a weighted qpel hv row with one instruction
The unweighted step macros in this file let a post-indexed load walk the
intermediate plane, while these weighted steps loaded a row and then advanced
sp with a separate add. Fold the advance into the load.
The step macro now names its row register without a width letter, which is
what the next change needs in order to drive these tails from calc_all.
diff --git a/libavcodec/aarch64/h26x/qpel_neon.S b/libavcodec/aarch64/h26x/qpel_neon.S
index d47974ba76..9c830a2d74 100644
--- a/libavcodec/aarch64/h26x/qpel_neon.S
+++ b/libavcodec/aarch64/h26x/qpel_neon.S
@@ -5377,8 +5377,7 @@ DISABLE_I8MM
.endm
.macro qpel_uni_w_hv4_end_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
- ldr \tmp, [sp]
- add sp, sp, x10
+ ld1 {\tmp\().4h}, [sp], x10
QPEL_FILTER_H v26, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
subs w22, w22, #1
QPEL_UNI_W_HV_4
@@ -5396,21 +5395,21 @@ DISABLE_I8MM
add sp, sp, x10, lsl #1
ldr \type\()22, [sp]
add sp, sp, x10
-1: \step \type\()23, v16, v17, v18, v19, v20, v21, v22, v23
+1: \step v23, v16, v17, v18, v19, v20, v21, v22, v23
b.eq 2f
- \step \type\()16, v17, v18, v19, v20, v21, v22, v23, v16
+ \step v16, v17, v18, v19, v20, v21, v22, v23, v16
b.eq 2f
- \step \type\()17, v18, v19, v20, v21, v22, v23, v16, v17
+ \step v17, v18, v19, v20, v21, v22, v23, v16, v17
b.eq 2f
- \step \type\()18, v19, v20, v21, v22, v23, v16, v17, v18
+ \step v18, v19, v20, v21, v22, v23, v16, v17, v18
b.eq 2f
- \step \type\()19, v20, v21, v22, v23, v16, v17, v18, v19
+ \step v19, v20, v21, v22, v23, v16, v17, v18, v19
b.eq 2f
- \step \type\()20, v21, v22, v23, v16, v17, v18, v19, v20
+ \step v20, v21, v22, v23, v16, v17, v18, v19, v20
b.eq 2f
- \step \type\()21, v22, v23, v16, v17, v18, v19, v20, v21
+ \step v21, v22, v23, v16, v17, v18, v19, v20, v21
b.eq 2f
- \step \type\()22, v23, v16, v17, v18, v19, v20, v21, v22
+ \step v22, v23, v16, v17, v18, v19, v20, v21, v22
b.hi 1b
2:
QPEL_UNI_W_HV_END
@@ -5440,8 +5439,7 @@ endfunc
.endm
.macro qpel_uni_w_hv6_end_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
- ldr \tmp, [sp]
- add sp, sp, x10
+ ld1 {\tmp\().8h}, [sp], x10
QPEL_FILTER_H v26, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
QPEL_FILTER_H2 v27, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
subs w22, w22, #1
@@ -5468,8 +5466,7 @@ endfunc
.endm
.macro qpel_uni_w_hv8_end_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
- ldr \tmp, [sp]
- add sp, sp, x10
+ ld1 {\tmp\().8h}, [sp], x10
QPEL_FILTER_H v26, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
QPEL_FILTER_H2 v27, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
subs w22, w22, #1