tree-vect.h (check_vect): Handle AVX2, remove XOP handling.
authorUros Bizjak <ubizjak@gmail.com>
Fri, 13 May 2016 17:27:13 +0000 (19:27 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 13 May 2016 17:27:13 +0000 (19:27 +0200)
* gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
remove XOP handling.

From-SVN: r236216

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/tree-vect.h
gcc/testsuite/gcc.target/i386/pr61599-1.c
gcc/testsuite/gcc.target/i386/pr61599-2.c

index 3e971cd7d907931990d653718f60d20ea5e822cb..3858cd462852b7d51ccf0de7b125b826cb7ca44e 100644 (file)
@@ -1,3 +1,8 @@
+2016-05-13  Uros Bizjak  <ubizjak@gmail.com>
+
+       * gcc.dg/vect/tree-vect.h (check_vect): Handle AVX2,
+       remove XOP handling.
+
 2016-05-13  Nathan Sidwell  <nathan@acm.org>
 
        * gcc.dg/atomic-noinline-aux.c: Include stddef.h. Fix
index 0853e3f76be96090211749b1df3e897e4db5874d..21bd1148b4b18f6c5cd2775da69e1cf2b737ea96 100644 (file)
@@ -32,25 +32,26 @@ check_vect (void)
   asm volatile (".long 0x10000484");
 #elif defined(__i386__) || defined(__x86_64__)
   {
-    unsigned int a, b, c, d, want_level, want_c, want_d;
+    unsigned int a, b, c, d,
+      want_level, want_b = 0, want_c = 0, want_d = 0;
 
     /* Determine what instruction set we've been compiled for, and detect
        that we're running with it.  This allows us to at least do a compile
        check for, e.g. SSE4.1 when the machine only supports SSE2.  */
-# ifdef __XOP__
-    want_level = 0x80000001, want_c = bit_XOP, want_d = 0;
+#if defined(__AVX2__)
+    want_level = 7, want_b = bit_AVX2;
 # elif defined(__AVX__)
-    want_level = 1, want_c = bit_AVX, want_d = 0;
+    want_level = 1, want_c = bit_AVX;
 # elif defined(__SSE4_1__)
-    want_level = 1, want_c = bit_SSE4_1, want_d = 0;
+    want_level = 1, want_c = bit_SSE4_1;
 # elif defined(__SSSE3__)
-    want_level = 1, want_c = bit_SSSE3, want_d = 0;
+    want_level = 1, want_c = bit_SSSE3;
 # else
-    want_level = 1, want_c = 0, want_d = bit_SSE2;
+    want_level = 1, want_d = bit_SSE2;
 # endif
 
     if (!__get_cpuid (want_level, &a, &b, &c, &d)
-       || ((c & want_c) | (d & want_d)) == 0)
+       || ((b & want_b) | (c & want_c) | (d & want_d)) == 0)
       exit (0);
   }
 #elif defined(__sparc__)
index 847e736ac977de7196305fdb0915dc3a9daf6683..71b1c2f02dd712c8b46ca15f88e4754a18ebf609 100644 (file)
@@ -1,7 +1,7 @@
 /* PR target/61599 */
-/* { dg-options "-mcmodel=medium -fdata-sections" { target lp64 } } */
-/* { dg-additional-sources pr61599-2.c } */
 /* { dg-do run { target lp64 } } */
+/* { dg-additional-sources pr61599-2.c } */
+/* { dg-options "-mcmodel=medium -fdata-sections" } */
 
 char a[1*1024*1024*1024];
 char b[1*1024*1024*1024];
index 22a53a45d0053c8e8641090914468fd09d556c3e..f0d46020dea153901958f04c946ccb9dcac91591 100644 (file)
@@ -1,7 +1,8 @@
 /* PR target/61599 */
-/* With -mcmodel=medium, all the arrays will be treated as large data.  */
-/* { dg-options "-mcmodel=medium -fdata-sections" { target lp64 } } */
 /* { dg-do compile { target lp64 } } */
+/* { dg-options "-mcmodel=medium -fdata-sections" { target lp64 } } */
+
+/* With -mcmodel=medium, all the arrays will be treated as large data.  */
 
 extern char a[];
 extern char b[];