public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] testsuite/vect: Make match patterns more accurate.
       [not found]       ` <6de3b340-a5a7-e5a1-aeb1-a4e1d8eac8c8@gmail.com>
@ 2023-08-31 10:05         ` Robin Dapp
  2023-08-31 11:22           ` Richard Biener
  0 siblings, 1 reply; 2+ messages in thread
From: Robin Dapp @ 2023-08-31 10:05 UTC (permalink / raw)
  To: Richard Biener, gcc-patches; +Cc: rdapp.gcc, juzhe.zhong

Hi,

on some targets we fail to vectorize with the first type the vectorizer
tries but succeed with the second.  This patch changes several regex
patterns to reflect that behavior.

Before we would look for a single occurrence of e.g.
"vect_recog_dot_prod_pattern" but would possible find two (one for each
attempted mode).  The new pattern tries to match sequences where we
first have a "vect_recog_dot_prod_pattern" and a "succeeded" afterwards
while making sure there is no "failed" or "Re-trying" in between.

I realized we already only do scan-tree-dump instead of
scan-tree-dump-times in some related testcases, probably for the same
reason but I didn't touch them for now.

Testsuite unchanged on x86, aarch64 and Power10.

Regards
 Robin

gcc/testsuite/ChangeLog:

	* gcc.dg/vect/vect-reduc-dot-s16a.c: Adjust regex pattern.
	* gcc.dg/vect/vect-reduc-dot-s8a.c: Ditto.
	* gcc.dg/vect/vect-reduc-dot-s8b.c: Ditto.
	* gcc.dg/vect/vect-reduc-dot-u16a.c: Ditto.
	* gcc.dg/vect/vect-reduc-dot-u16b.c: Ditto.
	* gcc.dg/vect/vect-reduc-dot-u8a.c: Ditto.
	* gcc.dg/vect/vect-reduc-dot-u8b.c: Ditto.
	* gcc.dg/vect/vect-reduc-pattern-1a.c: Ditto.
	* gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Ditto.
	* gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Ditto.
	* gcc.dg/vect/vect-reduc-pattern-2a.c: Ditto.
	* gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Ditto.
	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Ditto.
---
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c             | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c              | 4 ++--
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c              | 4 ++--
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c             | 5 +++--
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c             | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c              | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c              | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c           | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c           | 2 +-
 gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c | 2 +-
 gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c        | 4 ++--
 13 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
index ffbc9706901..d826828e3d6 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
@@ -51,7 +51,7 @@ main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_sdot_hi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_hi_to_si } } } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
index 05e343ad782..4e1e0b234f4 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
@@ -55,8 +55,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_sdot_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_hi_to_si } } } } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
index 82c648cc73c..cb88ad5b639 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
@@ -53,8 +53,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_qi_to_hi } } } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
index 4bf4a1e3c2c..9adb23a32f6 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
@@ -37,6 +37,7 @@ int main (void)
   for (i=0; i<N; i++) {
     X[i] = i;
     Y[i] = 64-i;
+    __asm__ volatile ("");
   }
 
   dot1 = foo1 (N);
@@ -47,5 +48,5 @@ int main (void)
 }
 
 /* The initialization loop in main also gets vectorized.  */
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { vect_short_mult && vect_widen_sum_hi_to_si } } } } */ 
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_short_mult && vect_widen_sum_hi_to_si } } } } */ 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
index 0fc112012cf..be9ed905b00 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
@@ -46,6 +46,6 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_trunc || vect_udot_hi } } } } */ 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
index e23ebd9b072..969cdafe4a7 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
@@ -53,7 +53,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_udot_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_qi_to_si } } } } */
 
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
index 288be13440d..35627ba4d53 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
@@ -45,7 +45,7 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 
 /* When the vectorizer is enhanced to vectorize accumulation into short for 
    targets that support accumulation into int (powerpc, ia64) we'd have:
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
index 1ddbe96ebc3..eef8b8d29b6 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
@@ -41,6 +41,6 @@ main (void)
   return foo ();
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_hi_to_si } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_hi_to_si } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
index 7ae2c838344..561ed00c77f 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
@@ -41,6 +41,6 @@ main (void)
   return foo ();
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_sum_qi_to_si || vect_unpack } } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { { ! vect_widen_sum_qi_to_si } && { ! vect_unpack } } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
index 91ce0ef934e..cdccd1a3202 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
@@ -41,6 +41,6 @@ main (void)
   return foo ();
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_qi_to_hi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_qi_to_hi } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
index 2190eaa6242..3f23cb859e5 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
@@ -41,6 +41,6 @@ main (void)
   return foo ();
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_hi_to_si } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_hi_to_si } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
index 6ad645b3bdd..c69a8896e5e 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
@@ -42,6 +42,6 @@ main (void)
   return foo ();
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_sum_qi_to_si && vect_unpack } } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { { ! vect_widen_sum_qi_to_si } && { ! vect_unpack } } } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
index 6fc7a282351..751352649ce 100644
--- a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
+++ b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
@@ -46,8 +46,8 @@ int main (void)
   return 0;
 }
 
-/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
-/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
 
 /* When vectorizer is enhanced to vectorize accumulation into short for targets 
    that support accumulation into int (e.g. ia64) we'd have:
-- 
2.41.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] testsuite/vect: Make match patterns more accurate.
  2023-08-31 10:05         ` [PATCH] testsuite/vect: Make match patterns more accurate Robin Dapp
@ 2023-08-31 11:22           ` Richard Biener
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Biener @ 2023-08-31 11:22 UTC (permalink / raw)
  To: Robin Dapp; +Cc: gcc-patches, juzhe.zhong

On Thu, 31 Aug 2023, Robin Dapp wrote:

> Hi,
> 
> on some targets we fail to vectorize with the first type the vectorizer
> tries but succeed with the second.  This patch changes several regex
> patterns to reflect that behavior.
> 
> Before we would look for a single occurrence of e.g.
> "vect_recog_dot_prod_pattern" but would possible find two (one for each
> attempted mode).  The new pattern tries to match sequences where we
> first have a "vect_recog_dot_prod_pattern" and a "succeeded" afterwards
> while making sure there is no "failed" or "Re-trying" in between.
> 
> I realized we already only do scan-tree-dump instead of
> scan-tree-dump-times in some related testcases, probably for the same
> reason but I didn't touch them for now.
> 
> Testsuite unchanged on x86, aarch64 and Power10.

LGTM.

Thanks for discovering the required TCL regex magic.

Richard.

> Regards
>  Robin
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/vect/vect-reduc-dot-s16a.c: Adjust regex pattern.
> 	* gcc.dg/vect/vect-reduc-dot-s8a.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-dot-s8b.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-dot-u16a.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-dot-u16b.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-dot-u8a.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-dot-u8b.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-pattern-1a.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-pattern-1b-big-array.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-pattern-1c-big-array.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-pattern-2a.c: Ditto.
> 	* gcc.dg/vect/vect-reduc-pattern-2b-big-array.c: Ditto.
> 	* gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c: Ditto.
> ---
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c             | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c              | 4 ++--
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c              | 4 ++--
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c             | 5 +++--
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c             | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c              | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c              | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c           | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c           | 2 +-
>  gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c | 2 +-
>  gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c        | 4 ++--
>  13 files changed, 18 insertions(+), 17 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
> index ffbc9706901..d826828e3d6 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s16a.c
> @@ -51,7 +51,7 @@ main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_sdot_hi } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_hi_to_si } } } */
>  
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
> index 05e343ad782..4e1e0b234f4 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8a.c
> @@ -55,8 +55,8 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_sdot_qi } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_hi_to_si } } } } */
>  
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
> index 82c648cc73c..cb88ad5b639 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-s8b.c
> @@ -53,8 +53,8 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { xfail *-*-* } } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_mult_qi_to_hi } } } */
>  
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
> index 4bf4a1e3c2c..9adb23a32f6 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
> @@ -37,6 +37,7 @@ int main (void)
>    for (i=0; i<N; i++) {
>      X[i] = i;
>      Y[i] = 64-i;
> +    __asm__ volatile ("");
>    }
>  
>    dot1 = foo1 (N);
> @@ -47,5 +48,5 @@ int main (void)
>  }
>  
>  /* The initialization loop in main also gets vectorized.  */
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" { xfail *-*-* } } } */
> -/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target { vect_short_mult && vect_widen_sum_hi_to_si } } } } */ 
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" { xfail *-*-* } } } */
> +/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_short_mult && vect_widen_sum_hi_to_si } } } } */ 
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
> index 0fc112012cf..be9ed905b00 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
> @@ -46,6 +46,6 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_pack_trunc || vect_udot_hi } } } } */ 
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
> index e23ebd9b072..969cdafe4a7 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8a.c
> @@ -53,7 +53,7 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_udot_qi } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_mult_qi_to_hi && vect_widen_sum_qi_to_si } } } } */
>  
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
> index 288be13440d..35627ba4d53 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u8b.c
> @@ -45,7 +45,7 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  
>  /* When the vectorizer is enhanced to vectorize accumulation into short for 
>     targets that support accumulation into int (powerpc, ia64) we'd have:
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
> index 1ddbe96ebc3..eef8b8d29b6 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1a.c
> @@ -41,6 +41,6 @@ main (void)
>    return foo ();
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_hi_to_si } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_hi_to_si } } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
> index 7ae2c838344..561ed00c77f 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1b-big-array.c
> @@ -41,6 +41,6 @@ main (void)
>    return foo ();
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_sum_qi_to_si || vect_unpack } } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { { ! vect_widen_sum_qi_to_si } && { ! vect_unpack } } } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
> index 91ce0ef934e..cdccd1a3202 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-1c-big-array.c
> @@ -41,6 +41,6 @@ main (void)
>    return foo ();
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_qi_to_hi } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_qi_to_hi } } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
> index 2190eaa6242..3f23cb859e5 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2a.c
> @@ -41,6 +41,6 @@ main (void)
>    return foo ();
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_widen_sum_hi_to_si } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { ! vect_widen_sum_hi_to_si } } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
> index 6ad645b3bdd..c69a8896e5e 100644
> --- a/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
> +++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-pattern-2b-big-array.c
> @@ -42,6 +42,6 @@ main (void)
>    return foo ();
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_sum_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { vect_widen_sum_qi_to_si && vect_unpack } } } } */
>  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" { target { { ! vect_widen_sum_qi_to_si } && { ! vect_unpack } } } } } */
> diff --git a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
> index 6fc7a282351..751352649ce 100644
> --- a/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
> +++ b/gcc/testsuite/gcc.dg/vect/wrapv-vect-reduc-dot-s8b.c
> @@ -46,8 +46,8 @@ int main (void)
>    return 0;
>  }
>  
> -/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected" 1 "vect" } } */
> -/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_dot_prod_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
> +/* { dg-final { scan-tree-dump-times "vect_recog_widen_mult_pattern: detected(?:(?!failed)(?!Re-trying).)*succeeded" 1 "vect" } } */
>  
>  /* When vectorizer is enhanced to vectorize accumulation into short for targets 
>     that support accumulation into int (e.g. ia64) we'd have:
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-08-31 11:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <D2EA84025EDE337E+2023083015384147564712@rivai.ai>
     [not found] ` <nycvar.YFH.7.77.849.2308300741470.22006@jbgna.fhfr.qr>
     [not found]   ` <fb991e49-b369-4613-2fb4-f0ae5efaff6a@gmail.com>
     [not found]     ` <nycvar.YFH.7.77.849.2308300809380.22006@jbgna.fhfr.qr>
     [not found]       ` <6de3b340-a5a7-e5a1-aeb1-a4e1d8eac8c8@gmail.com>
2023-08-31 10:05         ` [PATCH] testsuite/vect: Make match patterns more accurate Robin Dapp
2023-08-31 11:22           ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).