+2013-12-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/59601
+ * config/i386/i386.c (get_builtin_code_for_version): Map
+ PROCESSOR_NEHALEM to "corei7".
+
2013-12-26 Ganesh Gopalasubramanian <Ganesh.Gopalasubramanian@amd.com>
- * config/i386/i386.c (get_builtin_code_for_version): Rename AMD
- CPU names M_AMD_BOBCAT to M_AMD_BTVER1 and M_AMD_JAGUAR
- to M_AMD_BTVER2.
- (processor_model): Likewise.
- (arch_names_table): Likewise.
+ * config/i386/i386.c (get_builtin_code_for_version): Rename AMD
+ CPU names M_AMD_BOBCAT to M_AMD_BTVER1 and M_AMD_JAGUAR
+ to M_AMD_BTVER2.
+ (processor_model): Likewise.
+ (arch_names_table): Likewise.
2013-12-26 Uros Bizjak <ubizjak@gmail.com>
priority = P_PROC_SSSE3;
break;
case PROCESSOR_NEHALEM:
- arg_str = "nehalem";
+ /* We translate "arch=corei7" and "arch=nehelam" to
+ "corei7" so that it will be mapped to M_INTEL_COREI7
+ as cpu type to cover all M_INTEL_COREI7_XXXs. */
+ arg_str = "corei7";
priority = P_PROC_SSE4_2;
break;
case PROCESSOR_SANDYBRIDGE:
+2013-12-26 Uros Bizjak <ubizjak@gmail.com>
+ H.J. Lu <hongjiu.lu@intel.com>
+
+ PR target/59601
+ * g++.dg/ext/mv14.C: New tests.
+ * g++.dg/ext/mv15.C: Likewise.
+
2013-12-25 Allan Sandfeld Jensen <sandfeld@kde.org>
PR target/59422
--- /dev/null
+/* Test case to check if Multiversioning works. */
+/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-require-ifunc "" } */
+/* { dg-options "-O2 -fPIC" } */
+
+#include <assert.h>
+
+/* Default version. */
+int foo (); // Extra declaration that is merged with the second one.
+int foo () __attribute__ ((target("default")));
+
+int foo () __attribute__ ((target("arch=corei7")));
+
+int (*p)() = &foo;
+int main ()
+{
+ int val = foo ();
+ assert (val == (*p)());
+
+ /* Check in the exact same order in which the dispatching
+ is expected to happen. */
+ if (__builtin_cpu_is ("corei7"))
+ assert (val == 5);
+ else
+ assert (val == 0);
+
+ return 0;
+}
+
+int __attribute__ ((target("default")))
+foo ()
+{
+ return 0;
+}
+
+int __attribute__ ((target("arch=corei7")))
+foo ()
+{
+ return 5;
+}
--- /dev/null
+/* Test case to check if Multiversioning works. */
+/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-require-ifunc "" } */
+/* { dg-options "-O2 -fPIC" } */
+
+#include <assert.h>
+
+/* Default version. */
+int foo (); // Extra declaration that is merged with the second one.
+int foo () __attribute__ ((target("default")));
+
+int foo () __attribute__ ((target("arch=nehalem")));
+
+int (*p)() = &foo;
+int main ()
+{
+ int val = foo ();
+ assert (val == (*p)());
+
+ /* Check in the exact same order in which the dispatching
+ is expected to happen. */
+ if (__builtin_cpu_is ("corei7"))
+ assert (val == 5);
+ else
+ assert (val == 0);
+
+ return 0;
+}
+
+int __attribute__ ((target("default")))
+foo ()
+{
+ return 0;
+}
+
+int __attribute__ ((target("arch=nehalem")))
+foo ()
+{
+ return 5;
+}