Fix some of vect-avg-*.c testcases

Message ID 20240130051949.2722035-1-quic_apinski@quicinc.com
State Accepted
Headers
Series Fix some of vect-avg-*.c testcases |

Checks

Context Check Description
snail/gcc-patch-check success Github commit url

Commit Message

Andrew Pinski (QUIC) Jan. 30, 2024, 5:19 a.m. UTC
  The vect-avg-*.c testcases are trying to make sure
the AVG internal function are used and not
doing promotion to `vector unsigned short`
but when V4QI is implemented, `vector(2) unsigned short`
shows up in the detail dump file and causes the failure.
To fix this checking the optimized dump instead of the vect dump
for `vector unsigned short` to make sure the vectorizer does not
do the promotion.

Built and tested for aarch64-linux-gnu.

gcc/testsuite/ChangeLog:

	* gcc.dg/vect/vect-avg-1.c: Check optimized dump
	for `vector *signed short` instead of the `vect` dump.
	* gcc.dg/vect/vect-avg-11.c: Likewise.
	* gcc.dg/vect/vect-avg-12.c: Likewise.
	* gcc.dg/vect/vect-avg-13.c: Likewise.
	* gcc.dg/vect/vect-avg-14.c: Likewise.
	* gcc.dg/vect/vect-avg-2.c: Likewise.
	* gcc.dg/vect/vect-avg-3.c: Likewise.
	* gcc.dg/vect/vect-avg-4.c: Likewise.
	* gcc.dg/vect/vect-avg-5.c: Likewise.
	* gcc.dg/vect/vect-avg-6.c: Likewise.
	* gcc.dg/vect/vect-avg-7.c: Likewise.
	* gcc.dg/vect/vect-avg-8.c: Likewise.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
---
 gcc/testsuite/gcc.dg/vect/vect-avg-1.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-11.c | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-12.c | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-13.c | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-14.c | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-2.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-3.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-4.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-5.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-6.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-7.c  | 3 ++-
 gcc/testsuite/gcc.dg/vect/vect-avg-8.c  | 3 ++-
 12 files changed, 24 insertions(+), 12 deletions(-)
  

Comments

Jeff Law Feb. 2, 2024, 2:21 p.m. UTC | #1
On 1/29/24 22:19, Andrew Pinski wrote:
> The vect-avg-*.c testcases are trying to make sure
> the AVG internal function are used and not
> doing promotion to `vector unsigned short`
> but when V4QI is implemented, `vector(2) unsigned short`
> shows up in the detail dump file and causes the failure.
> To fix this checking the optimized dump instead of the vect dump
> for `vector unsigned short` to make sure the vectorizer does not
> do the promotion.
> 
> Built and tested for aarch64-linux-gnu.
> 
> gcc/testsuite/ChangeLog:
> 
> 	* gcc.dg/vect/vect-avg-1.c: Check optimized dump
> 	for `vector *signed short` instead of the `vect` dump.
> 	* gcc.dg/vect/vect-avg-11.c: Likewise.
> 	* gcc.dg/vect/vect-avg-12.c: Likewise.
> 	* gcc.dg/vect/vect-avg-13.c: Likewise.
> 	* gcc.dg/vect/vect-avg-14.c: Likewise.
> 	* gcc.dg/vect/vect-avg-2.c: Likewise.
> 	* gcc.dg/vect/vect-avg-3.c: Likewise.
> 	* gcc.dg/vect/vect-avg-4.c: Likewise.
> 	* gcc.dg/vect/vect-avg-5.c: Likewise.
> 	* gcc.dg/vect/vect-avg-6.c: Likewise.
> 	* gcc.dg/vect/vect-avg-7.c: Likewise.
> 	* gcc.dg/vect/vect-avg-8.c: Likewise.
Presumably any dump after vectorization is done, perhaps without details 
would work and be (marginally) better than waiting until .optimized 
since passes between vect and the end of the gimple pipeline could be 
making other changes spoiling the verification you're trying to do.  I 
don't see that as likely though.  So I'm OK with this on the trunk.

jeff
  

Patch

diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-1.c b/gcc/testsuite/gcc.dg/vect/vect-avg-1.c
index 4a752cd7d57..052903762c9 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-1.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #include "tree-vect.h"
 
@@ -44,5 +45,5 @@  main (void)
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-11.c b/gcc/testsuite/gcc.dg/vect/vect-avg-11.c
index 0046f8ceb4e..e91be1175c9 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-11.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-11.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #include "tree-vect.h"
 
@@ -54,5 +55,5 @@  main (void)
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-12.c b/gcc/testsuite/gcc.dg/vect/vect-avg-12.c
index f40331ea1bf..cc64c589535 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-12.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-12.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 
@@ -6,5 +7,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-13.c b/gcc/testsuite/gcc.dg/vect/vect-avg-13.c
index 7957c0e4adc..ff55c01dc22 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-13.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-13.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS unsigned
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-14.c b/gcc/testsuite/gcc.dg/vect/vect-avg-14.c
index 8ab11f74e94..4161a08161c 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-14.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-14.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-2.c b/gcc/testsuite/gcc.dg/vect/vect-avg-2.c
index b5586b5f013..a58122c9906 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-2.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-2.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 
@@ -6,5 +7,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-3.c b/gcc/testsuite/gcc.dg/vect/vect-avg-3.c
index 104fe961393..1ae689491e8 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-3.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-3.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS unsigned
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-4.c b/gcc/testsuite/gcc.dg/vect/vect-avg-4.c
index 92181d7fc3d..87fb826a7fc 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-4.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-4.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-5.c b/gcc/testsuite/gcc.dg/vect/vect-avg-5.c
index 6bdaeff0d5a..73dcb369c9e 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-5.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-5.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #include "tree-vect.h"
 
@@ -48,5 +49,5 @@  main (void)
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-6.c b/gcc/testsuite/gcc.dg/vect/vect-avg-6.c
index efe97b8a5f1..2cf48a4cd34 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-6.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-6.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 
@@ -6,5 +7,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_FLOOR} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-7.c b/gcc/testsuite/gcc.dg/vect/vect-avg-7.c
index 62a8474f690..365ce7a3f7b 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-7.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-7.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS unsigned
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-avg-8.c b/gcc/testsuite/gcc.dg/vect/vect-avg-8.c
index cc7c4cde6b0..b8e4c04b068 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-avg-8.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-avg-8.c
@@ -1,4 +1,5 @@ 
 /* { dg-require-effective-target vect_int } */
+/* { dg-additional-options "-fdump-tree-optimized" } */
 
 #define SIGNEDNESS signed
 #define BIAS 1
@@ -7,5 +8,5 @@ 
 
 /* { dg-final { scan-tree-dump "vect_recog_average_pattern: detected" "vect" } } */
 /* { dg-final { scan-tree-dump {\.AVG_CEIL} "vect" { target vect_avg_qi } } } */
-/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "vect" { target vect_avg_qi } } } */
+/* { dg-final { scan-tree-dump-not {vector\([^\n]*short} "optimized" { target vect_avg_qi } } } */
 /* { dg-final { scan-tree-dump-times "vectorized 1 loop" 1 "vect" { target vect_avg_qi } } } */