Fix target arch attribute for Skylake.
authorJulia Koval <julia.koval@intel.com>
Wed, 11 Nov 2015 11:40:50 +0000 (12:40 +0100)
committerKirill Yukhin <kyukhin@gcc.gnu.org>
Wed, 11 Nov 2015 11:40:50 +0000 (11:40 +0000)
gcc/
* config/i386/i386.c: Handle "skylake" and
"skylake-avx512".

gcc/testsuite/
* g++.dg/ext/mv16.C: New functions.

From-SVN: r230153

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ext/mv16.C

index 13ed0d8256c768e6934f8044e6f43720c6949533..c621b1c4d7573c070826c2ca506826c9f36fba3d 100644 (file)
@@ -1,3 +1,8 @@
+2015-11-11  Julia Koval  <julia.koval@intel.com>
+
+       * config/i386/i386.c: Handle "skylake" and
+       "skylake-avx512".
+
 2015-11-11  Martin Liska  <mliska@suse.cz>
 
        * gimple-ssa-strength-reduction.c (create_phi_basis):
index 9205d497f5a1931f5b202b8409e09bd57032017b..2fab5ca6b2187925348eef2b4c91e9599ca452f5 100644 (file)
@@ -36108,7 +36108,11 @@ get_builtin_code_for_version (tree decl, tree *predicate_list)
              priority = P_PROC_AVX;
              break;
            case PROCESSOR_HASWELL:
-             if (new_target->x_ix86_isa_flags & OPTION_MASK_ISA_ADX)
+             if (new_target->x_ix86_isa_flags & OPTION_MASK_ISA_AVX512VL)
+               arg_str = "skylake-avx512";
+             else if (new_target->x_ix86_isa_flags & OPTION_MASK_ISA_XSAVES)
+               arg_str = "skylake";
+             else if (new_target->x_ix86_isa_flags & OPTION_MASK_ISA_ADX)
                arg_str = "broadwell";
              else
                arg_str = "haswell";
index 59cae93a19b572d674786eb10b1ea4d92966e05a..7862991c67fa5c77883c7583e73f46d7c4d66093 100644 (file)
@@ -1,3 +1,7 @@
+2015-11-11  Julia Koval  <julia.koval@intel.com>
+
+       * g++.dg/ext/mv16.C: New functions.
+
 2015-11-11  Richard Biener  <rguenth@gcc.gnu.org>
            Jiong Wang      <jiong.wang@arm.com>
 
index 8992bfc6fc147ac442b02c057bfaf7d1a2f7ad44..a3a0fe804fd6f248a19b2e1a94993ffe1abcae30 100644 (file)
@@ -44,6 +44,18 @@ foo ()
   return 12;
 }
 
+int __attribute__ ((target("arch=broadwell"))) foo () {
+  return 13;
+}
+
+int __attribute__ ((target("arch=skylake"))) foo () {
+  return 14;
+}
+
+int __attribute__ ((target("arch=skylake-avx512"))) foo () {
+  return 15;
+}
+
 int main ()
 {
   int val = foo ();
@@ -58,6 +70,12 @@ int main ()
     assert (val == 9);
   else if (__builtin_cpu_is ("haswell"))
     assert (val == 12);
+  else if (__builtin_cpu_is ("broadwell"))
+    assert (val == 13);
+  else if (__builtin_cpu_is ("skylake"))
+    assert (val == 14);
+  else if (__builtin_cpu_is ("skylake-avx512"))
+    assert (val == 15);
   else
     assert (val == 0);