On Fri, 15 Sep 2023, Juzhe-Zhong wrote: > This test failed in RISC-V: > FAIL: gcc.dg/vect/slp-1.c -flto -ffat-lto-objects scan-tree-dump-times vect > "vectorizing stmts using SLP" 4 > FAIL: gcc.dg/vect/slp-1.c scan-tree-dump-times vect "vectorizing stmts using > SLP" 4 > > Because this loop: > /* SLP with unrolling by 8. */ > for (i = 0; i < N; i++) > { > out[i*5] = 8; > out[i*5 + 1] = 7; > out[i*5 + 2] = 81; > out[i*5 + 3] = 28; > out[i*5 + 4] = 18; > } > > is using vect_load_lanes with array size = 5. > instead of SLP. > > When we adjust the COST of LANES load store, then it will use SLP.
OK. > gcc/testsuite/ChangeLog: > > * gcc.dg/vect/slp-1.c: Add vect_stried5. > > --- > gcc/testsuite/gcc.dg/vect/slp-1.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/gcc/testsuite/gcc.dg/vect/slp-1.c > b/gcc/testsuite/gcc.dg/vect/slp-1.c > index 82e4f6469fb..d4a13f12df6 100644 > --- a/gcc/testsuite/gcc.dg/vect/slp-1.c > +++ b/gcc/testsuite/gcc.dg/vect/slp-1.c > @@ -122,5 +122,5 @@ int main (void) > } > > /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */ > -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" > } } */ > - > +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 4 "vect" > { target {! vect_strided5 } } } } */ > +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 3 "vect" > { target vect_strided5 } } } */ > -- 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)