aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-12-27 01:35:54 -0800
committerRichard Henderson <rth@gcc.gnu.org>2004-12-27 01:35:54 -0800
commitaccde4cfac29504186f6c6f2cffb7680281cbd54 (patch)
tree27ca79485bd0dbdef9a42c9f2a4f213a52a2d869 /gcc
parentd833cfb0415986ea6211b79621b38516034ab16e (diff)
downloadgcc-accde4cfac29504186f6c6f2cffb7680281cbd54.zip
gcc-accde4cfac29504186f6c6f2cffb7680281cbd54.tar.gz
gcc-accde4cfac29504186f6c6f2cffb7680281cbd54.tar.bz2
i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
* 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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.h5
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-27a.c45
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-29a.c48
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-48a.c56
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-56a.c54
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-72a.c46
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-77a.c46
9 files changed, 13 insertions, 297 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6d26e5b..e84e90a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/i386/i386.h b/gcc/config/i386/i386.h
index d4d7f1c..9d86b59 100644
--- a/gcc/config/i386/i386.h
+++ b/gcc/config/i386/i386.h
@@ -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 \
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 4630b06..4608c67 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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
index 2c6d4bd..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-27a.c
+++ /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
index d63b633..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-29a.c
+++ /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
index 401da6c..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-48a.c
+++ /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
index 1cd117e..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-56a.c
+++ /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
index 64a584d..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-72a.c
+++ /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
index 5e10d28c9..0000000
--- a/gcc/testsuite/gcc.dg/vect/vect-77a.c
+++ /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*-*-* } } } */