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
This commit is contained in:
Richard Henderson 2004-12-27 01:35:54 -08:00 committed by Richard Henderson
parent d833cfb041
commit accde4cfac
9 changed files with 13 additions and 297 deletions

View 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

View 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 \

View 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

View file

@ -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*-*-* } } } */

View file

@ -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*-*-* } } } */

View file

@ -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*-*-* } } } */

View file

@ -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*-*-* } } } */

View file

@ -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*-*-* } } } */

View file

@ -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*-*-* } } } */