Thanks a lot ! I will send V2 for Richi to review.



juzhe.zh...@rivai.ai
 
From: Andrew Stubbs
Date: 2023-11-07 20:05
To: juzhe.zh...@rivai.ai; gcc-patches
CC: jeffreyalaw; rguenther
Subject: Re: [PATCH] test: Fix FAIL of pr97428.c for RVV
On 07/11/2023 12:03, juzhe.zh...@rivai.ai wrote:
> Sorry I made a mistake here.
> 
> Does it work for you ?
> 
> /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2 
> "vect" { target { { vect_hw_misalign } && { ! vect512 } } } } } */
> /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 
> "vect" { target { vect512 } } } } */
> 
> Tested on RVV is OK.
 
5 PASS on amdgcn also.
 
Andrew
 
> ------------------------------------------------------------------------
> juzhe.zh...@rivai.ai
> 
>     *From:* Andrew Stubbs <mailto:a...@codesourcery.com>
>     *Date:* 2023-11-07 19:44
>     *To:* juzhe.zh...@rivai.ai <mailto:juzhe.zh...@rivai.ai>;
>     gcc-patches <mailto:gcc-patches@gcc.gnu.org>
>     *CC:* jeffreyalaw <mailto:jeffreya...@gmail.com>; rguenther
>     <mailto:rguent...@suse.de>
>     *Subject:* Re: [PATCH] test: Fix FAIL of pr97428.c for RVV
>     On 07/11/2023 11:24, juzhe.zh...@rivai.ai wrote:
>      > Oh. Sorry maybe it's better like this:
>      >
>      > /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 2
>      > "vect" { target { { ! vect_hw_misalign } || { vect512 } } } } } */
>      > /* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4
>      > "vect" { target{ ! vect512 } } } } */
>     The conditions are backwards; this expects vect512 machines to match
>     twice. Also I think there's a space missing.
>     Andrew
>      >
>      >
>     ------------------------------------------------------------------------
>      > juzhe.zh...@rivai.ai
>      >
>      >     *From:* juzhe.zh...@rivai.ai <mailto:juzhe.zh...@rivai.ai>
>      >     *Date:* 2023-11-07 19:23
>      >     *To:* ams <mailto:a...@codesourcery.com>; gcc-patches
>      >     <mailto:gcc-patches@gcc.gnu.org>
>      >     *CC:* jeffreyalaw <mailto:jeffreya...@gmail.com>; rguenther
>      >     <mailto:rguent...@suse.de>
>      >     *Subject:* Re: Re: [PATCH] test: Fix FAIL of pr97428.c for RVV
>      >     Do you mean this ?
>      >
>      >     /* { dg-final { scan-tree-dump-times "vectorizing stmts using
>     SLP" 2
>      >     "vect" { target { { ! vect_hw_misalign } || { vect512 } } } }
>     } */
>      >     /* { dg-final { scan-tree-dump-times "vectorizing stmts using
>     SLP" 4
>      >     "vect" { xfail { ! vect512 } } } } */
>      >
>      >     Could you try again ? If it works for you, I am gonna send V2
>     patch
>      >     to Richi.
>      >
>      >     Thank you so much for help.
>      >    
>     ------------------------------------------------------------------------
>      >     juzhe.zh...@rivai.ai
>      >
>      >         *From:* Andrew Stubbs <mailto:a...@codesourcery.com>
>      >         *Date:* 2023-11-07 19:21
>      >         *To:* juzhe.zh...@rivai.ai <mailto:juzhe.zh...@rivai.ai>;
>      >         gcc-patches <mailto:gcc-patches@gcc.gnu.org>
>      >         *CC:* jeffreyalaw <mailto:jeffreya...@gmail.com>; rguenther
>      >         <mailto:rguent...@suse.de>
>      >         *Subject:* Re: [PATCH] test: Fix FAIL of pr97428.c for RVV
>      >         On 07/11/2023 11:05, juzhe.zh...@rivai.ai wrote:
>      >          > Could you try this ?
>      >          >
>      >          > /* { dg-final { scan-tree-dump-times "vectorizing
>     stmts using
>      >         SLP" 2
>      >          > "vect" { xfail { { ! vect_hw_misalign } || { vect512 }
>     } } } } */
>      >          > /* { dg-final { scan-tree-dump-times "vectorizing
>     stmts using
>      >         SLP" 4
>      >          > "vect" { xfail { ! vect512 } } } } */
>      >         PASS: gcc.dg/vect/pr97428.c (test for excess errors)
>      >         PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect "Detected
>      >         interleaving
>      >         load of size 8"
>      >         PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect "Detected
>      >         interleaving
>      >         store of size 16"
>      >         gcc.dg/vect/pr97428.c: pattern found 4 times
>      >         XFAIL: gcc.dg/vect/pr97428.c scan-tree-dump-times vect
>     "vectorizing
>      >         stmts using SLP" 2
>      >         PASS: gcc.dg/vect/pr97428.c scan-tree-dump-times vect
>      >         "vectorizing stmts
>      >         using SLP" 4
>      >         PASS: gcc.dg/vect/pr97428.c scan-tree-dump-not vect "gap of 6
>      >         elements"
>      >         The passes are all correct (assuming that 4 matches are a
>     valid
>      >         number),
>      >         but if you have mutliple patterns with contractictory
>      >         expectations then
>      >         you probably want to use "target" rather than "xfail" to
>     avoid
>      >         the noise
>      >         (and invert the conditions, obviously).
>      >         Andrew
>      >          >
>      >        
>     ------------------------------------------------------------------------
>      >          > juzhe.zh...@rivai.ai
>      >          >
>      >          >     *From:* Andrew Stubbs <mailto:a...@codesourcery.com>
>      >          >     *Date:* 2023-11-07 18:59
>      >          >     *To:* juzhe.zh...@rivai.ai
>     <mailto:juzhe.zh...@rivai.ai>;
>      >          >     gcc-patches <mailto:gcc-patches@gcc.gnu.org>
>      >          >     *CC:* jeffreyalaw <mailto:jeffreya...@gmail.com>;
>     rguenther
>      >          >     <mailto:rguent...@suse.de>
>      >          >     *Subject:* Re: [PATCH] test: Fix FAIL of pr97428.c
>     for RVV
>      >          >     On 07/11/2023 10:10, juzhe.zh...@rivai.ai wrote:
>      >          >      > So, this patch not only fixes RVV FAIL, but
>     also fixes
>      >         GCN ?
>      >          >     Before the patch I have:
>      >          >     PASS: gcc.dg/vect/pr97428.c (test for excess errors)
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect
>     "Detected
>      >         interleaving
>      >          >     load of size 8"
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect
>     "Detected
>      >         interleaving
>      >          >     store of size 16"
>      >          >     gcc.dg/vect/pr97428.c: pattern found 4 times
>      >          >     XFAIL: gcc.dg/vect/pr97428.c scan-tree-dump-times vect
>      >         "vectorizing
>      >          >     stmts using SLP" 2
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump-not
>     vect "gap
>      >         of 6 elements"
>      >          >     With the patch I now get:
>      >          >     PASS: gcc.dg/vect/pr97428.c (test for excess errors)
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect
>     "Detected
>      >         interleaving
>      >          >     load of size 8"
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump vect
>     "Detected
>      >         interleaving
>      >          >     store of size 16"
>      >          >     gcc.dg/vect/pr97428.c: pattern found 4 times
>      >          >     XFAIL: gcc.dg/vect/pr97428.c scan-tree-dump-times vect
>      >         "vectorizing
>      >          >     stmts using SLP" 2
>      >          >     XPASS: gcc.dg/vect/pr97428.c scan-tree-dump-times vect
>      >         "vectorizing
>      >          >     stmts using SLP" 4
>      >          >     PASS: gcc.dg/vect/pr97428.c scan-tree-dump-not
>     vect "gap
>      >         of 6 elements"
>      >          >     It's different, but not "fixed".
>      >          >     Andrew
>      >          >      >
>      >          >      >
>      >          >      >
>      >          >
>      >        
>     ------------------------------------------------------------------------
>      >          >      > juzhe.zh...@rivai.ai
>      >          >      >
>      >          >      >     *From:* Andrew Stubbs
>     <mailto:a...@codesourcery.com>
>      >          >      >     *Date:* 2023-11-07 18:09
>      >          >      >     *To:* Juzhe-Zhong
>     <mailto:juzhe.zh...@rivai.ai>;
>      >          >      >     gcc-patches@gcc.gnu.org
>      >         <mailto:gcc-patches@gcc.gnu.org>
>      >          >      >     *CC:* jeffreya...@gmail.com
>      >         <mailto:jeffreya...@gmail.com>;
>      >          >      >     rguent...@suse.de <mailto:rguent...@suse.de>
>      >          >      >     *Subject:* Re: [PATCH] test: Fix FAIL of
>     pr97428.c
>      >         for RVV
>      >          >      >     On 07/11/2023 07:44, Juzhe-Zhong wrote:
>      >          >      >      > This test shows vectorizing stmts using
>     SLP 4 times
>      >          >     instead of 2
>      >          >      >     for RVV.
>      >          >      >      > The reason is RVV has 512 bit vector.
>      >          >      >      > Here is comparison between RVV ans ARM SVE:
>      >          >      >      > https://godbolt.org/z/xc5KE5rPs
>      >          >      >      >
>      >          >      >      > But I notice AMDGCN also has 512 bit vector,
>      >         seems this patch
>      >          >      >     will cause FAIL in GCN ?
>      >          >      >      >
>      >          >      >      > Not sure whether GCN is 2 times or 4 times ?
>      >          >      >     The pattern matches 4 times on GCN.
>      >          >      >      > gcc/testsuite/ChangeLog:
>      >          >      >      >
>      >          >      >      > * gcc.dg/vect/pr97428.c: Fix FAIL for RVV.
>      >          >      >      >
>      >          >      >      > ---
>      >          >      >      >   gcc/testsuite/gcc.dg/vect/pr97428.c |
>     3 ++-
>      >          >      >      >   1 file changed, 2 insertions(+), 1
>     deletion(-)
>      >          >      >      >
>      >          >      >      > diff --git
>     a/gcc/testsuite/gcc.dg/vect/pr97428.c
>      >          >      >     b/gcc/testsuite/gcc.dg/vect/pr97428.c
>      >          >      >      > index ad6416096aa..352c9bf04a7 100644
>      >          >      >      > --- a/gcc/testsuite/gcc.dg/vect/pr97428.c
>      >          >      >      > +++ b/gcc/testsuite/gcc.dg/vect/pr97428.c
>      >          >      >      > @@ -43,5 +43,6 @@ void foo_i2(dcmlx4_t
>     dst[],
>      >         const dcmlx_t
>      >          >      >     src[], int n)
>      >          >      >      >   /* { dg-final { scan-tree-dump "Detected
>      >         interleaving
>      >          >     store of
>      >          >      >     size 16" "vect" } } */
>      >          >      >      >   /* We're not able to peel & apply
>     re-aligning
>      >         to make
>      >          >     accesses
>      >          >      >     well-aligned for !vect_hw_misalign,
>      >          >      >      >      but we could by peeling the stores for
>      >         alignment and
>      >          >      >     applying re-aligning loads.  */
>      >          >      >      > -/* { dg-final { scan-tree-dump-times
>      >         "vectorizing stmts using
>      >          >      >     SLP" 2 "vect" { xfail { ! vect_hw_misalign
>     } } } } */
>      >          >      >      > +/* { dg-final { scan-tree-dump-times
>      >         "vectorizing stmts using
>      >          >      >     SLP" 2 "vect" { xfail { { !
>     vect_hw_misalign } ||
>      >         { vect512 }
>      >          >     } } } } */
>      >          >      >      > +/* { dg-final { scan-tree-dump-times
>      >         "vectorizing stmts using
>      >          >      >     SLP" 4 "vect" { xfail { { !
>     vect_hw_misalign } ||
>      >         { ! vect512
>      >          >     } } }
>      >          >      >     } } */
>      >          >      >      >   /* { dg-final { scan-tree-dump-not
>     "gap of 6
>      >         elements"
>      >          >     "vect" }
>      >          >      >     } */
>      >          >      >
>      >          >
>      >
> 
 
 

Reply via email to