History

aarch64: Print the SVE vector length in libavutil/tests/cpu.c

This makes this aspect more visible in test logs.

Martin Storsjö committed 2 years ago

Commit b1ee2af1 parent e6eabb74 files · +43 −0Browse files

Unified · Split

4 files
  1. libavutil/aarch64/Makefile +2 −0
  2. libavutil/aarch64/cpu.h +4 −0
  3. libavutil/aarch64/cpu_sve.S +29 −0
  4. libavutil/tests/cpu.c +8 −0
libavutil/aarch64/Makefile+2−0
@@ -4,3 +4,5 @@ OBJS += aarch64/cpu.o \ · 3 unmodified lines
44
55 NEON-OBJS += aarch64/float_dsp_neon.o \
66 aarch64/tx_float_neon.o \
7+
8+SVE-OBJS += aarch64/cpu_sve.o \
libavutil/aarch64/cpu.h+4−0
@@ -30,4 +30,8 @@ · 29 unmodified lines
3030 #define have_sve(flags) CPUEXT(flags, SVE)
3131 #define have_sve2(flags) CPUEXT(flags, SVE2)
3232
33+#if HAVE_SVE
34+int ff_aarch64_sve_length(void);
35+#endif
36+
3337 #endif /* AVUTIL_AARCH64_CPU_H */
libavutil/aarch64/cpu_sve.S+29−0
@@ -0,0 +1,29 @@
1+/*
2+ * Copyright (c) 2023 Martin Storsjo
3+ *
4+ * This file is part of FFmpeg.
5+ *
6+ * FFmpeg is free software; you can redistribute it and/or
7+ * modify it under the terms of the GNU Lesser General Public
8+ * License as published by the Free Software Foundation; either
9+ * version 2.1 of the License, or (at your option) any later version.
10+ *
11+ * FFmpeg is distributed in the hope that it will be useful,
12+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14+ * Lesser General Public License for more details.
15+ *
16+ * You should have received a copy of the GNU Lesser General Public
17+ * License along with FFmpeg; if not, write to the Free Software
18+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19+ */
20+
21+#include "config.h"
22+#include "asm.S"
23+
24+ENABLE_SVE
25+
26+function ff_aarch64_sve_length, export=1
27+ cntb x0
28+ ret
29+endfunc
libavutil/tests/cpu.c+8−0
@@ -23,6 +23,10 @@ · 22 unmodified lines
2323 #include "libavutil/cpu.h"
2424 #include "libavutil/avstring.h"
2525
26+#if ARCH_AARCH64
27+#include "libavutil/aarch64/cpu.h"
28+#endif
29+
2630 #if HAVE_UNISTD_H
2731 #include <unistd.h>
2832 #endif
@@ -161,6 +165,10 @@ int main(int argc, char **argv) · 132 unmodified lines
161165 print_cpu_flags(cpu_flags_raw, "raw");
162166 print_cpu_flags(cpu_flags_eff, "effective");
163167 printf("threads = %s (cpu_count = %d)\n", threads, cpu_count);
168+#if ARCH_AARCH64
169+ if (cpu_flags_raw & AV_CPU_FLAG_SVE)
170+ printf("sve_vector_length = %d\n", 8 * ff_aarch64_sve_length());
171+#endif
164172
165173 return 0;
166174 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t