Commit c4fd2d3e8b for ffmpeg
commit c4fd2d3e8b42d5a0a02eb5aea073865b494eb05c
Author: Zhao Zhili <quinkblack@foxmail.com>
Date: Tue Sep 29 13:26:33 2026 +0800
aarch64/h26x: drop the dead qpel vertical accumulator zeroing
calc_qpelb and calc_qpelb2 open with a widening multiply, which writes its
destination instead of accumulating into it, so the movi that cleared the
accumulator ahead of them had no effect. The plain vertical steps at widths
4 to 64 and the bi steps at widths 4 to 32 carried it.
diff --git a/libavcodec/aarch64/h26x/qpel_neon.S b/libavcodec/aarch64/h26x/qpel_neon.S
index 25925665dc..dcac32abbe 100644
--- a/libavcodec/aarch64/h26x/qpel_neon.S
+++ b/libavcodec/aarch64/h26x/qpel_neon.S
@@ -947,7 +947,6 @@ put_hevc qpel_bi
.macro qpel_v4_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().s}[0], [x1], x2
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
st1 {v24.4h}, [x0], x9
subs w3, w3, #1
@@ -975,7 +974,6 @@ endfunc
.macro qpel_v6_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().8b}, [x1], x2
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
st1 {v24.4h}, [x0], #8
st1 {v24.s}[2], [x0], x9
@@ -1004,7 +1002,6 @@ endfunc
.macro qpel_v8_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().8b}, [x1], x2
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
st1 {v24.8h}, [x0], x9
subs w3, w3, #1
@@ -1032,8 +1029,6 @@ endfunc
.macro qpel_v12_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().16b}, [x1], x2
- movi v24.8h, #0
- movi v25.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v25, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
st1 {v24.8h}, [x0], #16
@@ -1063,8 +1058,6 @@ endfunc
.macro qpel_v16_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().16b}, [x1], x2
- movi v24.8h, #0
- movi v25.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v25, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
subs w3, w3, #1
@@ -1093,9 +1086,6 @@ endfunc
.macro qpel_v24_step tmp0, tmp1, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15
ld1 {\tmp0\().16b, \tmp1\().16b}, [x1], x2
- movi v8.8h, #0
- movi v9.8h, #0
- movi v10.8h, #0
calc_qpelb v8, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v9, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb v10, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15
@@ -1127,10 +1117,6 @@ endfunc
.macro qpel_v32_step tmp0, tmp1, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15
ld1 {\tmp0\().16b, \tmp1\().16b}, [x1], x2
- movi v8.8h, #0
- movi v9.8h, #0
- movi v10.8h, #0
- movi v11.8h, #0
calc_qpelb v8, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v9, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb v10, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15
@@ -1178,10 +1164,6 @@ endfunc
.macro qpel_v64_step tmp0, tmp1, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15
ld1 {\tmp0\().16b, \tmp1\().16b}, [x8], x2
- movi v8.8h, #0
- movi v9.8h, #0
- movi v10.8h, #0
- movi v11.8h, #0
calc_qpelb v8, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v9, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb v10, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15
@@ -1305,7 +1287,6 @@ endfunc
.macro qpel_bi_v4_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().s}[0], [x2], x3
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
ld1 {v25.4h}, [x4], x12 // src2
sqadd v24.8h, v24.8h, v25.8h
@@ -1332,7 +1313,6 @@ endfunc
.macro qpel_bi_v6_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().8b}, [x2], x3
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
ld1 {v25.8h}, [x4], x12 // src2
sqadd v24.8h, v24.8h, v25.8h
@@ -1361,7 +1341,6 @@ endfunc
.macro qpel_bi_v8_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().8b}, [x2], x3
- movi v24.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
ld1 {v25.8h}, [x4], x12 // src2
sqadd v24.8h, v24.8h, v25.8h
@@ -1388,8 +1367,6 @@ endfunc
.macro qpel_bi_v12_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().16b}, [x2], x3
- movi v24.8h, #0
- movi v25.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v25, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
ld1 {v26.8h, v27.8h}, [x4], x12 // src2
@@ -1421,8 +1398,6 @@ endfunc
.macro qpel_bi_v16_step tmp, src0, src1, src2, src3, src4, src5, src6, src7
ld1 {\tmp\().16b}, [x2], x3
- movi v24.8h, #0
- movi v25.8h, #0
calc_qpelb v24, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v25, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
ld1 {v26.8h, v27.8h}, [x4], x12 // src2
@@ -1473,10 +1448,6 @@ endfunc
.macro qpel_bi_v32_step tmp0, tmp1, src0, src1, src2, src3, src4, src5, src6, src7, src8, src9, src10, src11, src12, src13, src14, src15
ld1 {\tmp0\().8h, \tmp1\().8h}, [x8], x3
- movi v8.8h, #0
- movi v9.8h, #0
- movi v10.8h, #0
- movi v11.8h, #0
calc_qpelb v8, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb2 v9, \src0, \src1, \src2, \src3, \src4, \src5, \src6, \src7
calc_qpelb v10, \src8, \src9, \src10, \src11, \src12, \src13, \src14, \src15