Hi! On 2022-10-11T12:02:08+0100, Andrew Stubbs wrote: > The testsuite needs a few tweaks following my patches to add multiple vector > sizes for amdgcn. While 'grep'ping for some other GCN thing, this: > --- a/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c > +++ b/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c > @@ -46,5 +46,6 @@ int main () > } > > /* { dg-final { scan-tree-dump {(no need for alias check [^\n]* when VF is 1|no alias between [^\n]* when [^\n]* is outside \(-16, 16\))} "vect" { target vect_element_align } } } */ > -/* { dg-final { scan-tree-dump-times "loop vectorized" 1 "vect" { target vect_element_align } } } */ > +/* { dg-final { scan-tree-dump-times "loop vectorized" 1 "vect" { target { vect_element_align && !amdgcn-*-* } } } } */ > +/* { dg-final { scan-tree-dump-times "loop vectorized" 2 "vect" { target amdgcn-*-* } } } */ ... target selector expression '!amdgcn-*-*' occurred to me as dubious, so I checked, and now pushed to master branch commit 0607307768b66a90e27c5bc91a247acc938f070e "Fix target selector syntax in 'gcc.dg/vect/bb-slp-cond-1.c'", see attached. Cherry-picked pushed to devel/omp/gcc-12 branch commit 5f4d2a15403d7231d7be673a9d633c0b4a22e19c "Fix target selector syntax in 'gcc.dg/vect/bb-slp-cond-1.c'", see attached. Looking into commit r13-3225-gbd9a05594d227cde79a67dc715bd9d82e9c464e9 "amdgcn: vector testsuite tweaks" for a moment, I also did wonder about the following changes, because for 'vect_multiple_sizes' (for example, x86_64-pc-linux-gnu) that seems to lose more specific testing; previously: 'scan-tree-dump-times' exactly once, now: 'scan-tree-dump' any number of times. But I've no clue about that myself, so just mentioning this, in case somebody else has an opinion. ;-) > * gcc.dg/vect/no-vfa-vect-depend-2.c: Change expectations for multiple > vector sizes. > * gcc.dg/vect/pr33953.c: Likewise. > * gcc.dg/vect/pr65947-12.c: Likewise. > * gcc.dg/vect/pr65947-13.c: Likewise. > * gcc.dg/vect/pr80631-2.c: Likewise. > * gcc.dg/vect/slp-reduc-4.c: Likewise. > * gcc.dg/vect/trapv-vect-reduc-4.c: Likewise. > --- a/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c > +++ b/gcc/testsuite/gcc.dg/vect/no-vfa-vect-depend-2.c > @@ -51,4 +51,5 @@ int main (void) > } > > /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" {xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > -/* { dg-final { scan-tree-dump-times "dependence distance negative" 1 "vect" } } */ > +/* { dg-final { scan-tree-dump-times "dependence distance negative" 1 "vect" { target { ! vect_multiple_sizes } } } } */ > +/* { dg-final { scan-tree-dump "dependence distance negative" "vect" { target vect_multiple_sizes } } } */ > --- a/gcc/testsuite/gcc.dg/vect/pr33953.c > +++ b/gcc/testsuite/gcc.dg/vect/pr33953.c > @@ -29,6 +29,7 @@ void blockmove_NtoN_blend_noremap32 (const UINT32 *srcdata, int srcwidth, > } > > /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { ! vect_multiple_sizes } xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > +/* { dg-final { scan-tree-dump "vectorizing stmts using SLP" "vect" { target vect_multiple_sizes xfail { vect_no_align && { ! vect_hw_misalign } } } } } */ > --- a/gcc/testsuite/gcc.dg/vect/pr65947-12.c > +++ b/gcc/testsuite/gcc.dg/vect/pr65947-12.c > @@ -42,5 +42,6 @@ main (void) > } > > /* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 2 "vect" } } */ > -/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 2 "vect" { target vect_fold_extract_last } } } */ > +/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 2 "vect" { target { vect_fold_extract_last && { ! vect_multiple_sizes } } } } } */ > +/* { dg-final { scan-tree-dump "optimizing condition reduction with FOLD_EXTRACT_LAST" "vect" { target { vect_fold_extract_last && vect_multiple_sizes } } } } */ > /* { dg-final { scan-tree-dump-not "condition expression based on integer induction." "vect" } } */ > --- a/gcc/testsuite/gcc.dg/vect/pr65947-13.c > +++ b/gcc/testsuite/gcc.dg/vect/pr65947-13.c > @@ -44,4 +44,5 @@ main (void) > > /* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 2 "vect" } } */ > /* { dg-final { scan-tree-dump-times "condition expression based on integer induction." 2 "vect" { xfail vect_fold_extract_last } } } */ > -/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 2 "vect" { target vect_fold_extract_last } } } */ > +/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 2 "vect" { target { vect_fold_extract_last && { ! vect_multiple_sizes } } } } } */ > +/* { dg-final { scan-tree-dump "optimizing condition reduction with FOLD_EXTRACT_LAST" "vect" { target { vect_fold_extract_last && vect_multiple_sizes } } } } */ > --- a/gcc/testsuite/gcc.dg/vect/pr80631-2.c > +++ b/gcc/testsuite/gcc.dg/vect/pr80631-2.c > @@ -75,4 +75,5 @@ main () > > /* { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 5 "vect" { target vect_condition } } } */ > /* { dg-final { scan-tree-dump-times "condition expression based on integer induction." 5 "vect" { target vect_condition xfail vect_fold_extract_last } } } */ > -/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 5 "vect" { target vect_fold_extract_last } } } */ > +/* { dg-final { scan-tree-dump-times "optimizing condition reduction with FOLD_EXTRACT_LAST" 5 "vect" { target { { ! vect_multiple_sizes } && vect_fold_extract_last } } } } */ > +/* { dg-final { scan-tree-dump "optimizing condition reduction with FOLD_EXTRACT_LAST" "vect" { target { vect_multiple_sizes && vect_fold_extract_last } } } } */ > --- a/gcc/testsuite/gcc.dg/vect/slp-reduc-4.c > +++ b/gcc/testsuite/gcc.dg/vect/slp-reduc-4.c > @@ -59,6 +59,7 @@ int main (void) > /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_min_max } } } */ > /* For variable-length SVE, the number of scalar statements in the > reduction exceeds the number of elements in a 128-bit granule. */ > -/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { xfail { vect_no_int_min_max || { aarch64_sve && vect_variable_length } } } } } */ > +/* { dg-final { scan-tree-dump-times "vectorizing stmts using SLP" 1 "vect" { target { ! vect_multiple_sizes } xfail { vect_no_int_min_max || { aarch64_sve && vect_variable_length } } } } } */ > +/* { dg-final { scan-tree-dump "vectorizing stmts using SLP" "vect" { target { vect_multiple_sizes } } } } */ > /* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 0 "vect" { xfail { aarch64_sve && vect_variable_length } } } } */ > --- a/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c > +++ b/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c > @@ -50,6 +50,7 @@ int main (void) > > /* We can't handle the first loop with variable-length vectors and so > fall back to the fixed-length mininum instead. */ > -/* { dg-final { scan-tree-dump-times "Detected reduction\\." 3 "vect" { xfail vect_variable_length } } } */ > +/* { dg-final { scan-tree-dump-times "Detected reduction\\." 3 "vect" { target { ! vect_multiple_sizes } xfail vect_variable_length } } } */ > +/* { dg-final { scan-tree-dump "Detected reduction\\." "vect" { target vect_multiple_sizes } } } */ > /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { target { ! vect_no_int_min_max } } } } */ > /* { dg-final { scan-tree-dump-times {using an in-order \(fold-left\) reduction} 1 "vect" } } */ Grüße Thomas ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955