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