aboutsummaryrefslogtreecommitdiff
path: root/gcc/common
diff options
context:
space:
mode:
authorHaochen Jiang <haochen.jiang@intel.com>2024-11-11 10:48:16 +0800
committerHaochen Jiang <haochen.jiang@intel.com>2024-11-11 10:48:16 +0800
commit74ae651bd61a7128c77ca08328956564fd49a23b (patch)
tree5d19671792825ce365e8bcd8f4c6a78bb10ae284 /gcc/common
parentc659e293d6fcf53466502dd5389b03e9a295c14d (diff)
downloadgcc-74ae651bd61a7128c77ca08328956564fd49a23b.zip
gcc-74ae651bd61a7128c77ca08328956564fd49a23b.tar.gz
gcc-74ae651bd61a7128c77ca08328956564fd49a23b.tar.bz2
Initial Diamond Rapids Support
gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Diamond Rapids. * common/config/i386/i386-common.cc (processor_name): Add Diamond Rapids. (processor_alias_table): Ditto. * common/config/i386/i386-cpuinfo.h (enum processor_types): Add INTEL_COREI7_DIAMONDRAPIDS. * config.gcc: Add -march=diamondrapids. * config/i386/driver-i386.cc (host_detect_local_cpu): Handle diamondrapids. * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. * config/i386/i386-options.cc (processor_cost_table): Ditto. (m_DIAMONDRAPIDS): New. (m_CORE_AVX512): Add diamondrapids. * config/i386/i386.h (enum processor_type): Ditto. * doc/extend.texi: Ditto. * doc/invoke.texi: Ditto. gcc/testsuite/ChangeLog: * g++.target/i386/mv16.C: Ditto. * gcc.target/i386/funcspec-56.inc: Handle new march.
Diffstat (limited to 'gcc/common')
-rw-r--r--gcc/common/config/i386/cpuinfo.h16
-rw-r--r--gcc/common/config/i386/i386-common.cc3
-rw-r--r--gcc/common/config/i386/i386-cpuinfo.h1
3 files changed, 20 insertions, 0 deletions
diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h
index f415fc9..310eba3 100644
--- a/gcc/common/config/i386/cpuinfo.h
+++ b/gcc/common/config/i386/cpuinfo.h
@@ -636,6 +636,22 @@ get_intel_cpu (struct __processor_model *cpu_model,
default:
break;
}
+ /* Parse family and model for family 0x13. */
+ else if (cpu_model2->__cpu_family == 0x13)
+ switch (cpu_model2->__cpu_model)
+ {
+ case 0x00:
+ case 0x01:
+ /* Diamond Rapids. */
+ cpu = "diamondrapids";
+ CHECK___builtin_cpu_is ("corei7");
+ CHECK___builtin_cpu_is ("diamondrapids");
+ cpu_model->__cpu_type = INTEL_COREI7;
+ cpu_model->__cpu_subtype = INTEL_COREI7_DIAMONDRAPIDS;
+ break;
+ default:
+ break;
+ }
return cpu;
}
diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc
index b2c2f0b..b044cba 100644
--- a/gcc/common/config/i386/i386-common.cc
+++ b/gcc/common/config/i386/i386-common.cc
@@ -2206,6 +2206,7 @@ const char *const processor_names[] =
"arrowlake",
"arrowlake-s",
"pantherlake",
+ "diamondrapids",
"intel",
"lujiazui",
"yongfeng",
@@ -2343,6 +2344,8 @@ const pta processor_alias_table[] =
M_CPU_SUBTYPE (INTEL_COREI7_ARROWLAKE_S), P_PROC_AVX2},
{"pantherlake", PROCESSOR_PANTHERLAKE, CPU_HASWELL, PTA_PANTHERLAKE,
M_CPU_SUBTYPE (INTEL_COREI7_PANTHERLAKE), P_PROC_AVX2},
+ {"diamondrapids", PROCESSOR_DIAMONDRAPIDS, CPU_HASWELL, PTA_DIAMONDRAPIDS,
+ M_CPU_SUBTYPE (INTEL_COREI7_DIAMONDRAPIDS), P_PROC_AVX512F},
{"bonnell", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
M_CPU_TYPE (INTEL_BONNELL), P_PROC_SSSE3},
{"atom", PROCESSOR_BONNELL, CPU_ATOM, PTA_BONNELL,
diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h
index 23c9950..4c99b35 100644
--- a/gcc/common/config/i386/i386-cpuinfo.h
+++ b/gcc/common/config/i386/i386-cpuinfo.h
@@ -105,6 +105,7 @@ enum processor_subtypes
ZHAOXIN_FAM7H_YONGFENG,
AMDFAM1AH_ZNVER5,
ZHAOXIN_FAM7H_SHIJIDADAO,
+ INTEL_COREI7_DIAMONDRAPIDS,
CPU_SUBTYPE_MAX
};