On Tue, Jan 30, 2018 at 12:53 PM, Koval, Julia <julia.ko...@intel.com> wrote: > 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.
x86 parts are OK, generic parts need approval from global maintainer. Thanks, Uros. > 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