On Thu, Dec 19, 2013 at 5:11 AM, Ilya Tocar <tocarip.in...@gmail.com> wrote: > Hi, > This patch adds march for broadwell cpu. > -march=bdw is the same as -march=core-avx2 but with support for rdseed, > adcx, prefetchw. OK for trunk? > > Thanks. > > 2013-12-19 Tocar Ilya <ilya.to...@intel.com> > > * config.gcc: Support march=bdw. > * config/i386/driver-i386.c (host_detect_local_cpu): Detect broadwell.
^Capital B. > * config/i386/i386.c (ix86_option_override_internal): Add bdw. > * doc/invoke.texi: Document march=bdw. > > --- > gcc/config.gcc | 2 +- > gcc/config/i386/driver-i386.c | 5 ++++- > gcc/config/i386/i386.c | 7 +++++++ > gcc/doc/invoke.texi | 5 +++++ > 4 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/gcc/config.gcc b/gcc/config.gcc > index 8464d8f..1edbd4d 100644 > --- a/gcc/config.gcc > +++ b/gcc/config.gcc > @@ -3676,7 +3676,7 @@ case "${target}" in > | opteron-sse3 | athlon-fx | bdver4 | bdver3 | bdver2 > \ > | bdver1 | btver2 | btver1 | amdfam10 | barcelona \ > | nocona | core2 | corei7 | corei7-avx | core-avx-i \ > - | core-avx2 | atom | slm) > + | core-avx2 | bdw | atom | slm) > # OK > ;; > *) > diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c > index 0b8af3f..6a5c654 100644 > --- a/gcc/config/i386/driver-i386.c > +++ b/gcc/config/i386/driver-i386.c > @@ -689,7 +689,10 @@ const char *host_detect_local_cpu (int argc, const char > **argv) > if (arch) > { > /* This is unknown family 0x6 CPU. */ > - if (has_avx2) > + if (has_adx) > + /* Assume Broadwell. */ > + cpu = "bdw"; > + else if (has_avx2) > /* Assume Haswell. */ > cpu = "core-avx2"; > else if (has_avx) > diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c > index cdd63e5..5f2f13b 100644 > --- a/gcc/config/i386/i386.c > +++ b/gcc/config/i386/i386.c > @@ -3136,6 +3136,13 @@ ix86_option_override_internal (bool main_args_p, > | PTA_RDRND | PTA_F16C | PTA_BMI | PTA_BMI2 | PTA_LZCNT > | PTA_FMA | PTA_MOVBE | PTA_RTM | PTA_HLE | PTA_FXSR | PTA_XSAVE > | PTA_XSAVEOPT}, > + {"bdw", PROCESSOR_HASWELL, CPU_COREI7, > + PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 > + | PTA_SSSE3 | PTA_SSE4_1 | PTA_SSE4_2 | PTA_AVX | PTA_AVX2 > + | PTA_CX16 | PTA_POPCNT | PTA_AES | PTA_PCLMUL | PTA_FSGSBASE > + | PTA_RDRND | PTA_F16C | PTA_BMI | PTA_BMI2 | PTA_LZCNT > + | PTA_FMA | PTA_MOVBE | PTA_RTM | PTA_HLE | PTA_FXSR | PTA_XSAVE > + | PTA_XSAVEOPT | PTA_ADX | PTA_PRFCHW | PTA_RDSEED}, > {"atom", PROCESSOR_ATOM, CPU_ATOM, > PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 > | PTA_SSSE3 | PTA_CX16 | PTA_MOVBE | PTA_FXSR}, > diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi > index 782a472..0ba03e9 100644 > --- a/gcc/doc/invoke.texi > +++ b/gcc/doc/invoke.texi > @@ -14647,6 +14647,11 @@ Intel Core CPU with 64-bit extensions, MOVBE, MMX, > SSE, SSE2, SSE3, SSSE3, > SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, > BMI, BMI2 and F16C instruction set support. > > +@item bdw > +Intel Core CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3, SSSE3, Just say Intel Broadwell CPU. > +SSE4.1, SSE4.2, POPCNT, AVX, AVX2, AES, PCLMUL, FSGSBASE, RDRND, FMA, > +BMI, BMI2, F16C, RDSEED, ADCX, PREFETCHW instruction set support. > + > @item atom > Intel Atom CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3 > instruction set support. > -- > 1.8.3.1 > -- H.J.