> > Why not -march=broadwell instead?
> >
> 
> If people don't mind long names, "broadwell" works for me.

Done.

> >     * config/i386/driver-i386.c (host_detect_local_cpu): Detect broadwell.

>                                ^Capital B.
Thanks, fixed.

> Just say Intel Broadwell CPU.
Done. Other options report instruction sets, so i left them.

OK for trunk?

2013-12-19  Tocar Ilya  <ilya.to...@intel.com> 

        * config.gcc: Support march=broadwell.
        * config/i386/driver-i386.c (host_detect_local_cpu): Detect Broadwell.
        * config/i386/i386.c (ix86_option_override_internal): Add broadwell.
        * doc/invoke.texi: Document march=broadwell.

---
 gcc/config.gcc                | 2 +-
 gcc/config/i386/driver-i386.c | 4 +++-
 gcc/config/i386/i386.c        | 7 +++++++
 gcc/doc/invoke.texi           | 5 +++++
 4 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/gcc/config.gcc b/gcc/config.gcc
index 8464d8f..c066e2a 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 | broadwell | atom | slm)
                                # OK
                                ;;
                        *)
diff --git a/gcc/config/i386/driver-i386.c b/gcc/config/i386/driver-i386.c
index 0b8af3f..26ae601 100644
--- a/gcc/config/i386/driver-i386.c
+++ b/gcc/config/i386/driver-i386.c
@@ -689,7 +689,9 @@ 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)
+               cpu = "broadwell";
+             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 f82d1a4..1710e8c 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -3131,6 +3131,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},
+      {"broadwell", 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 6e888bd..dcc1893 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -14663,6 +14663,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 broadwell
+Intel Broadwell 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, 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

Reply via email to