[FFmpeg-devel] [PATCH 1/2] lavc/aarch64: move transpose_4x8H to neon.S
Mikhail Nitenko
mnitenko at gmail.com
Mon Aug 16 12:45:44 EEST 2021
transpose_4x8H was declared in vp9lpf_16bpp_neon, however this macro is
not unique to vp9 and could be used elsewhere.
Signed-off-by: Mikhail Nitenko <mnitenko at gmail.com>
---
libavcodec/aarch64/neon.S | 13 +++++++++++++
libavcodec/aarch64/vp9lpf_16bpp_neon.S | 12 ------------
2 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/libavcodec/aarch64/neon.S b/libavcodec/aarch64/neon.S
index 0fddbecae3..1ad32c359d 100644
--- a/libavcodec/aarch64/neon.S
+++ b/libavcodec/aarch64/neon.S
@@ -109,12 +109,25 @@
trn2 \r5\().4H, \r0\().4H, \r1\().4H
trn1 \r6\().4H, \r2\().4H, \r3\().4H
trn2 \r7\().4H, \r2\().4H, \r3\().4H
+
trn1 \r0\().2S, \r4\().2S, \r6\().2S
trn2 \r2\().2S, \r4\().2S, \r6\().2S
trn1 \r1\().2S, \r5\().2S, \r7\().2S
trn2 \r3\().2S, \r5\().2S, \r7\().2S
.endm
+.macro transpose_4x8H r0, r1, r2, r3, t4, t5, t6, t7
+ trn1 \t4\().8H, \r0\().8H, \r1\().8H
+ trn2 \t5\().8H, \r0\().8H, \r1\().8H
+ trn1 \t6\().8H, \r2\().8H, \r3\().8H
+ trn2 \t7\().8H, \r2\().8H, \r3\().8H
+
+ trn1 \r0\().4S, \t4\().4S, \t6\().4S
+ trn2 \r2\().4S, \t4\().4S, \t6\().4S
+ trn1 \r1\().4S, \t5\().4S, \t7\().4S
+ trn2 \r3\().4S, \t5\().4S, \t7\().4S
+.endm
+
.macro transpose_8x8H r0, r1, r2, r3, r4, r5, r6, r7, r8, r9
trn1 \r8\().8H, \r0\().8H, \r1\().8H
trn2 \r9\().8H, \r0\().8H, \r1\().8H
diff --git a/libavcodec/aarch64/vp9lpf_16bpp_neon.S b/libavcodec/aarch64/vp9lpf_16bpp_neon.S
index 9075f3d406..9869614a29 100644
--- a/libavcodec/aarch64/vp9lpf_16bpp_neon.S
+++ b/libavcodec/aarch64/vp9lpf_16bpp_neon.S
@@ -22,18 +22,6 @@
#include "neon.S"
-.macro transpose_4x8H r0, r1, r2, r3, t4, t5, t6, t7
- trn1 \t4\().8h, \r0\().8h, \r1\().8h
- trn2 \t5\().8h, \r0\().8h, \r1\().8h
- trn1 \t6\().8h, \r2\().8h, \r3\().8h
- trn2 \t7\().8h, \r2\().8h, \r3\().8h
-
- trn1 \r0\().4s, \t4\().4s, \t6\().4s
- trn2 \r2\().4s, \t4\().4s, \t6\().4s
- trn1 \r1\().4s, \t5\().4s, \t7\().4s
- trn2 \r3\().4s, \t5\().4s, \t7\().4s
-.endm
-
// The input to and output from this macro is in the registers v16-v31,
// and v0-v7 are used as scratch registers.
// p7 = v16 .. p3 = v20, p0 = v23, q0 = v24, q3 = v27, q7 = v31
--
2.32.0
More information about the ffmpeg-devel
mailing list