diff mbox series

Add more markup to vect-alias-check-{1,18}.c (PR 92543)

Message ID mptpnhmlo2k.fsf@arm.com
State New
Headers show
Series Add more markup to vect-alias-check-{1,18}.c (PR 92543) | expand

Commit Message

Richard Sandiford Nov. 20, 2019, 12:38 p.m. UTC
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?

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.

Comments

Richard Biener Nov. 21, 2019, 2:10 p.m. UTC | #1
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" } } */
diff mbox series

Patch

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