diff options
author | Richard Henderson <rth@redhat.com> | 2004-12-27 01:35:54 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2004-12-27 01:35:54 -0800 |
commit | accde4cfac29504186f6c6f2cffb7680281cbd54 (patch) | |
tree | 27ca79485bd0dbdef9a42c9f2a4f213a52a2d869 /gcc | |
parent | d833cfb0415986ea6211b79621b38516034ab16e (diff) | |
download | gcc-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/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/i386/i386.h | 5 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-27a.c | 45 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-29a.c | 48 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-48a.c | 56 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-56a.c | 54 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-72a.c | 46 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/vect/vect-77a.c | 46 |
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*-*-* } } } */ |