i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
authorRichard Henderson <rth@redhat.com>
Mon, 27 Dec 2004 09:35:54 +0000 (01:35 -0800)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 27 Dec 2004 09:35:54 +0000 (01:35 -0800)
        * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.

        * gcc.dg/vect/vect-27a.c, gcc.dg/vect/vect-29a.c,
        gcc.dg/vect/vect-48a.c, gcc.dg/vect/vect-56a.c,
        gcc.dg/vect/vect-72a.c, gcc.dg/vect/vect-77a.c: Remove.

From-SVN: r92637

gcc/ChangeLog
gcc/config/i386/i386.h
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/vect/vect-27a.c [deleted file]
gcc/testsuite/gcc.dg/vect/vect-29a.c [deleted file]
gcc/testsuite/gcc.dg/vect/vect-48a.c [deleted file]
gcc/testsuite/gcc.dg/vect/vect-56a.c [deleted file]
gcc/testsuite/gcc.dg/vect/vect-72a.c [deleted file]
gcc/testsuite/gcc.dg/vect/vect-77a.c [deleted file]

index 6d26e5bc3e3e6ec8e0df1ddbf393ee1193290aa0..e84e90aeeaa1e219ee2c186fc34467c61ed83387 100644 (file)
@@ -1,3 +1,7 @@
+2004-12-27  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
+
 2004-12-26  Richard Henderson  <rth@redhat.com>
 
        * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
index d4d7f1ca420d5cd158f3497aed6b9a4dae412cb4..9d86b59453ea66b250851806e43c6ec580a922d8 100644 (file)
@@ -1085,8 +1085,9 @@ do {                                                                      \
     ((MODE) == DImode || (MODE) == V8QImode || (MODE) == V4HImode      \
      || (MODE) == V2SImode || (MODE) == SImode)
 
-#define UNITS_PER_SIMD_WORD \
-    (TARGET_SSE ? 16 : TARGET_MMX || TARGET_3DNOW ? 8 : 0)
+/* ??? No autovectorization into MMX or 3DNOW until we can reliably
+   place emms and femms instructions.  */
+#define UNITS_PER_SIMD_WORD (TARGET_SSE ? 16 : 0)
 
 #define VALID_FP_MODE_P(MODE)                                          \
     ((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode          \
index 4630b0626ea80d90539c1b8bb9b79760ffcedf99..4608c672401f9a3fe23424e0d226c55b6d798693 100644 (file)
@@ -1,3 +1,9 @@
+2004-12-27  Richard Henderson  <rth@redhat.com>
+
+       * gcc.dg/vect/vect-27a.c, gcc.dg/vect/vect-29a.c,
+       gcc.dg/vect/vect-48a.c, gcc.dg/vect/vect-56a.c,
+       gcc.dg/vect/vect-72a.c, gcc.dg/vect/vect-77a.c: Remove.
+
 2004-12-26  Richard Henderson  <rth@redhat.com>
 
        * gcc.dg/compat/compat-common.h (CINT, CDBL): Use multiplication
diff --git a/gcc/testsuite/gcc.dg/vect/vect-27a.c b/gcc/testsuite/gcc.dg/vect/vect-27a.c
deleted file mode 100644 (file)
index 2c6d4bd..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 128
-
-/* unaligned load.  */
-
-int main1 ()
-{
-  int i;
-  int ia[N];
-  int ib[N+1];
-
-  for (i=0; i < N; i++)
-    {
-      ib[i] = i;
-    }
-
-  for (i = 1; i <= N; i++)
-    {
-      ia[i-1] = ib[i];
-    }
-
-  /* check results:  */
-  for (i = 1; i <= N; i++)
-    {
-      if (ia[i-1] != ib[i])
-        abort ();
-    }
-
-  return 0;
-}
-
-int main (void)
-{ 
-  check_vect ();
-  
-  return main1 ();
-}
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* } } } */
-
diff --git a/gcc/testsuite/gcc.dg/vect/vect-29a.c b/gcc/testsuite/gcc.dg/vect/vect-29a.c
deleted file mode 100644 (file)
index d63b633..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 128
-#define OFF 3
-
-/* unaligned load.  */
-
-int main1 (int off)
-{
-  int i;
-  int ia[N];
-  int ib[N+OFF];
-
-  for (i = 0; i < N+OFF; i++)
-    {
-      ib[i] = i;
-    }
-
-  for (i = 0; i < N; i++)
-    {
-      ia[i] = ib[i+off];
-    }
-
-  /* check results:  */
-  for (i = 0; i < N; i++)
-    {
-      if (ia[i] != ib[i+off])
-        abort ();
-    }
-
-  return 0;
-}
-
-int main (void)
-{ 
-  check_vect ();
-  
-  main1 (0); /* aligned */
-  main1 (OFF); /* unaligned */
-  return 0;
-}
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* } } } */
-
diff --git a/gcc/testsuite/gcc.dg/vect/vect-48a.c b/gcc/testsuite/gcc.dg/vect/vect-48a.c
deleted file mode 100644 (file)
index 401da6c..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-  
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 256
-
-typedef short ashort __attribute__ ((__aligned__(16)));
-
-void bar (short *pa, short *pb, short *pc) 
-{
-  int i;
-
-  /* check results:  */
-  for (i = 0; i < N; i++)
-    {
-      if (pa[i] != (pb[i] + pc[i]))
-       abort ();
-    }
-
-  return;
-}
-
-
-int
-main1 (ashort * __restrict__ pa, short * __restrict__ pb, short * __restrict__ pc)
-{
-  int i;
-
-  for (i = 0; i < N; i++)
-    {
-      pa[i] = pb[i] + pc[i];
-    }
-
-  bar (pa,pb,pc);
-
-  return 0;
-}
-
-int main (void)
-{
-  int i;
-  ashort a[N];
-  ashort b[N+1] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
-  ashort c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
-
-  check_vect ();
-
-  main1 (a,b,c);
-  main1 (a,&b[1],c);
-
-  return 0;
-}
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* alpha*-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-56a.c b/gcc/testsuite/gcc.dg/vect/vect-56a.c
deleted file mode 100644 (file)
index 1cd117e..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 256
-
-typedef short ashort __attribute__ ((__aligned__(16)));
-
-void bar (ashort *pa, ashort *pb, ashort *pc)
-{
-  int i;
-
-  /* check results:  */
-  for (i = 0; i < N/2; i++)
-    {
-      if (pa[i] != (pb[i+1] + pc[i+1]))
-       abort ();
-    }
-
-  return;
-}
-
-
-int
-main1 (ashort * __restrict__ pa, ashort * __restrict__ pb, ashort * __restrict__ pc)
-{
-  int i;
-
-  for (i = 0; i < N/2; i++)
-    {
-      pa[i] = pb[i+1] + pc[i+1];
-    }
-
-  bar (pa,pb,pc);
-
-  return 0;
-}
-
-int main (void)
-{
-  int i;
-  ashort a[N];
-  ashort b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-  ashort c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
-
-  check_vect ();
-
-  main1 (a,b,c);
-  return 0;
-}
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* alpha*-*-* } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-72a.c b/gcc/testsuite/gcc.dg/vect/vect-72a.c
deleted file mode 100644 (file)
index 64a584d..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 128
-
-/* unaligned load.  */
-
-int main1 ()
-{
-  int i;
-  char ia[N];
-  char ib[N+1];
-
-  for (i=0; i < N+1; i++)
-    {
-      ib[i] = i;
-    }
-
-  for (i = 1; i < N+1; i++)
-    {
-      ia[i-1] = ib[i];
-    }
-
-  /* check results:  */
-  for (i = 1; i <= N; i++)
-    {
-      if (ia[i-1] != ib[i])
-        abort ();
-    }
-
-  return 0;
-}
-
-int main (void)
-{ 
-  check_vect ();
-  
-  return main1 ();
-}
-
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* } } } */
-
-
diff --git a/gcc/testsuite/gcc.dg/vect/vect-77a.c b/gcc/testsuite/gcc.dg/vect/vect-77a.c
deleted file mode 100644 (file)
index 5e10d28..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/* { dg-require-effective-target vect_int } */
-/* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -mmmx" { target i?86-*-* x86_64-*-* } } */
-
-#include <stdarg.h>
-#include "tree-vect.h"
-
-#define N 8
-#define OFF 8
-
-typedef int aint __attribute__ ((__aligned__(16)));
-
-aint ib[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
-
-int main1 (aint *ib, int off)
-{
-  int i;
-  int ia[N];
-
-  for (i = 0; i < N; i++)
-    {
-      ia[i] = ib[i+off];
-    }
-
-
-  /* check results:  */
-  for (i = 0; i < N; i++)
-    {
-     if (ia[i] != ib[i+off])
-        abort ();
-    }
-
-  return 0;
-}
-
-int main (void)
-{
-  check_vect ();
-
-  main1 (ib, 8);
-  return 0;
-}
-
-
-/* This fails to vectorize for 64-bit powerpc but there's no way to
-   specify that in an xfail list.  */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail sparc*-*-* alpha*-*-* } } } */