summaryrefslogtreecommitdiffstats
path: root/contrib/libvpx/A03-avx-512-detection3.patch
blob: 6dc09e3a8a0cb750ce0aedf4ca8e829756382ac5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
From ab71db65a5e8aeb107e0eb4d5fd3e03ec7452b86 Mon Sep 17 00:00:00 2001
From: Tom Finegan <tomfinegan@google.com>
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