On Mon, Dec 23, 2013 at 10:33 AM, Allan Sandfeld Jensen <carew...@gmail.com> wrote: > On Monday 23 December 2013, H.J. Lu wrote: >> On Mon, Dec 23, 2013 at 8:57 AM, Allan Sandfeld Jensen >> >> <carew...@gmail.com> wrote: >> > On Monday 23 December 2013, Allan Sandfeld Jensen wrote: >> >> On Monday 23 December 2013, H.J. Lu wrote: >> >> > On Thu, Dec 19, 2013 at 11:20:39AM +0100, Allan Sandfeld Jensen wrote: >> >> > > On Thursday 19 December 2013, Gopalasubramanian, Ganesh wrote: >> >> > > > > Sorry, I must have been looking at an older version, but as I >> >> > > > > said I already did enable it in the latest patch. (see >> >> > > > > http://gcc.gnu.org/ml/gcc-patches/2013-12/msg01577.html ) >> >> > > > >> >> > > > Sorry for causing another revision but we would like to stick with >> >> > > > "btver1" and "btver2" rather than "BOBCAT" or "JAGUAR". Therefore >> >> > > > the changes would be like >> >> > > >> >> > > I will need to make an updated patch to move the new ISAs to the end >> >> > > of the list anyway. I will send it in a few days to give AMD or >> >> > > Intel developers time to comment on the current version. >> >> > >> >> > I renamed Intel processor names. Please update your patch. Here is my >> >> > patch to add more Intel processor support. You can add it to your >> >> > patch. >> >> >> >> Updated patch attached. Rebased, fixed coding style, moved new ISA enums >> >> to the end and applied H.J.Lu's patch. >> > >> > Fixed merging mistake that left haswell with SSE4_2 priority. >> > >> > `Allan >> >> + M_INTEL_COREI7_AVX, >> + M_INTEL_CORE_AVX2, >> >> Do we need them? M_INTEL_COREI7_AVX is the same >> M_INTEL_COREI7_SANDYBRIDGE and M_INTEL_CORE_AVX2 >> is the same as M_INTEL_COREI7_HASWELL. >> > M_INTEL_COREI7_AVX is the common model for both sandybridge and ivybridge. > Matching PROCESSOR_SANDYBRIDGE, or march="corei7-avx". Similarly > M_INTEL_CORE_AVX2 is the common model for haswell and broadwell, matching > PROCESSOR_HASWELL or march="core-avx2".
If you use {"corei7-avx", M_INTEL_COREI7_SANYBRIDGE}, {"core-avx2", M_INTEL_COREI7_HASWELL}, will it cause any problems? When there are both __attribute__((target("corei7-avx"))) and __attribute__((target("sandybridge"))) we should either issue an error or silently drop __attribute__((target("corei7-avx"))) instead of generating to 2 identical copies of the same function. >> + M_INTEL_CORE_HASWELL >> >> Please change M_INTEL_CORE_HASWELL to M_INTEL_COREI7_HASWELL. >> > I used the name core_haswell to make its prefix match that of its model > core_avx2 (as opposed to corei7_avx for instance). We should remove all internal references to corei7-avx and core-avx2 if possible. >> + {"corei7-avx", M_INTEL_COREI7_AVX}, >> + {"core-avx2", M_INTEL_CORE_AVX2}, >> >> Why do we need them? > > Without the existence of these entries, __attribute__((target("corei7-avx"))) > or __attribute__((target("core-avx2")) failed to compile because of how > parameters to attributes were verified. > -- H.J.