Commit dd04dc6fc6 for ffmpeg
commit dd04dc6fc62bbd036438c5a010b062bba2a3a0fd
Author: Zhao Zhili <quinkblack@foxmail.com>
Date: Wed Sep 30 19:23:54 2026 +0800
aarch64/h26x: share the weighted qpel hv vertical tail up to 8 wide
No functional changes.
diff --git a/libavcodec/aarch64/h26x/qpel_neon.S b/libavcodec/aarch64/h26x/qpel_neon.S
index e9cf78afcf..d47974ba76 100644
--- a/libavcodec/aarch64/h26x/qpel_neon.S
+++ b/libavcodec/aarch64/h26x/qpel_neon.S
@@ -5384,46 +5384,41 @@ DISABLE_I8MM
QPEL_UNI_W_HV_4
.endm
-function hevc_put_hevc_qpel_uni_w_hv4_8_end_neon
- ldr d16, [sp]
- ldr d17, [sp, x10]
+.macro qpel_uni_w_hv_tail type, step
+ ldr \type\()16, [sp]
+ ldr \type\()17, [sp, x10]
add sp, sp, x10, lsl #1
- ldr d18, [sp]
- ldr d19, [sp, x10]
+ ldr \type\()18, [sp]
+ ldr \type\()19, [sp, x10]
add sp, sp, x10, lsl #1
- ldr d20, [sp]
- ldr d21, [sp, x10]
+ ldr \type\()20, [sp]
+ ldr \type\()21, [sp, x10]
add sp, sp, x10, lsl #1
- ldr d22, [sp]
+ ldr \type\()22, [sp]
add sp, sp, x10
-1:
- qpel_uni_w_hv4_end_step d23, v16, v17, v18, v19, v20, v21, v22, v23
+1: \step \type\()23, v16, v17, v18, v19, v20, v21, v22, v23
b.eq 2f
-
- qpel_uni_w_hv4_end_step d16, v17, v18, v19, v20, v21, v22, v23, v16
+ \step \type\()16, v17, v18, v19, v20, v21, v22, v23, v16
b.eq 2f
-
- qpel_uni_w_hv4_end_step d17, v18, v19, v20, v21, v22, v23, v16, v17
+ \step \type\()17, v18, v19, v20, v21, v22, v23, v16, v17
b.eq 2f
-
- qpel_uni_w_hv4_end_step d18, v19, v20, v21, v22, v23, v16, v17, v18
+ \step \type\()18, v19, v20, v21, v22, v23, v16, v17, v18
b.eq 2f
-
- qpel_uni_w_hv4_end_step d19, v20, v21, v22, v23, v16, v17, v18, v19
+ \step \type\()19, v20, v21, v22, v23, v16, v17, v18, v19
b.eq 2f
-
- qpel_uni_w_hv4_end_step d20, v21, v22, v23, v16, v17, v18, v19, v20
+ \step \type\()20, v21, v22, v23, v16, v17, v18, v19, v20
b.eq 2f
-
- qpel_uni_w_hv4_end_step d21, v22, v23, v16, v17, v18, v19, v20, v21
+ \step \type\()21, v22, v23, v16, v17, v18, v19, v20, v21
b.eq 2f
-
- qpel_uni_w_hv4_end_step d22, v23, v16, v17, v18, v19, v20, v21, v22
+ \step \type\()22, v23, v16, v17, v18, v19, v20, v21, v22
b.hi 1b
-
2:
QPEL_UNI_W_HV_END
ret
+.endm
+
+function hevc_put_hevc_qpel_uni_w_hv4_8_end_neon
+ qpel_uni_w_hv_tail d, qpel_uni_w_hv4_end_step
endfunc
// hv6: process 6 pixels (4 + 2), use 8-element loads/stores
@@ -5454,45 +5449,7 @@ endfunc
.endm
function hevc_put_hevc_qpel_uni_w_hv6_8_end_neon
- ldr q16, [sp]
- ldr q17, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q18, [sp]
- ldr q19, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q20, [sp]
- ldr q21, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q22, [sp]
- add sp, sp, x10
-1:
- qpel_uni_w_hv6_end_step q23, v16, v17, v18, v19, v20, v21, v22, v23
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q16, v17, v18, v19, v20, v21, v22, v23, v16
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q17, v18, v19, v20, v21, v22, v23, v16, v17
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q18, v19, v20, v21, v22, v23, v16, v17, v18
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q19, v20, v21, v22, v23, v16, v17, v18, v19
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q20, v21, v22, v23, v16, v17, v18, v19, v20
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q21, v22, v23, v16, v17, v18, v19, v20, v21
- b.eq 2f
-
- qpel_uni_w_hv6_end_step q22, v23, v16, v17, v18, v19, v20, v21, v22
- b.hi 1b
-
-2:
- QPEL_UNI_W_HV_END
- ret
+ qpel_uni_w_hv_tail q, qpel_uni_w_hv6_end_step
endfunc
.macro QPEL_UNI_W_HV_8
@@ -5520,45 +5477,7 @@ endfunc
.endm
function hevc_put_hevc_qpel_uni_w_hv8_8_end_neon
- ldr q16, [sp]
- ldr q17, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q18, [sp]
- ldr q19, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q20, [sp]
- ldr q21, [sp, x10]
- add sp, sp, x10, lsl #1
- ldr q22, [sp]
- add sp, sp, x10
-1:
- qpel_uni_w_hv8_end_step q23, v16, v17, v18, v19, v20, v21, v22, v23
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q16, v17, v18, v19, v20, v21, v22, v23, v16
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q17, v18, v19, v20, v21, v22, v23, v16, v17
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q18, v19, v20, v21, v22, v23, v16, v17, v18
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q19, v20, v21, v22, v23, v16, v17, v18, v19
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q20, v21, v22, v23, v16, v17, v18, v19, v20
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q21, v22, v23, v16, v17, v18, v19, v20, v21
- b.eq 2f
-
- qpel_uni_w_hv8_end_step q22, v23, v16, v17, v18, v19, v20, v21, v22
- b.hi 1b
-
-2:
- QPEL_UNI_W_HV_END
- ret
+ qpel_uni_w_hv_tail q, qpel_uni_w_hv8_end_step
endfunc
// hv12: process 12 pixels = 8 + 4