Map "arch=corei7"/"arch=nehalem" to M_INTEL_COREI7
authorH.J. Lu <hjl@gcc.gnu.org>
Thu, 26 Dec 2013 14:47:15 +0000 (06:47 -0800)
committerH.J. Lu <hjl@gcc.gnu.org>
Thu, 26 Dec 2013 14:47:15 +0000 (06:47 -0800)
commit806ac507476f414a3accae49e8ced8789a2190a3
treedab18eee2c107ed78adf00ed489bb834f55a355f
parent1879e97f6cf296fb0a30e85350b79f73fc58aad5
Map "arch=corei7"/"arch=nehalem" to M_INTEL_COREI7

After Intel processor name cleanup,

__attribute__ ((target("arch=corei7"))) is translated to PROCESSOR_NEHALEM
and mapped to M_INTEL_COREI7_NEHALEM.

__attribute__ ((target("arch=corei7")))

used to cover M_INTEL_COREI7_XXXX. Now it only covers M_INTEL_COREI7_NEHALEM.
We have PROCESSOR_SANDYBRIDGE and PROCESSOR_HASWELL.  But there is nothing
to mark Westmere and Ivy Bridge.  Since function versioning doesn't support
extra ISAs in Westmere and Ivy Bridge, we don't lose anything. The solution
is to map

__attribute__ ((target("arch=corei7")))

and

__attribute__ ((target("arch=nehalem")))

to M_INTEL_COREI7.

gcc/

PR target/59601
* config/i386/i386.c (get_builtin_code_for_version): Map
PROCESSOR_NEHALEM to "corei7".

gcc/testsuite/

PR target/59601
* g++.dg/ext/mv14.C: New tests.
* g++.dg/ext/mv15.C: Likewise.

From-SVN: r206212
gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/mv14.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ext/mv15.C [new file with mode: 0644]