[gcc(refs/vendors/ARM/heads/arm-struct-reorg-wip)] x86: Handle -mavx512vpopcntdq for -march=native
Tamar Christina
tnfchris@gcc.gnu.org
Fri Jul 17 15:03:34 GMT 2020
https://gcc.gnu.org/g:af216f799553b9306cb662fc303412a244215ec5
commit af216f799553b9306cb662fc303412a244215ec5
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri May 22 04:18:34 2020 -0700
x86: Handle -mavx512vpopcntdq for -march=native
Add -mavx512vpopcntdq for -march=native if AVX512VPOPCNTDQ is available.
PR target/95258
* config/i386/driver-i386.c (host_detect_local_cpu): Detect
AVX512VPOPCNTDQ.
(cherry picked from commit 808b611bfb4b05703ea174e50874c711dca44c98)
Diff:
---
gcc/ChangeLog | 6 ++++++
gcc/config/i386/driver-i386.c | 9 ++++++---
2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1e2f466b17d..d848d3f1cec 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2020-05-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/95258
+ * config/i386/driver-i386.c (host_detect_local_cpu): Detect
+ AVX512VPOPCNTDQ.
+
2020-05-22 Richard Biener <rguenther@suse.de>
PR lto/95190
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c
index 130e12c8868..9a378864a81 100644
--- a/gcc/config/i386/driver-i386.c
+++ b/gcc/config/i386/driver-i386.c
@@ -420,6 +420,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
unsigned int has_avx5124fmaps = 0, has_avx5124vnniw = 0;
unsigned int has_gfni = 0, has_avx512vbmi2 = 0;
unsigned int has_avx512bitalg = 0;
+ unsigned int has_avx512vpopcntdq = 0;
unsigned int has_shstk = 0;
unsigned int has_avx512vnni = 0, has_vaes = 0;
unsigned int has_vpclmulqdq = 0;
@@ -526,6 +527,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
has_vaes = ecx & bit_VAES;
has_vpclmulqdq = ecx & bit_VPCLMULQDQ;
has_avx512bitalg = ecx & bit_AVX512BITALG;
+ has_avx512vpopcntdq = ecx & bit_AVX512VPOPCNTDQ;
has_movdiri = ecx & bit_MOVDIRI;
has_movdir64b = ecx & bit_MOVDIR64B;
has_enqcmd = ecx & bit_ENQCMD;
@@ -1156,6 +1158,7 @@ const char *host_detect_local_cpu (int argc, const char **argv)
const char *vpclmulqdq = has_vpclmulqdq ? " -mvpclmulqdq" : " -mno-vpclmulqdq";
const char *avx512vp2intersect = has_avx512vp2intersect ? " -mavx512vp2intersect" : " -mno-avx512vp2intersect";
const char *avx512bitalg = has_avx512bitalg ? " -mavx512bitalg" : " -mno-avx512bitalg";
+ const char *avx512vpopcntdq = has_avx512vpopcntdq ? " -mavx512vpopcntdq" : " -mno-avx512vpopcntdq";
const char *movdiri = has_movdiri ? " -mmovdiri" : " -mno-movdiri";
const char *movdir64b = has_movdir64b ? " -mmovdir64b" : " -mno-movdir64b";
const char *enqcmd = has_enqcmd ? " -menqcmd" : " -mno-enqcmd";
@@ -1176,9 +1179,9 @@ const char *host_detect_local_cpu (int argc, const char **argv)
avx512ifma, avx512vbmi, avx5124fmaps, avx5124vnniw,
clwb, mwaitx, clzero, pku, rdpid, gfni, shstk,
avx512vbmi2, avx512vnni, vaes, vpclmulqdq,
- avx512bitalg, movdiri, movdir64b, waitpkg, cldemote,
- ptwrite, avx512bf16, enqcmd, avx512vp2intersect,
- NULL);
+ avx512bitalg, avx512vpopcntdq, movdiri, movdir64b,
+ waitpkg, cldemote, ptwrite, avx512bf16, enqcmd,
+ avx512vp2intersect, NULL);
}
done:
More information about the Gcc-cvs
mailing list