Thank you for your comments, fixed them and rebased Ice Lake patch on top of it. Ok for trunk?
Bitmask patch changelog: gcc/c-family/ * c-common.h (omp_clause_mask): Move to wide_int_bitmask.h. gcc/ * config/i386/i386.c (ix86_option_override_internal): Change flags type to wide_int_bitmask. * wide-int-bitmask.h: New. Icelake patch changelog: gcc/ * config.gcc: Add -march=icelake. * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. * config/i386/i386.c (processor_costs): Add m_ICELAKE. (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. (processor_target_table): Add icelake. (ix86_option_override_internal): Handle new PTAs. (get_builtin_code_for_version): Handle icelake. (M_INTEL_COREI7_ICELAKE): New. (fold_builtin_cpu): Handle icelake. * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. * doc/invoke.texi: Add -march=icelake. gcc/testsuite/ * gcc.target/i386/funcspec-56.inc: Handle new march. * g++.dg/ext/mv16.C: Ditto. libgcc/ * config/i386/cpuinfo.h (processor_subtypes): Add INTEL_COREI7_ICELAKE. Thanks, Julia > -----Original Message----- > From: Jakub Jelinek [mailto:ja...@redhat.com] > Sent: Tuesday, January 30, 2018 9:47 AM > To: Koval, Julia <julia.ko...@intel.com> > Cc: Richard Biener <rguent...@suse.de>; Uros Bizjak <ubiz...@gmail.com>; > GCC Patches <gcc-patches@gcc.gnu.org>; Kirill Yukhin > <kirill.yuk...@gmail.com> > Subject: Re: [patch][x86] -march=icelake > > On Tue, Jan 30, 2018 at 08:35:38AM +0000, Koval, Julia wrote: > > * c-common.h (omp_clause_mask): Move to wide_int_bitmask.h > > Missing dot ad the end. > > + wide_int_bitmask PTA_3DNOW (HOST_WIDE_INT_1U << 0); > > Can't all these be const wide_int_bitmask instead of just > wide_int_bitmask? > > ... > + > + wide_int_bitmask PTA_CORE2 = PTA_64BIT | PTA_MMX | PTA_SSE | > PTA_SSE2 > + | PTA_SSE3 | PTA_SSSE3 | PTA_CX16 | PTA_FXSR; > + wide_int_bitmask PTA_NEHALEM = PTA_CORE2 | PTA_SSE4_1 | PTA_SSE4_2 > + | PTA_POPCNT; > + wide_int_bitmask PTA_WESTMERE = PTA_NEHALEM | PTA_AES | > PTA_PCLMUL; > + wide_int_bitmask PTA_SANDYBRIDGE = PTA_WESTMERE | PTA_AVX | > PTA_XSAVE > + | PTA_XSAVEOPT; > + wide_int_bitmask PTA_IVYBRIDGE = PTA_SANDYBRIDGE | PTA_FSGSBASE | > PTA_RDRND > + | PTA_F16C; > + wide_int_bitmask PTA_HASWELL = PTA_IVYBRIDGE | PTA_AVX2 | PTA_BMI | > PTA_BMI2 > + | PTA_LZCNT | PTA_FMA | PTA_MOVBE | PTA_HLE; > + wide_int_bitmask PTA_BROADWELL = PTA_HASWELL | PTA_ADX | > PTA_PRFCHW > + | PTA_RDSEED; > + wide_int_bitmask PTA_SKYLAKE = PTA_BROADWELL | PTA_CLFLUSHOPT | > PTA_XSAVEC > + | PTA_XSAVES; > + wide_int_bitmask PTA_SKYLAKE_AVX512 = PTA_SKYLAKE | PTA_AVX512F | > PTA_AVX512CD > + | PTA_AVX512VL | PTA_AVX512BW | PTA_AVX512DQ | PTA_PKU | > PTA_CLWB; > + wide_int_bitmask PTA_CANNONLAKE = PTA_SKYLAKE_AVX512 | > PTA_AVX512VBMI > + | PTA_AVX512IFMA | PTA_SHA; > + wide_int_bitmask PTA_KNL = PTA_BROADWELL | PTA_AVX512PF | > PTA_AVX512ER > + | PTA_AVX512F | PTA_AVX512CD; > + wide_int_bitmask PTA_BONNELL = PTA_CORE2 | PTA_MOVBE; > + wide_int_bitmask PTA_SILVERMONT = PTA_WESTMERE | PTA_MOVBE | > PTA_RDRND; > + wide_int_bitmask PTA_KNM = PTA_KNL | PTA_AVX5124VNNIW | > PTA_AVX5124FMAPS > + | PTA_AVX512VPOPCNTDQ; > > Likewise for these. > > --- /dev/null > +++ b/gcc/wide-int-bitmask.h > @@ -0,0 +1,145 @@ > +/* Operation with 128 bit bitmask. > + Copyright (C) 1987-2018 Free Software Foundation, Inc. > > Please use 2013-2018 instead, all the omp_clause_mask stuff was > introduced in 2013. > > + > +#ifndef GCC_BIT_MASK_H > +#define GCC_BIT_MASK_H > > The macro hasn't been renamed for the header file rename. > > + > +#endif /* ! GCC_BIT_MASK_H */ > > Here as well. Otherwise LGTM. > > Jakub
0001-bitmask.patch
Description: 0001-bitmask.patch
0002-icelake_rebased.patch
Description: 0002-icelake_rebased.patch