Message ID | mptpnhmlo2k.fsf@arm.com |
---|---|
State | New |
Headers | show |
Series | Add more markup to vect-alias-check-{1,18}.c (PR 92543) | expand |
On Wed, Nov 20, 2019 at 1:39 PM Richard Sandiford <richard.sandiford@arm.com> wrote: > > In vect-alias-check-1.c we unroll the inner loop and then vectorise > the stores at a[c + 1][b]. Since the access has no guaranteed > alignemnt, we need a realignment mechanism or support for unaligned > accesses in order to vectorise. > > In vect-alias-check-18.c we use a reverse access and so need > permute support in order to vectorise. > > I'm not really sure when this part of the testsuite prefers > { xfail { ! foo } } and when it prefers { target foo }. xfail > seems like the most common choice for the alignment restriction, > whereas vect_int and vect_perm are mostly dg-require-effective-target > style features, so I went with that combination. > > Tested on aarch64-linux-gnu, x86_64-linux-gnu, powerpc64-linux-gnu > (Power 7) and sparc-sun-solaris2.11. OK to install? OK. > Richard > > > 2019-11-20 Richard Sandiford <richard.sandiford@arm.com> > > gcc/testsuite/ > PR testsuite/92543 > * gcc.dg/vect/vect-alias-check-1.c: XFAIL the alias check message > if there is no realignment support and no support for unaligned > accesses. > * gcc.dg/vect/vect-alias-check-18.c: Restrict the test for the > alias message to targets that have permute support. > > Index: gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c > =================================================================== > --- gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c 2019-11-19 16:25:49.000000000 +0000 > +++ gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c 2019-11-20 12:35:16.140748524 +0000 > @@ -15,5 +15,5 @@ fn1 () > } > > /* { dg-final { scan-tree-dump "improved number of alias checks from \[0-9\]* to 1" "vect" } } */ > -/* { dg-final { scan-tree-dump "using an address-based overlap test" "vect" } } */ > +/* { dg-final { scan-tree-dump "using an address-based overlap test" "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > /* { dg-final { scan-tree-dump-not "using an index-based" "vect" } } */ > Index: gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c > =================================================================== > --- gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c 2019-11-19 16:25:49.000000000 +0000 > +++ gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c 2019-11-20 12:35:16.140748524 +0000 > @@ -60,5 +60,5 @@ main (void) > } > > /* { dg-final { scan-tree-dump {flags: *WAR\n} "vect" { target vect_int } } } */ > -/* { dg-final { scan-tree-dump "using an index-based WAR/WAW test" "vect" } } */ > +/* { dg-final { scan-tree-dump "using an index-based WAR/WAW test" "vect" { target { vect_int && vect_perm } } } } */ > /* { dg-final { scan-tree-dump-not "using an address-based" "vect" } } */
Index: gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c 2019-11-19 16:25:49.000000000 +0000 +++ gcc/testsuite/gcc.dg/vect/vect-alias-check-1.c 2019-11-20 12:35:16.140748524 +0000 @@ -15,5 +15,5 @@ fn1 () } /* { dg-final { scan-tree-dump "improved number of alias checks from \[0-9\]* to 1" "vect" } } */ -/* { dg-final { scan-tree-dump "using an address-based overlap test" "vect" } } */ +/* { dg-final { scan-tree-dump "using an address-based overlap test" "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ /* { dg-final { scan-tree-dump-not "using an index-based" "vect" } } */ Index: gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c =================================================================== --- gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c 2019-11-19 16:25:49.000000000 +0000 +++ gcc/testsuite/gcc.dg/vect/vect-alias-check-18.c 2019-11-20 12:35:16.140748524 +0000 @@ -60,5 +60,5 @@ main (void) } /* { dg-final { scan-tree-dump {flags: *WAR\n} "vect" { target vect_int } } } */ -/* { dg-final { scan-tree-dump "using an index-based WAR/WAW test" "vect" } } */ +/* { dg-final { scan-tree-dump "using an index-based WAR/WAW test" "vect" { target { vect_int && vect_perm } } } } */ /* { dg-final { scan-tree-dump-not "using an address-based" "vect" } } */