[FFmpeg-devel] [PATCH] enable auto vectorization for gcc 7 and higher

Swinney, Jonathan jswinney at amazon.com
Wed Jul 27 20:34:52 EEST 2022


I recognize that this patch is going to be somewhat controversial. I'm submitting it mostly to see what the opinions are and evaluate options. I am working on improving performance for aarch64. On that architecture, there are fewer hand written assembly implementations of hot functions than there are for x86_64 and allowing gcc to auto-vectorize yields noticeable improvements.

Gcc vectorization has improved recently and it hasn't been evaluated on the mailing list for a few years. This is the latest discussion I found in my searches: http://ffmpeg.org/pipermail/ffmpeg-devel/2016-May/193977.html

If the community is not comfortable accepting a patch like this outright, would you be willing to accept a new option to the configure script, something like --enable-auto-vectorization?

Thanks!

Signed-off-by: Jonathan Swinney <jswinney at amazon.com>
---
 configure | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/configure b/configure
index 6629d14099..c63c9348ad 100755
--- a/configure
+++ b/configure
@@ -7173,7 +7173,9 @@ if enabled icc; then
             disable aligned_stack
     fi
 elif enabled gcc; then
-    check_optflags -fno-tree-vectorize
+    case $gcc_basever in
+        2|2.*|3.*|4.*|5.*|6.*) check_optflags -fno-tree-vectorize ;;
+    esac
     check_cflags -Werror=format-security
     check_cflags -Werror=implicit-function-declaration
     check_cflags -Werror=missing-prototypes
-- 
2.32.0




More information about the ffmpeg-devel mailing list