This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [Patch] [x86_64]: Add bdver4 for multi versioning and fix AMD cpu model detection.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "Kumar, Venkataramanan" <Venkataramanan dot Kumar at amd dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 9 Oct 2015 11:55:21 +0200
- Subject: Re: [Patch] [x86_64]: Add bdver4 for multi versioning and fix AMD cpu model detection.
- Authentication-results: sourceware.org; auth=none
- References: <7794A52CE4D579448B959EED7DD0A4723DD6E9EB at satlexdag06 dot amd dot com>
On Fri, Oct 9, 2015 at 11:50 AM, Kumar, Venkataramanan
<Venkataramanan.Kumar@amd.com> wrote:
> Hi Uros,
>
> Please find below patch that adds bdver4 target for multi versioning.
> Also I while computing model, the extended_model is incorrectly left shifted by 4. I have removed it now.
>
> Is below patch Ok for trunk ?
> GCC bootstrap and regressions passed.
OK for trunk and release branches, where applicable. IMO, model
selection fix should be applied to all release branches.
Thanks,
Uros.
> diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
> index bb3a722..8676747 100644
> --- a/libgcc/ChangeLog
> +++ b/libgcc/ChangeLog
> @@ -1,3 +1,8 @@
> +2015-10-09 Venkataramanan Kumar <venkataramanan.kumar@amd.com>
> +
> + * config/i386/cpuinfo.c (get_amd_cpu): Detect bdver4.
> + (__cpu_indicator_init): Fix model selection for AMD CPUs.
> +
> 2015-10-05 Kirill Yukhin <kirill.yukhin@intel.com>
>
> * config/i386/cpuinfo.c (get_intel_cpu): Detect "skylake-avx512".
> diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
> index 0cbbc85..1313ca3 100644
> --- a/libgcc/config/i386/cpuinfo.c
> +++ b/libgcc/config/i386/cpuinfo.c
> @@ -169,6 +169,9 @@ get_amd_cpu (unsigned int family, unsigned int model)
> /* Bulldozer version 3 "Steamroller" */
> if (model >= 0x30 && model <= 0x4f)
> __cpu_model.__cpu_subtype = AMDFAM15H_BDVER3;
> + /* Bulldozer version 4 "Excavator" */
> + if (model >= 0x60 && model <= 0x7f)
> + __cpu_model.__cpu_subtype = AMDFAM15H_BDVER4;
> break;
> /* AMD Family 16h "btver2" */
> case 0x16:
> @@ -455,7 +458,7 @@ __cpu_indicator_init (void)
> if (family == 0x0f)
> {
> family += extended_family;
> - model += (extended_model << 4);
> + model += extended_model;
> }
>
> /* Get CPU type. */
>
> Regards,
> Venkat.
>
>
>
>
>
>