vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Tue Dec 11 19:51:58 2018 +0200| [edf6ff75449afff38cfe2cdd614cba1116551f42] | committer: Rémi Denis-Courmont
cpu: generic support for ARM SVE This adds generic support for the AArch64 Scalable Vector Extension. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=edf6ff75449afff38cfe2cdd614cba1116551f42 --- configure.ac | 23 +++++++++++++++++++++++ include/vlc_cpu.h | 8 ++++++++ 2 files changed, 31 insertions(+) diff --git a/configure.ac b/configure.ac index d34c2e60c8..cd71a4e5be 100644 --- a/configure.ac +++ b/configure.ac @@ -1506,6 +1506,29 @@ asm volatile("uhadd v0.8b, v0.8b, v1.8b":::"v0"); ]) AM_CONDITIONAL([HAVE_ARM64], [test "${ac_cv_arm64}" = "yes"]) +AC_ARG_ENABLE([sve], + AS_HELP_STRING([--disable-sve], + [disable ARM SVE optimizations (default auto)]),, [ + AS_IF([test "${host_cpu}" = "aarch64"], [enable_sve="yes"] ,[enable_sve="no"]) +]) +AS_IF([test "${enable_sve}" != "no"], [ + VLC_SAVE_FLAGS + CFLAGS="${CFLAGS} -march=armv8-a+sve" + AC_CACHE_CHECK([if $CCAS groks ARM SVE assembly], [ac_cv_arm_sve], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM(,[[ +asm volatile("ptrue p0.s" ::: "p0"); +]]) + ], [ + ac_cv_arm_sve="yes" + ], [ + ac_cv_arm_sve="no" + ]) + ]) + VLC_RESTORE_FLAGS +]) +AM_CONDITIONAL([HAVE_SVE], [test "${ac_cv_arm_sve}" = "yes"]) + AC_ARG_ENABLE([altivec], AS_HELP_STRING([--disable-altivec], diff --git a/include/vlc_cpu.h b/include/vlc_cpu.h index b2f0f4564e..b95f851fff 100644 --- a/include/vlc_cpu.h +++ b/include/vlc_cpu.h @@ -170,9 +170,17 @@ VLC_API unsigned vlc_CPU(void); # elif defined (__aarch64__) # define HAVE_FPU 1 +# define VLC_CPU_ARM_SVE 0x1 + // NEON is mandatory for general purpose ARMv8-a CPUs # define vlc_CPU_ARM64_NEON() (1) +# ifdef __ARM_FEATURE_SVE +# define vlc_CPU_ARM_SVE() (1) +# else +# define vlc_CPU_ARM_SVE() ((vlc_CPU() & VLC_CPU_ARM_SVE) != 0) +# endif + # elif defined (__sparc__) # define HAVE_FPU 1 _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
