On Sun, 8 Oct 2023, Juzhe-Zhong wrote: > Even though RVV doesn't enable vec_unpack/vec_pack, it succeed on outer loop > vectorizations.
How so? I think this maybe goes with the other similar change. That is, when we already have specific target checks adding riscv-*-* looks sensible but when we don't we should figure if there's a capability we can (add and) test instead. > Fix these following XPASS FAILs: > > XPASS: gcc.dg/vect/no-scevccp-outer-16.c scan-tree-dump-times vect "OUTER > LOOP VECTORIZED." 1 > XPASS: gcc.dg/vect/no-scevccp-outer-17.c scan-tree-dump-times vect "OUTER > LOOP VECTORIZED." 1 > XPASS: gcc.dg/vect/no-scevccp-outer-19.c scan-tree-dump-times vect "OUTER > LOOP VECTORIZED." 1 > XPASS: gcc.dg/vect/no-scevccp-outer-21.c scan-tree-dump-times vect "OUTER > LOOP VECTORIZED." 1 > > gcc/testsuite/ChangeLog: > > * gcc.dg/vect/no-scevccp-outer-16.c: Fix XPASS for RVV. > * gcc.dg/vect/no-scevccp-outer-17.c: Ditto. > * gcc.dg/vect/no-scevccp-outer-19.c: Ditto. > * gcc.dg/vect/no-scevccp-outer-21.c: Ditto. > > --- > gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c | 2 +- > gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c | 2 +- > gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c | 2 +- > gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c | 2 +- > 4 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c > b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c > index c7c2fa8a504..12179949e00 100644 > --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c > +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-16.c > @@ -59,4 +59,4 @@ int main (void) > return 0; > } > > -/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { ! {vect_unpack } } } } } */ > +/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { { ! {vect_unpack } } && { ! {riscv_v } } } } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c > b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c > index ba904a6c03e..86554a98169 100644 > --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c > +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-17.c > @@ -65,4 +65,4 @@ int main (void) > return 0; > } > > -/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { ! {vect_unpack } } } } } */ > +/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { { ! {vect_unpack } } && { ! {riscv_v } } } } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c > b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c > index 5cd4049d08c..624b54accf4 100644 > --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c > +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-19.c > @@ -49,4 +49,4 @@ int main (void) > return 0; > } > > -/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { ! {vect_unpack } } } } } */ > +/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { { ! {vect_unpack } } && { ! {riscv_v } } } } } } */ > diff --git a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c > b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c > index 72e53c2bfb0..b30a5d78819 100644 > --- a/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c > +++ b/gcc/testsuite/gcc.dg/vect/no-scevccp-outer-21.c > @@ -59,4 +59,4 @@ int main (void) > return 0; > } > > -/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { ! { vect_pack_trunc } } } } } */ > +/* { dg-final { scan-tree-dump-times "OUTER LOOP VECTORIZED." 1 "vect" { > xfail { { ! {vect_pack_trunc } } && { ! {riscv_v } } } } } } */ > -- 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)