On Mon, 9 Oct 2023, juzhe.zh...@rivai.ai wrote: > Hi, Richi and Robin. > > Turns out COND(_LEN)?_ADD can't work.
Did you try quoting? Try (_LEN|) maybe. > Is this patch Ok ? Or do you have another solution to change the dump check > for RVV? > > Thanks. > > > > juzhe.zh...@rivai.ai > > From: Juzhe-Zhong > Date: 2023-10-08 09:33 > To: gcc-patches > CC: rguenther; jeffreyalaw; rdapp.gcc; Juzhe-Zhong > Subject: [PATCH V2] TEST: Fix vect_cond_arith_* dump checks for RVV > This patch fixes the following dumple FAILs: > FAIL: gcc.dg/vect/vect-cond-arith-2.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-2.c -flto -ffat-lto-objects scan-tree-dump > vect " = \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-2.c scan-tree-dump optimized " = > \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-2.c scan-tree-dump vect " = \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-4.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-4.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_MUL" > FAIL: gcc.dg/vect/vect-cond-arith-4.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_RDIV" > FAIL: gcc.dg/vect/vect-cond-arith-4.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-4.c scan-tree-dump optimized " = > \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-4.c scan-tree-dump optimized " = > \\.COND_MUL" > FAIL: gcc.dg/vect/vect-cond-arith-4.c scan-tree-dump optimized " = > \\.COND_RDIV" > FAIL: gcc.dg/vect/vect-cond-arith-4.c scan-tree-dump optimized " = > \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-5.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-5.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_MUL" > FAIL: gcc.dg/vect/vect-cond-arith-5.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_RDIV" > FAIL: gcc.dg/vect/vect-cond-arith-5.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-5.c scan-tree-dump optimized " = > \\.COND_ADD" > FAIL: gcc.dg/vect/vect-cond-arith-5.c scan-tree-dump optimized " = > \\.COND_MUL" > FAIL: gcc.dg/vect/vect-cond-arith-5.c scan-tree-dump optimized " = > \\.COND_RDIV" > FAIL: gcc.dg/vect/vect-cond-arith-5.c scan-tree-dump optimized " = > \\.COND_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-6.c -flto -ffat-lto-objects > scan-tree-dump-times optimized " = \\.COND_ADD" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c -flto -ffat-lto-objects > scan-tree-dump-times optimized " = \\.COND_MUL" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c -flto -ffat-lto-objects > scan-tree-dump-times optimized " = \\.COND_RDIV" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c -flto -ffat-lto-objects > scan-tree-dump-times optimized " = \\.COND_SUB" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c scan-tree-dump-times optimized " = > \\.COND_ADD" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c scan-tree-dump-times optimized " = > \\.COND_MUL" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c scan-tree-dump-times optimized " = > \\.COND_RDIV" 1 > FAIL: gcc.dg/vect/vect-cond-arith-6.c scan-tree-dump-times optimized " = > \\.COND_SUB" 1 > > For RVV, the expected dumple IR is COND_LEN_* pattern. > > Also, we are still failing at this check: > > FAIL: gcc.dg/vect/vect-cond-arith-2.c scan-tree-dump optimized " = > \\.COND_LEN_SUB" > FAIL: gcc.dg/vect/vect-cond-arith-2.c -flto -ffat-lto-objects scan-tree-dump > optimized " = \\.COND_LEN_SUB" > > Since we have a known bug in GIMPLE_FOLD that Robin is working on it. > > @Robin: Plz make sure vect-cond-arith-2.c passes with this patch and your bug > fix patch. > > Ok for trunk ? > > gcc/testsuite/ChangeLog: > > * gcc.dg/vect/vect-cond-arith-2.c: Fix dump check for RVV. > * gcc.dg/vect/vect-cond-arith-4.c: Ditto. > * gcc.dg/vect/vect-cond-arith-5.c: Ditto. > * gcc.dg/vect/vect-cond-arith-6.c: Ditto. > > --- > gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c | 4 ++-- > gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c | 8 ++++---- > gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c | 8 ++++---- > gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c | 8 ++++---- > 4 files changed, 14 insertions(+), 14 deletions(-) > > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c > b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c > index 38994ea82a5..3832a660023 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-2.c > @@ -41,5 +41,5 @@ neg_xi (double *x) > return res_3; > } > -/* { dg-final { scan-tree-dump { = \.COND_ADD} "vect" { target { > vect_double_cond_arith && vect_fully_masked } } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_SUB} "optimized" { target { > vect_double_cond_arith && vect_fully_masked } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?ADD} "vect" { target { > vect_double_cond_arith && vect_fully_masked } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?SUB} "optimized" { target > { vect_double_cond_arith && vect_fully_masked } } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c > b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c > index 1af0fe642a0..5bb75206a68 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-4.c > @@ -52,8 +52,8 @@ main (void) > return 0; > } > -/* { dg-final { scan-tree-dump { = \.COND_ADD} "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_SUB} "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_MUL} "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_RDIV} "optimized" { target > vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?ADD} "optimized" { target > vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?SUB} "optimized" { target > vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?MUL} "optimized" { target > vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?RDIV} "optimized" { target > vect_double_cond_arith } } } */ > /* { dg-final { scan-tree-dump-not {VEC_COND_EXPR} "optimized" { target > vect_double_cond_arith } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c > b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c > index ec3d9db4202..8a168081197 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-5.c > @@ -54,8 +54,8 @@ main (void) > return 0; > } > -/* { dg-final { scan-tree-dump { = \.COND_ADD} "optimized" { target { > vect_double_cond_arith && vect_masked_store } } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_SUB} "optimized" { target { > vect_double_cond_arith && vect_masked_store } } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_MUL} "optimized" { target { > vect_double_cond_arith && vect_masked_store } } } } */ > -/* { dg-final { scan-tree-dump { = \.COND_RDIV} "optimized" { target { > vect_double_cond_arith && vect_masked_store } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?ADD} "optimized" { target > { vect_double_cond_arith && vect_masked_store } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?SUB} "optimized" { target > { vect_double_cond_arith && vect_masked_store } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?MUL} "optimized" { target > { vect_double_cond_arith && vect_masked_store } } } } */ > +/* { dg-final { scan-tree-dump { = \.COND_L?E?N?_?RDIV} "optimized" { target > { vect_double_cond_arith && vect_masked_store } } } } */ > /* { dg-final { scan-tree-dump-not {VEC_COND_EXPR} "optimized" { target { > vect_double_cond_arith && vect_masked_store } } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c > b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c > index 2aeebd44f83..c3257890735 100644 > --- a/gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c > +++ b/gcc/testsuite/gcc.dg/vect/vect-cond-arith-6.c > @@ -56,8 +56,8 @@ main (void) > } > /* { dg-final { scan-tree-dump-times {vectorizing stmts using SLP} 4 "vect" { > target vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump-times { = \.COND_ADD} 1 "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump-times { = \.COND_SUB} 1 "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump-times { = \.COND_MUL} 1 "optimized" { target > vect_double_cond_arith } } } */ > -/* { dg-final { scan-tree-dump-times { = \.COND_RDIV} 1 "optimized" { target > vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump-times { = \.COND_L?E?N?_?ADD} 1 "optimized" { > target vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump-times { = \.COND_L?E?N?_?SUB} 1 "optimized" { > target vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump-times { = \.COND_L?E?N?_?MUL} 1 "optimized" { > target vect_double_cond_arith } } } */ > +/* { dg-final { scan-tree-dump-times { = \.COND_L?E?N?_?RDIV} 1 "optimized" > { target vect_double_cond_arith } } } */ > /* { dg-final { scan-tree-dump-not {VEC_COND_EXPR} "optimized" { target > vect_double_cond_arith } } } */ > -- Richard Biener <rguent...@suse.de> SUSE Software Solutions Germany GmbH, Frankenstrasse 146, 90461 Nuernberg, Germany; GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)