This patch adds Knights Landing support to __builtin_cpu_is.

gcc/testsuite/

        * gcc.target/i386/builtin_target.c (check_intel_cpu_model):
        Check Knights Landing support.

libgcc/

        * config/i386/cpuinfo.c (processor_types): Add INTEL_KNL.
        (get_intel_cpu): Add Knights Landing support.
---
 gcc/testsuite/gcc.target/i386/builtin_target.c | 4 ++++
 libgcc/config/i386/cpuinfo.c                   | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/gcc/testsuite/gcc.target/i386/builtin_target.c 
b/gcc/testsuite/gcc.target/i386/builtin_target.c
index 4adea27..068db23 100644
--- a/gcc/testsuite/gcc.target/i386/builtin_target.c
+++ b/gcc/testsuite/gcc.target/i386/builtin_target.c
@@ -38,6 +38,10 @@ check_intel_cpu_model (unsigned int family, unsigned int 
model,
              /* Silvermont.  */
              assert (__builtin_cpu_is ("silvermont"));
              break;
+           case 0x57:
+             /* Knights Landing.  */
+             assert (__builtin_cpu_is ("knl"));
+             break;
            case 0x1a:
            case 0x1e:
            case 0x1f:
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
index 25d85e4..b7b11de 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -56,6 +56,7 @@ enum processor_types
   AMDFAM10H,
   AMDFAM15H,
   INTEL_SILVERMONT,
+  INTEL_KNL,
   AMD_BTVER1,
   AMD_BTVER2,  
   CPU_TYPE_MAX
@@ -197,6 +198,10 @@ get_intel_cpu (unsigned int family, unsigned int model, 
unsigned int brand_id)
              /* Silvermont.  */
              __cpu_model.__cpu_type = INTEL_SILVERMONT;
              break;
+           case 0x57:
+             /* Knights Landing.  */
+             __cpu_model.__cpu_type = INTEL_KNL;
+             break;
            case 0x1a:
            case 0x1e:
            case 0x1f:
-- 
2.4.3

Reply via email to