diff mbox

[v3,3/3] configure: add options to config avx2

Message ID 1449576535-3369-4-git-send-email-liang.z.li@intel.com
State New
Headers show

Commit Message

Li, Liang Z Dec. 8, 2015, 12:08 p.m. UTC
Add the '--enable-avx2' & '--disable-avx2' option so as to config
the AVX2 instruction optimization.

If '--disable-avx2' is not set, configure will detect if the compiler
can support AVX2 option, if yes, AVX2 optimization is eabled, else
disabled.

Signed-off-by: Liang Li <liang.z.li@intel.com>
---
 configure | 30 ++++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

Comments

Peter Maydell Dec. 8, 2015, 12:54 p.m. UTC | #1
On 8 December 2015 at 12:08, Liang Li <liang.z.li@intel.com> wrote:
> Add the '--enable-avx2' & '--disable-avx2' option so as to config
> the AVX2 instruction optimization.
>
> If '--disable-avx2' is not set, configure will detect if the compiler
> can support AVX2 option, if yes, AVX2 optimization is eabled, else
> disabled.

Is the configure option necessary? For other things like
this (eg our use of SSE2 or Altivec) we just go ahead and
use the feature if the compiler supports it.

When would somebody building QEMU want to disable this option?

thanks
-- PMM
Li, Liang Z Dec. 8, 2015, 2:18 p.m. UTC | #2
> On 8 December 2015 at 12:08, Liang Li <liang.z.li@intel.com> wrote:

> > Add the '--enable-avx2' & '--disable-avx2' option so as to config the

> > AVX2 instruction optimization.

> >

> > If '--disable-avx2' is not set, configure will detect if the compiler

> > can support AVX2 option, if yes, AVX2 optimization is eabled, else

> > disabled.

> 

> Is the configure option necessary? For other things like this (eg our use of

> SSE2 or Altivec) we just go ahead and use the feature if the compiler

> supports it.

> 


It seems unnecessary.

> When would somebody building QEMU want to disable this option?

> 

> thanks

> -- PMM


The v1 of this patch had the  '--enable-avx2' & '--disable-avx2'  options because this version did not
 support ifunc, and I left them here in the following version ...
I will remove them if they are unnecessary.  

Thanks for your comments.

Liang
diff mbox

Patch

diff --git a/configure b/configure
index 394db3b..94e45fa 100755
--- a/configure
+++ b/configure
@@ -311,6 +311,7 @@  libusb=""
 usb_redir=""
 opengl=""
 ifunc=""
+avx2=""
 zlib="yes"
 lzo=""
 snappy=""
@@ -1063,6 +1064,10 @@  for opt do
   ;;
   --enable-usb-redir) usb_redir="yes"
   ;;
+  --disable-avx2) avx2="no"
+  ;;
+  --enable-avx2) avx2="yes"
+  ;;
   --disable-zlib-test) zlib="no"
   ;;
   --disable-lzo) lzo="no"
@@ -1378,6 +1383,7 @@  disabled with --disable-FEATURE, default is enabled if available:
   smartcard       smartcard support (libcacard)
   libusb          libusb (for usb passthrough)
   usb-redir       usb network redirection support
+  avx2            support of avx2 instruction
   lzo             support of lzo compression library
   snappy          support of snappy compression library
   bzip2           support of bzip2 compression library
@@ -1841,6 +1847,23 @@  else
     ifunc="no"
 fi
 
+########################################
+# avx2 check
+
+if test "$avx2" != "no" ; then
+    cat > $TMPC << EOF
+int main(void) { return 0; }
+EOF
+    if compile_prog "" "-mavx2" ; then
+        avx2="yes"
+    else
+        if test "$avx2" = "yes" ; then
+            feature_not_found "avx2" "Your compiler don't support avx2"
+        fi
+        avx2="no"
+    fi
+fi
+
 #########################################
 # zlib check
 
@@ -4853,6 +4876,7 @@  echo "TPM passthrough   $tpm_passthrough"
 echo "QOM debugging     $qom_cast_debug"
 echo "vhdx              $vhdx"
 echo "ifunc support     $ifunc"
+echo "avx2 support      $avx2"
 echo "lzo support       $lzo"
 echo "snappy support    $snappy"
 echo "bzip2 support     $bzip2"
@@ -5241,6 +5265,12 @@  if test "$ifunc" = "yes" ; then
   echo "CONFIG_IFUNC=y" >> $config_host_mak
 fi
 
+if test "$avx2" = "yes" ; then
+  avx2_cflags=" -mavx2"
+  echo "AVX2_CFLAGS=$avx2_cflags" >> $config_host_mak
+  echo "CONFIG_AVX2=y" >> $config_host_mak
+fi
+
 if test "$lzo" = "yes" ; then
   echo "CONFIG_LZO=y" >> $config_host_mak
 fi