This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch][x86] -march=icelake
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "Koval, Julia" <julia dot koval at intel dot com>
- Cc: Jakub Jelinek <jakub at redhat dot com>, Richard Biener <rguenther at suse dot de>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Kirill Yukhin <kirill dot yukhin at gmail dot com>
- Date: Thu, 1 Feb 2018 08:49:09 +0100
- Subject: Re: [patch][x86] -march=icelake
- Authentication-results: sourceware.org; auth=none
- References: <4E89A029A0F8D443B436A5167BA3C53F8A461F0A@IRSMSX101.ger.corp.intel.com> <20171219134931.GP2353@tucnak> <4E89A029A0F8D443B436A5167BA3C53F8A48A4CD@IRSMSX101.ger.corp.intel.com> <20180122113610.GF2063@tucnak> <4E89A029A0F8D443B436A5167BA3C53F8A48A54B@IRSMSX101.ger.corp.intel.com> <CAFULd4Y_YNZwXVorCEXFippjzXN4igQZbAnyJK0CRXYJgh6raQ@mail.gmail.com> <20180124110548.GA2063@tucnak> <4E89A029A0F8D443B436A5167BA3C53F8A48C59D@IRSMSX101.ger.corp.intel.com> <alpine.LSU.2.20.1801241217290.32271@zhemvz.fhfr.qr> <4E89A029A0F8D443B436A5167BA3C53F8A49B930@IRSMSX101.ger.corp.intel.com> <20180130084719.GZ2063@tucnak> <4E89A029A0F8D443B436A5167BA3C53F8A49B9E4@IRSMSX101.ger.corp.intel.com>
On Tue, Jan 30, 2018 at 12:53 PM, Koval, Julia <julia.koval@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:jakub@redhat.com]
>> Sent: Tuesday, January 30, 2018 9:47 AM
>> To: Koval, Julia <julia.koval@intel.com>
>> Cc: Richard Biener <rguenther@suse.de>; Uros Bizjak <ubizjak@gmail.com>;
>> GCC Patches <gcc-patches@gcc.gnu.org>; Kirill Yukhin
>> <kirill.yukhin@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