On Monday 16 December 2013, Uros Bizjak wrote:
> On Mon, Dec 16, 2013 at 10:34 AM, Uros Bizjak <ubiz...@gmail.com> wrote:
> > On Sun, Dec 15, 2013 at 7:54 PM, Allan Sandfeld Jensen
> > 
> > <carew...@gmail.com> wrote:
> >> Hi again
> >> 
> >> On Wednesday 11 December 2013, Uros Bizjak wrote:
> >>> Hello!
> >>> 
> >>> > PR gcc/59422
> >>> > 
> >>> > This patch extends the supported targets for function multi versiong
> >>> > to also include Haswell, Silvermont, and the most recent AMD models.
> >>> > It also prioritizes AVX2 versions over AMD specific pre-AVX2
> >>> > versions.
> >>> 
> >>> Please add a ChangeLog entry and attach the complete patch. Please
> >>> also state how you tested the patch, as outlined in the instructions
> >>> [1].
> >>> 
> >>> [1] http://gcc.gnu.org/contribute.html
> >> 
> >> Updated patch for better CPU model detection and added ChangeLog.
> >> 
> >> The patch has been tested with the attached test.cpp. Verified that it
> >> doesn't build before the patch, and that it builds after, and verified
> >> it selects correct versions at runtime based on either CPU model or
> >> supported ISA (tested on 3 machines: SandyBridge, IvyBridge and Phenom
> >> II).
> >> 
> >> Btw, I couldn't find anything that corresponds to gcc's btver2 arch. Is
> >> that an old term for what has become the Jaguar architecture?
> > 
> > Thanks for the patch!
> > 
> > However, you should not change the existing order of enums in
> > cpuinfo.c (enum processor_vendor, enum processor_types, enum
> > processor_subtypes, enum processor_features), but new entries should
> > be added at the end (before *_MAX entry, if exists) of the enum. The
> > enums (enum processor_features and enum processor_model) in
> > config/i386/i386.c should mirror these changes. Please see [1].
> > 
> > Probably, we should document this in the source...
> > 
> > -      {"sandybridge", M_INTEL_COREI7_SANDYBRIDGE},
> > +      {"corei7-avx", M_INTEL_COREI7_SANDYBRIDGE},
> > 
> > Huh... Thanks for catching this. -march=sandybridge is not recognized...
> 
> -      {"sandybridge", M_INTEL_COREI7_SANDYBRIDGE},
> +      {"corei7-avx", M_INTEL_COREI7_SANDYBRIDGE},
> +      {"core-avx-i", M_INTEL_COREI7_IVYBRIDGE},
> +      {"core-avx2", M_INTEL_COREI7_HASWELL},
> 
> Ah, no. These names are not intended to be used in -march. We can
> follow the tradition and use sandybridge, ivybridge and haswell here.
> 
I had the problem that "arch=corei7-avx" was not recognized as a valid 
property argument until I made that change. I thought it was the intend to 
merge this list of models with the canonical names, but perhaps it is an error 
in the new parameter validation?

Note that similarly "arch=sandybridge" is accepted as a valid property 
argument but then fails as an invalid argument for march.

Regards
`Allan

Reply via email to