Re: [PATCH] [x86_64]: Zhaoxin shijidadao enablement
On Tue, Jun 18, 2024 at 9:21 AM mayshao-oc wrote: > > > > On 5/28/24 14:15, Uros Bizjak wrote: > > > > > > > > On Mon, May 27, 2024 at 10:33 AM MayShao wrote: > >> > >> From: mayshao > >> > >> Hi all: > >> This patch enables -march/-mtune=shijidadao, costs and tunings are > >> set according to the characteristics of the processor. > >> > >> Bootstrapped /regtested X86_64. > >> > >> Ok for trunk? > > > > OK. > > > > Thanks, > > Uros. > > Thanks for your review, please help me commit. Done, committed as r15-1454 [1]. [1] https://gcc.gnu.org/pipermail/gcc-cvs/2024-June/404474.html Thanks, Uros.
Re: [PATCH] [x86_64]: Zhaoxin shijidadao enablement
On 5/28/24 14:15, Uros Bizjak wrote: On Mon, May 27, 2024 at 10:33 AM MayShao wrote: From: mayshao Hi all: This patch enables -march/-mtune=shijidadao, costs and tunings are set according to the characteristics of the processor. Bootstrapped /regtested X86_64. Ok for trunk? OK. Thanks, Uros. Thanks for your review, please help me commit. BR Mayshao BR Mayshao gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao. * common/config/i386/i386-common.cc: Add shijidadao. * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): Add ZHAOXIN_FAM7H_SHIJIDADAO. * config.gcc: Add shijidadao. * config/i386/driver-i386.cc (host_detect_local_cpu): Let -march=native recognize shijidadao processors. * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao. * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO. (m_SHIJIDADAO): New definition. * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO. * config/i386/x86-tune-costs.h (struct processor_costs): Add shijidadao_cost. * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao. (ix86_adjust_cost): Ditto. * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO. (X86_TUNE_USE_GATHER_4PARTS): Ditto. (X86_TUNE_USE_GATHER_8PARTS): Ditto. (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. * doc/extend.texi: Add details about shijidadao. * doc/invoke.texi: Ditto. gcc/testsuite/ChangeLog: * g++.target/i386/mv32.C: Handle new -march * gcc.target/i386/funcspec-56.inc: Ditto. --- gcc/common/config/i386/cpuinfo.h | 8 +- gcc/common/config/i386/i386-common.cc | 8 +- gcc/common/config/i386/i386-cpuinfo.h | 1 + gcc/config.gcc| 14 ++- gcc/config/i386/driver-i386.cc| 11 +- gcc/config/i386/i386-c.cc | 7 ++ gcc/config/i386/i386-options.cc | 4 +- gcc/config/i386/i386.h| 1 + gcc/config/i386/x86-tune-costs.h | 116 ++ gcc/config/i386/x86-tune-sched.cc | 2 + gcc/config/i386/x86-tune.def | 8 +- gcc/doc/extend.texi | 3 + gcc/doc/invoke.texi | 6 + gcc/testsuite/g++.target/i386/mv32.C | 6 + gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + 15 files changed, 183 insertions(+), 14 deletions(-) diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h index 4610bf6d6a4..936039725ab 100644 --- a/gcc/common/config/i386/cpuinfo.h +++ b/gcc/common/config/i386/cpuinfo.h @@ -667,12 +667,18 @@ get_zhaoxin_cpu (struct __processor_model *cpu_model, reset_cpu_feature (cpu_model, cpu_features2, FEATURE_F16C); cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_LUJIAZUI; } - else if (model >= 0x5b) + else if (model == 0x5b) { cpu = "yongfeng"; CHECK___builtin_cpu_is ("yongfeng"); cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_YONGFENG; } + else if (model >= 0x6b) + { + cpu = "shijidadao"; + CHECK___builtin_cpu_is ("shijidadao"); + cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_SHIJIDADAO; + } break; default: break; diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc index 895e5fa662d..eb3f94c529c 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -2066,6 +2066,7 @@ const char *const processor_names[] = "intel", "lujiazui", "yongfeng", + "shijidadao", "geode", "k6", "athlon", @@ -2271,10 +2272,13 @@ const pta processor_alias_table[] = | PTA_SSSE3 | PTA_SSE4_1 | PTA_FXSR, 0, P_NONE}, {"lujiazui", PROCESSOR_LUJIAZUI, CPU_LUJIAZUI, PTA_LUJIAZUI, - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_NONE}, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_PROC_BMI}, {"yongfeng", PROCESSOR_YONGFENG, CPU_YONGFENG, PTA_YONGFENG, - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_NONE}, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_PROC_AVX2}, + {"shijidadao", PROCESSOR_SHIJIDADAO, CPU_YONGFENG, + PTA_YONGFENG, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_SHIJIDADAO), P_PROC_AVX2}, {"k8", PROCESSOR_K8, CPU_K8, PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE | PTA_SSE2 | PTA_NO_SAHF | PTA_FXSR, 0, P_NONE}, diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h index 9edad96d4fd..fa3b76f4931 100644 --- a/gcc/common/config/i386/i386-cpuinfo.h +++ b/gcc/common/config/i386/i386-cpuinfo.h @@ -104,6 +104,7 @@ enum processor_subtypes
Re: [PATCH] [x86_64]: Zhaoxin shijidadao enablement
On Mon, May 27, 2024 at 10:33 AM MayShao wrote: > > From: mayshao > > Hi all: > This patch enables -march/-mtune=shijidadao, costs and tunings are set > according to the characteristics of the processor. > > Bootstrapped /regtested X86_64. > > Ok for trunk? OK. Thanks, Uros. > BR > Mayshao > gcc/ChangeLog: > > * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize > shijidadao. > * common/config/i386/i386-common.cc: Add shijidadao. > * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): > Add ZHAOXIN_FAM7H_SHIJIDADAO. > * config.gcc: Add shijidadao. > * config/i386/driver-i386.cc (host_detect_local_cpu): > Let -march=native recognize shijidadao processors. > * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao. > * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO. > (m_SHIJIDADAO): New definition. > * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO. > * config/i386/x86-tune-costs.h (struct processor_costs): > Add shijidadao_cost. > * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao. > (ix86_adjust_cost): Ditto. > * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add > m_SHIJIDADAO. > (X86_TUNE_USE_GATHER_4PARTS): Ditto. > (X86_TUNE_USE_GATHER_8PARTS): Ditto. > (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. > * doc/extend.texi: Add details about shijidadao. > * doc/invoke.texi: Ditto. > > gcc/testsuite/ChangeLog: > > * g++.target/i386/mv32.C: Handle new -march > * gcc.target/i386/funcspec-56.inc: Ditto. > --- > gcc/common/config/i386/cpuinfo.h | 8 +- > gcc/common/config/i386/i386-common.cc | 8 +- > gcc/common/config/i386/i386-cpuinfo.h | 1 + > gcc/config.gcc| 14 ++- > gcc/config/i386/driver-i386.cc| 11 +- > gcc/config/i386/i386-c.cc | 7 ++ > gcc/config/i386/i386-options.cc | 4 +- > gcc/config/i386/i386.h| 1 + > gcc/config/i386/x86-tune-costs.h | 116 ++ > gcc/config/i386/x86-tune-sched.cc | 2 + > gcc/config/i386/x86-tune.def | 8 +- > gcc/doc/extend.texi | 3 + > gcc/doc/invoke.texi | 6 + > gcc/testsuite/g++.target/i386/mv32.C | 6 + > gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + > 15 files changed, 183 insertions(+), 14 deletions(-) > > diff --git a/gcc/common/config/i386/cpuinfo.h > b/gcc/common/config/i386/cpuinfo.h > index 4610bf6d6a4..936039725ab 100644 > --- a/gcc/common/config/i386/cpuinfo.h > +++ b/gcc/common/config/i386/cpuinfo.h > @@ -667,12 +667,18 @@ get_zhaoxin_cpu (struct __processor_model *cpu_model, > reset_cpu_feature (cpu_model, cpu_features2, FEATURE_F16C); > cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_LUJIAZUI; > } > - else if (model >= 0x5b) > + else if (model == 0x5b) > { > cpu = "yongfeng"; > CHECK___builtin_cpu_is ("yongfeng"); > cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_YONGFENG; > } > + else if (model >= 0x6b) > + { > + cpu = "shijidadao"; > + CHECK___builtin_cpu_is ("shijidadao"); > + cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_SHIJIDADAO; > + } >break; > default: >break; > diff --git a/gcc/common/config/i386/i386-common.cc > b/gcc/common/config/i386/i386-common.cc > index 895e5fa662d..eb3f94c529c 100644 > --- a/gcc/common/config/i386/i386-common.cc > +++ b/gcc/common/config/i386/i386-common.cc > @@ -2066,6 +2066,7 @@ const char *const processor_names[] = >"intel", >"lujiazui", >"yongfeng", > + "shijidadao", >"geode", >"k6", >"athlon", > @@ -2271,10 +2272,13 @@ const pta processor_alias_table[] = >| PTA_SSSE3 | PTA_SSE4_1 | PTA_FXSR, 0, P_NONE}, >{"lujiazui", PROCESSOR_LUJIAZUI, CPU_LUJIAZUI, > PTA_LUJIAZUI, > - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_NONE}, > + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_PROC_BMI}, >{"yongfeng", PROCESSOR_YONGFENG, CPU_YONGFENG, > PTA_YONGFENG, > - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_NONE}, > + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_PROC_AVX2}, > + {"shijidadao", PROCESSOR_SHIJIDADAO, CPU_YONGFENG, > + PTA_YONGFENG, > + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_SHIJIDADAO), P_PROC_AVX2}, >{"k8", PROCESSOR_K8, CPU_K8, > PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE >| PTA_SSE2 | PTA_NO_SAHF | PTA_FXSR, 0, P_NONE}, > diff --git a/gcc/common/config/i386/i386-cpuinfo.h > b/gcc/common/config/i386/i386-cpuinfo.h > index 9edad96d4fd..fa3b76f4931 100644 > --- a/gcc/common/config/i386/i386-cpuinfo.h > +++ b/gcc/common/config/i386/i386-cpui
[PATCH] [x86_64]: Zhaoxin shijidadao enablement
From: mayshao Hi all: This patch enables -march/-mtune=shijidadao, costs and tunings are set according to the characteristics of the processor. Bootstrapped /regtested X86_64. Ok for trunk? BR Mayshao gcc/ChangeLog: * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao. * common/config/i386/i386-common.cc: Add shijidadao. * common/config/i386/i386-cpuinfo.h (enum processor_subtypes): Add ZHAOXIN_FAM7H_SHIJIDADAO. * config.gcc: Add shijidadao. * config/i386/driver-i386.cc (host_detect_local_cpu): Let -march=native recognize shijidadao processors. * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao. * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO. (m_SHIJIDADAO): New definition. * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO. * config/i386/x86-tune-costs.h (struct processor_costs): Add shijidadao_cost. * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao. (ix86_adjust_cost): Ditto. * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO. (X86_TUNE_USE_GATHER_4PARTS): Ditto. (X86_TUNE_USE_GATHER_8PARTS): Ditto. (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. * doc/extend.texi: Add details about shijidadao. * doc/invoke.texi: Ditto. gcc/testsuite/ChangeLog: * g++.target/i386/mv32.C: Handle new -march * gcc.target/i386/funcspec-56.inc: Ditto. --- gcc/common/config/i386/cpuinfo.h | 8 +- gcc/common/config/i386/i386-common.cc | 8 +- gcc/common/config/i386/i386-cpuinfo.h | 1 + gcc/config.gcc| 14 ++- gcc/config/i386/driver-i386.cc| 11 +- gcc/config/i386/i386-c.cc | 7 ++ gcc/config/i386/i386-options.cc | 4 +- gcc/config/i386/i386.h| 1 + gcc/config/i386/x86-tune-costs.h | 116 ++ gcc/config/i386/x86-tune-sched.cc | 2 + gcc/config/i386/x86-tune.def | 8 +- gcc/doc/extend.texi | 3 + gcc/doc/invoke.texi | 6 + gcc/testsuite/g++.target/i386/mv32.C | 6 + gcc/testsuite/gcc.target/i386/funcspec-56.inc | 2 + 15 files changed, 183 insertions(+), 14 deletions(-) diff --git a/gcc/common/config/i386/cpuinfo.h b/gcc/common/config/i386/cpuinfo.h index 4610bf6d6a4..936039725ab 100644 --- a/gcc/common/config/i386/cpuinfo.h +++ b/gcc/common/config/i386/cpuinfo.h @@ -667,12 +667,18 @@ get_zhaoxin_cpu (struct __processor_model *cpu_model, reset_cpu_feature (cpu_model, cpu_features2, FEATURE_F16C); cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_LUJIAZUI; } - else if (model >= 0x5b) + else if (model == 0x5b) { cpu = "yongfeng"; CHECK___builtin_cpu_is ("yongfeng"); cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_YONGFENG; } + else if (model >= 0x6b) + { + cpu = "shijidadao"; + CHECK___builtin_cpu_is ("shijidadao"); + cpu_model->__cpu_subtype = ZHAOXIN_FAM7H_SHIJIDADAO; + } break; default: break; diff --git a/gcc/common/config/i386/i386-common.cc b/gcc/common/config/i386/i386-common.cc index 895e5fa662d..eb3f94c529c 100644 --- a/gcc/common/config/i386/i386-common.cc +++ b/gcc/common/config/i386/i386-common.cc @@ -2066,6 +2066,7 @@ const char *const processor_names[] = "intel", "lujiazui", "yongfeng", + "shijidadao", "geode", "k6", "athlon", @@ -2271,10 +2272,13 @@ const pta processor_alias_table[] = | PTA_SSSE3 | PTA_SSE4_1 | PTA_FXSR, 0, P_NONE}, {"lujiazui", PROCESSOR_LUJIAZUI, CPU_LUJIAZUI, PTA_LUJIAZUI, - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_NONE}, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_LUJIAZUI), P_PROC_BMI}, {"yongfeng", PROCESSOR_YONGFENG, CPU_YONGFENG, PTA_YONGFENG, - M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_NONE}, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_YONGFENG), P_PROC_AVX2}, + {"shijidadao", PROCESSOR_SHIJIDADAO, CPU_YONGFENG, + PTA_YONGFENG, + M_CPU_SUBTYPE (ZHAOXIN_FAM7H_SHIJIDADAO), P_PROC_AVX2}, {"k8", PROCESSOR_K8, CPU_K8, PTA_64BIT | PTA_MMX | PTA_3DNOW | PTA_3DNOW_A | PTA_SSE | PTA_SSE2 | PTA_NO_SAHF | PTA_FXSR, 0, P_NONE}, diff --git a/gcc/common/config/i386/i386-cpuinfo.h b/gcc/common/config/i386/i386-cpuinfo.h index 9edad96d4fd..fa3b76f4931 100644 --- a/gcc/common/config/i386/i386-cpuinfo.h +++ b/gcc/common/config/i386/i386-cpuinfo.h @@ -104,6 +104,7 @@ enum processor_subtypes INTEL_COREI7_PANTHERLAKE, ZHAOXIN_FAM7H_YONGFENG, AMDFAM1AH_ZNVER5, + ZHAOXIN_FAM7H_SHIJIDADAO, CPU_SUBTYPE_MAX }; diff --git a/gcc/config.gcc b/gcc/config.gcc index a37113bd00a..91a3a3152dc 100644 --- a/gcc/config.gcc +++ b/gcc/config.g