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
4 4
5NEON-OBJS += aarch64/float_dsp_neon.o \5NEON-OBJS += aarch64/float_dsp_neon.o \
6 aarch64/tx_float_neon.o \6 aarch64/tx_float_neon.o \
7
8SVE-OBJS += aarch64/cpu_sve.o \
libavutil/aarch64/cpu.h+4−0
@@ -30,4 +30,8 @@ · 29 unmodified lines
30#define have_sve(flags) CPUEXT(flags, SVE)30#define have_sve(flags) CPUEXT(flags, SVE)
31#define have_sve2(flags) CPUEXT(flags, SVE2)31#define have_sve2(flags) CPUEXT(flags, SVE2)
32 32
33#if HAVE_SVE
34int ff_aarch64_sve_length(void);
35#endif
36
33#endif /* AVUTIL_AARCH64_CPU_H */37#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
24ENABLE_SVE
25
26function ff_aarch64_sve_length, export=1
27 cntb x0
28 ret
29endfunc
libavutil/tests/cpu.c+8−0
@@ -23,6 +23,10 @@ · 22 unmodified lines
23#include "libavutil/cpu.h"23#include "libavutil/cpu.h"
24#include "libavutil/avstring.h"24#include "libavutil/avstring.h"
25 25
26#if ARCH_AARCH64
27#include "libavutil/aarch64/cpu.h"
28#endif
29
26#if HAVE_UNISTD_H30#if HAVE_UNISTD_H
27#include <unistd.h>31#include <unistd.h>
28#endif32#endif
@@ -161,6 +165,10 @@ int main(int argc, char **argv) · 132 unmodified lines
161 print_cpu_flags(cpu_flags_raw, "raw");165 print_cpu_flags(cpu_flags_raw, "raw");
162 print_cpu_flags(cpu_flags_eff, "effective");166 print_cpu_flags(cpu_flags_eff, "effective");
163 printf("threads = %s (cpu_count = %d)\n", threads, cpu_count);167 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
164 172
165 return 0;173 return 0;
166}174}

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