diff options
author | Bradley Sepos <[email protected]> | 2018-06-28 21:42:56 -0400 |
---|---|---|
committer | Bradley Sepos <[email protected]> | 2018-06-28 21:42:56 -0400 |
commit | ac390b630498163ff37bea491202c0872bb679ec (patch) | |
tree | 06cb062852f265c8457e25677503381f8eff8c2b | |
parent | f947915145ce0c905f6a1ef64274a0860f642445 (diff) |
contrib: Add additional AVX-512 compatibility patches to libvpx.
#1401.
-rw-r--r-- | contrib/libvpx/A02-avx-512-detection2.patch | 33 | ||||
-rw-r--r-- | contrib/libvpx/A03-avx-512-detection3.patch | 63 |
2 files changed, 96 insertions, 0 deletions
diff --git a/contrib/libvpx/A02-avx-512-detection2.patch b/contrib/libvpx/A02-avx-512-detection2.patch new file mode 100644 index 000000000..3eabe7771 --- /dev/null +++ b/contrib/libvpx/A02-avx-512-detection2.patch @@ -0,0 +1,33 @@ +From 68a9b143d02436729e024f081c8d77b42f2e9d7f Mon Sep 17 00:00:00 2001 +From: Tom Finegan <[email protected]> +Date: Wed, 13 Jun 2018 09:39:28 -0700 +Subject: [PATCH] Fix avx512 related MSVC build failure. + +Check GCC specific AVX512 flags only when GCC is enabled. + +Change-Id: I15dc2a0dbf8bce37f4364fedfd34a0a34882104b +--- + build/make/configure.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/build/make/configure.sh b/build/make/configure.sh +index e0e9fd1a73..37b410edb6 100644 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -1335,13 +1335,15 @@ EOF + check_gcc_machine_options $ext avx512f avx512cd avx512bw avx512dq avx512vl + + # Confirm that the compiler really supports avx512. +- check_cc -mavx512f <<EOF || RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx512 " && soft_disable avx512 ++ if enabled gcc; then ++ check_cc -mavx512f <<EOF || RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx512 " && soft_disable avx512 + #include <immintrin.h> + void f(void) { + __m512i x = _mm512_set1_epi16(0); + (void)x; + } + EOF ++ fi + else + # use the shortened version for the flag: sse4_1 -> sse4 + check_gcc_machine_option ${ext%_*} $ext diff --git a/contrib/libvpx/A03-avx-512-detection3.patch b/contrib/libvpx/A03-avx-512-detection3.patch new file mode 100644 index 000000000..6dc09e3a8 --- /dev/null +++ b/contrib/libvpx/A03-avx-512-detection3.patch @@ -0,0 +1,63 @@ +From ab71db65a5e8aeb107e0eb4d5fd3e03ec7452b86 Mon Sep 17 00:00:00 2001 +From: Tom Finegan <[email protected]> +Date: Fri, 15 Jun 2018 10:58:11 -0700 +Subject: [PATCH] Clean up avx512 compiler support test. + +Moves the check into a function, check_gcc_avx512_compiles, +that behaves somewhat similarly to check_gcc_machine_options. + +Change-Id: I2bef3ddd98e636eef12d9d5e548c43282fac7826 +--- + build/make/configure.sh | 32 +++++++++++++++++++++----------- + 1 file changed, 21 insertions(+), 11 deletions(-) + +diff --git a/build/make/configure.sh b/build/make/configure.sh +index 37b410edb6..d2c6b26fa1 100644 +--- a/build/make/configure.sh ++++ b/build/make/configure.sh +@@ -426,6 +426,26 @@ check_gcc_machine_options() { + fi + } + ++check_gcc_avx512_compiles() { ++ if disabled gcc; then ++ return ++ fi ++ ++ check_cc -mavx512f <<EOF ++#include <immintrin.h> ++void f(void) { ++ __m512i x = _mm512_set1_epi16(0); ++ (void)x; ++} ++EOF ++ compile_result=$? ++ if [ ${compile_result} -ne 0 ]; then ++ log_echo " disabling avx512: not supported by compiler" ++ disable_feature avx512 ++ RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx512 " ++ fi ++} ++ + write_common_config_banner() { + print_webm_license config.mk "##" "" + echo '# This file automatically generated by configure. Do not edit!' >> config.mk +@@ -1333,17 +1353,7 @@ EOF + else + if [ "$ext" = "avx512" ]; then + check_gcc_machine_options $ext avx512f avx512cd avx512bw avx512dq avx512vl +- +- # Confirm that the compiler really supports avx512. +- if enabled gcc; then +- check_cc -mavx512f <<EOF || RTCD_OPTIONS="${RTCD_OPTIONS}--disable-avx512 " && soft_disable avx512 +-#include <immintrin.h> +-void f(void) { +- __m512i x = _mm512_set1_epi16(0); +- (void)x; +-} +-EOF +- fi ++ check_gcc_avx512_compiles + else + # use the shortened version for the flag: sse4_1 -> sse4 + check_gcc_machine_option ${ext%_*} $ext |