driver-i386.c (host_detect_local_cpu): Add support for skylake.
authorYuri Rumyantsev <ysrumyan@gmail.com>
Fri, 14 Aug 2015 09:11:01 +0000 (09:11 +0000)
committerIlya Enkovich <ienkovich@gcc.gnu.org>
Fri, 14 Aug 2015 09:11:01 +0000 (09:11 +0000)
gcc/

* config/i386/driver-i386.c (host_detect_local_cpu): Add support
for skylake.
* config/i386/i386.c (PTA_SKYLAKE): New macros.
(processor_alias_table): Add skylake description.
(enum processor_model): Add skylake processor.
(arch_names_table): Add skylake record.
* doc/invoke.texi: Add skylake item.

gcc/testsuite/

* gcc.target/i386/builtin_target.c: Add skylake check.

libgcc/

* config/i386/cpuinfo.c (enum processor_subtypes): Add skylake.
(get_intel_cpu): Likewise.

From-SVN: r226884

gcc/ChangeLog
gcc/config/i386/driver-i386.c
gcc/config/i386/i386.c
gcc/doc/invoke.texi
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/builtin_target.c
libgcc/ChangeLog
libgcc/config/i386/cpuinfo.c

index bdaebccbee88b781a1f6671b9f1ac389a41bb4fa..e404e6655e316a0c3eb5b770b5ea5a77a3a96cd1 100644 (file)
@@ -1,3 +1,13 @@
+2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * config/i386/driver-i386.c (host_detect_local_cpu): Add support
+       for skylake.
+       * config/i386/i386.c (PTA_SKYLAKE): New macros.
+       (processor_alias_table): Add skylake description.
+       (enum processor_model): Add skylake processor.
+       (arch_names_table): Add skylake record.
+       * doc/invoke.texi: Add skylake item.
+
 2015-08-13  Andrew MacLeod  <amacleod@redhat.com>
 
        * ira-int.h: Include recog.h.
index bc5239ea363dd83cddf3ed3d99486b7b159cce2f..ec4cbec526bbf82be0b9ec12149d214533c74853 100644 (file)
@@ -755,6 +755,11 @@ const char *host_detect_local_cpu (int argc, const char **argv)
          /* Broadwell.  */
          cpu = "broadwell";
          break;
+       case 0x4e:
+       case 0x5e:
+         /* Skylake.  */
+         cpu = "skylake";
+         break;
        case 0x57:
          /* Knights Landing.  */
          cpu = "knl";
index caec21880c3f7ae7cb3838bd1bdc00718635ad13..4a0986c7f88205e16012502cdc0b2a5b3b721ccd 100644 (file)
@@ -3285,6 +3285,8 @@ ix86_option_override_internal (bool main_args_p,
    | PTA_FMA | PTA_MOVBE | PTA_HLE)
 #define PTA_BROADWELL \
   (PTA_HASWELL | PTA_ADX | PTA_PRFCHW | PTA_RDSEED)
+#define PTA_SKYLAKE \
+  (PTA_BROADWELL | PTA_CLFLUSHOPT | PTA_XSAVEC | PTA_XSAVES)
 #define PTA_KNL \
   (PTA_BROADWELL | PTA_AVX512PF | PTA_AVX512ER | PTA_AVX512F | PTA_AVX512CD)
 #define PTA_BONNELL \
@@ -3347,6 +3349,7 @@ ix86_option_override_internal (bool main_args_p,
       {"haswell", PROCESSOR_HASWELL, CPU_NEHALEM, PTA_HASWELL},
       {"core-avx2", PROCESSOR_HASWELL, CPU_NEHALEM, PTA_HASWELL},
       {"broadwell", PROCESSOR_HASWELL, CPU_NEHALEM, PTA_BROADWELL},
+      {"skylake", PROCESSOR_HASWELL, CPU_NEHALEM, PTA_SKYLAKE},
       {"bonnell", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL},
       {"atom", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL},
       {"silvermont", PROCESSOR_SILVERMONT, CPU_SLM, PTA_SILVERMONT},
@@ -35636,7 +35639,8 @@ fold_builtin_cpu (tree fndecl, tree *args)
     M_AMDFAM15H_BDVER4,
     M_INTEL_COREI7_IVYBRIDGE,
     M_INTEL_COREI7_HASWELL,
-    M_INTEL_COREI7_BROADWELL
+    M_INTEL_COREI7_BROADWELL,
+    M_INTEL_COREI7_SKYLAKE
   };
 
   static struct _arch_names_table
@@ -35658,6 +35662,7 @@ fold_builtin_cpu (tree fndecl, tree *args)
       {"ivybridge", M_INTEL_COREI7_IVYBRIDGE},
       {"haswell", M_INTEL_COREI7_HASWELL},
       {"broadwell", M_INTEL_COREI7_BROADWELL},
+      {"skylake", M_INTEL_COREI7_SKYLAKE},
       {"bonnell", M_INTEL_BONNELL},
       {"silvermont", M_INTEL_SILVERMONT},
       {"knl", M_INTEL_KNL},
index 0ae2e26b1e6ce41b2d001fc28c267cadf89f790f..2871337918d4739afccd1ab715d9b65c5810ca5e 100644 (file)
@@ -22404,6 +22404,12 @@ 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 and PREFETCHW instruction set support.
 
+@item skylake
+Intel Skylake 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, CLFLUSHOPT, XSAVEC and
+XSAVES instruction set support.
+
 @item bonnell
 Intel Bonnell CPU with 64-bit extensions, MOVBE, MMX, SSE, SSE2, SSE3 and SSSE3
 instruction set support.
index 2929fe4369ed88abbdd7e8b95cb0c6234d002783..36fc67e8ff80f77d9256a82bc1aa428c7180c51c 100644 (file)
@@ -1,3 +1,7 @@
+2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * gcc.target/i386/builtin_target.c: Add skylake check.
+
 2015-08-13  Jeff Law  <law@redhat.com>
 
        * gcc.dg/pr66314.c: Moved from here to ..
index 068db23f9d95d230e9099df69ceb4a4f53df81cd..300d208f908f7197fb0ccce4c5931b121f65f00c 100644 (file)
@@ -85,6 +85,12 @@ check_intel_cpu_model (unsigned int family, unsigned int model,
              assert (__builtin_cpu_is ("corei7"));
              assert (__builtin_cpu_is ("broadwell"));
              break;
+           case 0x4e:
+           case 0x5e:
+             /* Skylake.  */
+             assert (__builtin_cpu_is ("corei7"));
+             assert (__builtin_cpu_is ("skylake"));
+             break;
            case 0x17:
            case 0x1d:
              /* Penryn.  */
index 085dc0597adf422e50baf9d7bcf1347f098ee8eb..5ce8f7261eece11323536688f0150743ddb5dfaf 100644 (file)
@@ -1,3 +1,8 @@
+2015-08-14  Yuri Rumyantsev  <ysrumyan@gmail.com>
+
+       * config/i386/cpuinfo.c (enum processor_subtypes): Add skylake.
+       (get_intel_cpu): Likewise.
+
 2015-08-12  H.J. Lu  <hongjiu.lu@intel.com>
 
        * config/i386/cpuinfo.c (processor_types): Add INTEL_KNL.
index b7b11de9865cba6b61c879647441b8431fe00d99..14367754828040184cfddbe759c11d8aeefc7ed3 100644 (file)
@@ -77,6 +77,7 @@ enum processor_subtypes
   INTEL_COREI7_IVYBRIDGE,
   INTEL_COREI7_HASWELL,
   INTEL_COREI7_BROADWELL,
+  INTEL_COREI7_SKYLAKE,
   CPU_SUBTYPE_MAX
 };
 
@@ -245,6 +246,12 @@ get_intel_cpu (unsigned int family, unsigned int model, unsigned int brand_id)
              __cpu_model.__cpu_type = INTEL_COREI7;
              __cpu_model.__cpu_subtype = INTEL_COREI7_BROADWELL;
              break;
+           case 0x4e:
+           case 0x5e:
+             /* Skylake.  */
+             __cpu_model.__cpu_type = INTEL_COREI7;
+             __cpu_model.__cpu_subtype = INTEL_COREI7_SKYLAKE;
+             break;
            case 0x17:
            case 0x1d:
              /* Penryn.  */