pr20122.c: Fix test (now vectorized, with versioning for aliasing).
* testsuite/gcc.dg/vect/pr20122.c: Fix test (now vectorized, with versioning for aliasing). * testsuite/gcc.dg/vect/vect-35.c: Likewise. * testsuite/gcc.dg/vect/vect-iv-6.c: Fix test for vect_no_align targets. * testsuite/gcc.dg/vect/vect-multitypes-11.c: Likewise. From-SVN: r127621
This commit is contained in:
parent
500f8f7b5f
commit
66d229b835
5 changed files with 23 additions and 12 deletions
|
@ -1,3 +1,12 @@
|
|||
2007-08-19 Dorit Nuzman <dorit@il.ibm.com>
|
||||
|
||||
* testsuite/gcc.dg/vect/pr20122.c: Fix test (now vectorized, with
|
||||
versioning for aliasing).
|
||||
* testsuite/gcc.dg/vect/vect-35.c: Likewise.
|
||||
|
||||
* testsuite/gcc.dg/vect/vect-iv-6.c: Fix test for vect_no_align targets.
|
||||
* testsuite/gcc.dg/vect/vect-multitypes-11.c: Likewise.
|
||||
|
||||
2007-08-18 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
PR preprocessor/32974:
|
||||
|
|
|
@ -7,7 +7,8 @@ short Kernshort[24] __attribute__ ((__aligned__(16)));
|
|||
static void VecBug(short Kernel[8][24]) __attribute__((noinline));
|
||||
static void VecBug2(short Kernel[8][24]) __attribute__((noinline));
|
||||
|
||||
/* Not vectorizable: Kernel may alias Kernshort - a global array. */
|
||||
/* Kernel may alias Kernshort - a global array.
|
||||
Use versioning for aliasing. */
|
||||
static void VecBug(short Kernel[8][24])
|
||||
{
|
||||
int k,i;
|
||||
|
@ -48,7 +49,8 @@ int main (int argc, char **argv)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
|
||||
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 1 "vect" { target vect_no_align } } } */
|
||||
/* The loops in VecBug and VecBug2 require versioning for alignment.
|
||||
The loop in main is aligned. */
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */
|
||||
/* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { target vect_no_align } } } */
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
int main1 ()
|
||||
{
|
||||
union {
|
||||
char a[N] __attribute__ ((__aligned__(16)));
|
||||
char b[N] __attribute__ ((__aligned__(16)));
|
||||
unsigned char a[N] __attribute__ ((__aligned__(16)));
|
||||
unsigned char b[N] __attribute__ ((__aligned__(16)));
|
||||
} s;
|
||||
int i;
|
||||
|
||||
|
@ -19,8 +19,8 @@ int main1 ()
|
|||
s.b[i] = 3*i;
|
||||
}
|
||||
|
||||
/* Can't vectorize - dependence analysis fails cause s.a and s.b may
|
||||
overlap. */
|
||||
/* Dependence analysis fails cause s.a and s.b may overlap.
|
||||
Use runtime aliasing test with versioning. */
|
||||
for (i = 0; i < N; i++)
|
||||
{
|
||||
s.a[i] = s.b[i] + 1;
|
||||
|
@ -44,6 +44,6 @@ int main (void)
|
|||
}
|
||||
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|
||||
/* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
||||
|
|
|
@ -17,7 +17,8 @@ int main1 (int X)
|
|||
by the loop-header phi (as opposed to the other uses of k that are
|
||||
defined in the loop), in which case we exercise the fact that we
|
||||
reuse the same vector def-use-cycle for both uses.
|
||||
Peeling to align the store is also applied. */
|
||||
Peeling to align the store is also applied. This peeling also aligns
|
||||
the load (as they have the same misalignment). */
|
||||
|
||||
do {
|
||||
arr2[i+1] = 2*k;
|
||||
|
@ -45,5 +46,5 @@ int main (void)
|
|||
return main1 (3);
|
||||
}
|
||||
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
||||
|
|
|
@ -40,6 +40,5 @@ int main (void)
|
|||
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_unpack } } } */
|
||||
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } */
|
||||
/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_no_align && vect_unpack } } } } */
|
||||
/* { dg-final { cleanup-tree-dump "vect" } } */
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue