On Tue, Oct 8, 2024 at 11:14 AM Hongtao Liu <crazy...@gmail.com> wrote: > > On Tue, Oct 8, 2024 at 4:56 PM Richard Biener > <richard.guent...@gmail.com> wrote: > > > > On Tue, Oct 8, 2024 at 10:36 AM liuhongt <hongtao....@intel.com> wrote: > > > > > > gcc/testsuite/ChangeLog: > > > > > > * gcc.dg/fstack-protector-strong.c: Adjust > > > scan-assembler-times. > > > * gcc.dg/graphite/scop-6.c: Add > > > -Wno-aggressive-loop-optimizations. > > > * gcc.dg/graphite/scop-9.c: Ditto. > > > * gcc.dg/tree-ssa/ivopts-lt-2.c: Add -fno-tree-vectorize. > > > * gcc.dg/tree-ssa/ivopts-lt.c: Ditto. > > > * gcc.dg/tree-ssa/loop-16.c: Ditto. > > > * gcc.dg/tree-ssa/loop-28.c: Ditto. > > > * gcc.dg/tree-ssa/loop-bound-2.c: Ditto. > > > * gcc.dg/tree-ssa/loop-bound-4.c: Ditto. > > > * gcc.dg/tree-ssa/loop-bound-6.c: Ditto. > > > * gcc.dg/tree-ssa/predcom-4.c: Ditto. > > > * gcc.dg/tree-ssa/predcom-5.c: Ditto. > > > * gcc.dg/tree-ssa/scev-11.c: Ditto. > > > * gcc.dg/tree-ssa/scev-9.c: Ditto. > > > * gcc.dg/tree-ssa/split-path-11.c: Ditto. > > > * gcc.dg/unroll-8.c: Ditto. > > > * gcc.dg/var-expand1.c: Ditto. > > > * gcc.dg/vect/vect-cost-model-6.c: Ditto. > > > * gcc.target/i386/pr86270.c: Ditto. > > > * gcc.target/i386/pr86722.c: Ditto. > > > * gcc.target/x86_64/abi/callabi/leaf-2.c: Ditto. > > > --- > > > gcc/testsuite/gcc.dg/fstack-protector-strong.c | 2 +- > > > gcc/testsuite/gcc.dg/graphite/scop-6.c | 1 + > > > gcc/testsuite/gcc.dg/graphite/scop-9.c | 1 + > > > gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/loop-16.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/loop-28.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/scev-11.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/scev-9.c | 2 +- > > > gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c | 2 +- > > > gcc/testsuite/gcc.dg/unroll-8.c | 3 +-- > > > gcc/testsuite/gcc.dg/var-expand1.c | 2 +- > > > gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c | 2 +- > > > gcc/testsuite/gcc.target/i386/pr86270.c | 2 +- > > > gcc/testsuite/gcc.target/i386/pr86722.c | 2 +- > > > gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c | 2 +- > > > 21 files changed, 21 insertions(+), 20 deletions(-) > > > > > > diff --git a/gcc/testsuite/gcc.dg/fstack-protector-strong.c > > > b/gcc/testsuite/gcc.dg/fstack-protector-strong.c > > > index 94dc3508f1a..b9f63966b7c 100644 > > > --- a/gcc/testsuite/gcc.dg/fstack-protector-strong.c > > > +++ b/gcc/testsuite/gcc.dg/fstack-protector-strong.c > > > @@ -154,4 +154,4 @@ void foo12 () > > > global3 (); > > > } > > > > > > -/* { dg-final { scan-assembler-times "stack_chk_fail" 12 } } */ > > > +/* { dg-final { scan-assembler-times "stack_chk_fail" 11 } } */ > > > diff --git a/gcc/testsuite/gcc.dg/graphite/scop-6.c > > > b/gcc/testsuite/gcc.dg/graphite/scop-6.c > > > index 9bc1d9f4ccd..6ea887d9041 100644 > > > --- a/gcc/testsuite/gcc.dg/graphite/scop-6.c > > > +++ b/gcc/testsuite/gcc.dg/graphite/scop-6.c > > > @@ -26,4 +26,5 @@ int toto() > > > return a[3][5] + b[2]; > > > } > > > > The testcase looks bogus: > > > > b[i+k] = b[i+k-5] + 2; > > > > accesses b[-3], can you instead adjust the inner loop to start with k == 4? > > > > > +/* { dg-additional-options "-Wno-aggressive-loop-optimizations" } */ > > > /* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} > > > } */ > > > diff --git a/gcc/testsuite/gcc.dg/graphite/scop-9.c > > > b/gcc/testsuite/gcc.dg/graphite/scop-9.c > > > index b19291be2f8..2a36bf92fd4 100644 > > > --- a/gcc/testsuite/gcc.dg/graphite/scop-9.c > > > +++ b/gcc/testsuite/gcc.dg/graphite/scop-9.c > > > @@ -21,4 +21,5 @@ int toto() > > > return a[3][5] + b[2]; > > > } > > > > Likewise. > > > > > +/* { dg-additional-options "-Wno-aggressive-loop-optimizations" } */ > > > /* { dg-final { scan-tree-dump-times "number of SCoPs: 1" 1 "graphite"} > > > } */ > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c > > > index bdbdbff19ff..be325775fbb 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt-2.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fno-tree-loop-distribute-patterns > > > -fdump-tree-ivopts" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize > > > -fno-tree-loop-distribute-patterns -fdump-tree-ivopts" } */ > > > /* { dg-skip-if "PR68644" { hppa*-*-* powerpc*-*-* } } */ > > > > > > void > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c > > > index 71d7f672c44..8d2b9d39355 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/ivopts-lt.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fno-tree-loop-distribute-patterns > > > -fdump-tree-ivopts" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize > > > -fno-tree-loop-distribute-patterns -fdump-tree-ivopts" } */ > > > /* { dg-require-effective-target stdint_types } */ > > > > > > #include "stdint.h" > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-16.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/loop-16.c > > > index 6bcb56cf3a9..92587f17df0 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-16.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-16.c > > > @@ -2,7 +2,7 @@ > > > at most 100 times, thus the (32-bit) induction variables do not > > > overflow, > > > and we may use 64-bit variable to represent them. */ > > > > > > -/* { dg-options "-O2 -fdump-tree-optimized" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized" } */ > > > /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ > > > > > > unsigned a[100]; > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-28.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/loop-28.c > > > index 3ca0ab8ea5f..85769c914c3 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-28.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-28.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */ > > > -/* { dg-options "-O2 -fprefetch-loop-arrays -march=amdfam10 > > > -fdump-tree-optimized -fdump-tree-aprefetch --param > > > max-unrolled-insns=1000" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fprefetch-loop-arrays > > > -march=amdfam10 -fdump-tree-optimized -fdump-tree-aprefetch --param > > > max-unrolled-insns=1000" } */ > > > > > > char x[100000]; > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c > > > index 802dd290e50..d93e5654e7a 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-2.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ivopts-details" } */ > > > > > > int *a; > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c > > > index b9d7d4196aa..543d9a5120b 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-4.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ivopts-details" } */ > > > > > > int *a; > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c > > > index 8319434985d..74f88f17f78 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-bound-6.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ivopts-details" } */ > > > > > > int *a; > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c > > > index af9ae0e0f3d..7c99ccd109a 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-4.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do run } */ > > > -/* { dg-options "-O2 -funroll-loops --param max-unroll-times=8 > > > -fpredictive-commoning -fdump-tree-pcom-details-blocks" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -funroll-loops --param > > > max-unroll-times=8 -fpredictive-commoning > > > -fdump-tree-pcom-details-blocks" } */ > > > > What's the issue with predcom here? Is it Invalid Sum triggering? > for x86 > when with -march=cascadelake, the failure is > FAIL: gcc: gcc.dg/tree-ssa/predcom-4.c scan-tree-dump-not pcom "Invalid sum" > FAIL: gcc: gcc.dg/tree-ssa/predcom-5.c scan-tree-dump-not pcom "Invalid sum" > > w/o -march=cascadelake the failure is > FAIL: gcc: gcc.dg/tree-ssa/predcom-4.c scan-tree-dump-times pcom > "Unrolling 3 times." 1 > FAIL: gcc: gcc.dg/tree-ssa/predcom-5.c scan-tree-dump-times pcom > "Unrolling 3 times." 1 > > for arm > > FAIL: gcc.dg/tree-ssa/predcom-4.c scan-tree-dump-times pcom "Unrolling > 3 times." 1 > FAIL: gcc.dg/tree-ssa/predcom-5.c scan-tree-dump-not pcom "Invalid sum" > FAIL: gcc.dg/tree-ssa/predcom-5.c scan-tree-dump-times pcom "Unrolling > 3 times." 1
OK, the unrolling amount is indeed expected to change. OK to disable vectorization as you did for this. Richard. > > > > > /* Test for predictive commoning of expressions, without reassociation. > > > */ > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c > > > index 52adb59d669..6b8a13fe830 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-5.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do run } */ > > > -/* { dg-options "-O2 -funroll-loops --param max-unroll-times=8 > > > -fpredictive-commoning -fdump-tree-pcom-details-blocks" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -funroll-loops --param > > > max-unroll-times=8 -fpredictive-commoning > > > -fdump-tree-pcom-details-blocks" } */ > > > > > > /* Test for predictive commoning of expressions, with reassociation. */ > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-11.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/scev-11.c > > > index f15688538ea..2506eb89b74 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-11.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-11.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ivopts-details" } */ > > > > > > int a[128]; > > > extern int b[]; > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/scev-9.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/scev-9.c > > > index cbd7c85edfa..7381e961e93 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/scev-9.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/scev-9.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-tree-ivopts-details" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ivopts-details" } */ > > > > > > int *a; > > > > > > diff --git a/gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c > > > b/gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c > > > index 6c15c16151b..1f042414467 100644 > > > --- a/gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c > > > +++ b/gcc/testsuite/gcc.dg/tree-ssa/split-path-11.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fsplit-paths -fdump-tree-split-paths-details -w" } > > > */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fsplit-paths > > > -fdump-tree-split-paths-details -w" } */ > > > > > > void foo(unsigned long long *M) > > > { > > > diff --git a/gcc/testsuite/gcc.dg/unroll-8.c > > > b/gcc/testsuite/gcc.dg/unroll-8.c > > > index 4388f47d4c7..6cd8dacc365 100644 > > > --- a/gcc/testsuite/gcc.dg/unroll-8.c > > > +++ b/gcc/testsuite/gcc.dg/unroll-8.c > > > @@ -1,6 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fdump-rtl-loop2_unroll-details-blocks > > > -funroll-loops" } */ > > > -/* { dg-additional-options "-fno-tree-vectorize" { target amdgcn-*-* } } > > > */ > > > +/* { dg-options "-O2 -fno-tree-vectorize > > > -fdump-rtl-loop2_unroll-details-blocks -funroll-loops" } */ > > > > > > struct a {int a[7];}; > > > int t(struct a *a, int n) > > > diff --git a/gcc/testsuite/gcc.dg/var-expand1.c > > > b/gcc/testsuite/gcc.dg/var-expand1.c > > > index 3d536cef2b3..1f3f3b3338c 100644 > > > --- a/gcc/testsuite/gcc.dg/var-expand1.c > > > +++ b/gcc/testsuite/gcc.dg/var-expand1.c > > > @@ -2,7 +2,7 @@ > > > /* We don't (and don't want to) perform this optimisation on soft-float > > > targets, where each addition is a library call. */ > > > /* { dg-require-effective-target hard_float } */ > > > -/* { dg-options "-O2 -funroll-loops --fast-math > > > -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -funroll-loops --fast-math > > > -fvariable-expansion-in-unroller -fdump-rtl-loop2_unroll" } */ > > > /* { dg-additional-options "--param max-completely-peel-times=16 > > > --param max-unroll-times=8" { target s390*-*-* } } */ > > > > > > extern void abort (void); > > > diff --git a/gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c > > > b/gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c > > > index 552febb5fee..6547814544e 100644 > > > --- a/gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c > > > +++ b/gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c > > > @@ -2,7 +2,7 @@ > > > /* { dg-additional-options "-O2 -ftree-vectorize > > > -fvect-cost-model=very-cheap" } */ > > > > > > void > > > -f (int *restrict x, int *restrict y) > > > +f (int * x, int * y) > > > > Please remove this testcase - even with fully masking we'd need alias > > versioning. > > > > The testcase was speicifcially testing no epilogue peeling is done > > with very-cheap. > > > > The rest of the adjustments are OK > > > > > { > > > for (unsigned int i = 0; i < 1023; ++i) > > > x[i] += y[i]; > > > diff --git a/gcc/testsuite/gcc.target/i386/pr86270.c > > > b/gcc/testsuite/gcc.target/i386/pr86270.c > > > index 98b012caf23..68562446fa4 100644 > > > --- a/gcc/testsuite/gcc.target/i386/pr86270.c > > > +++ b/gcc/testsuite/gcc.target/i386/pr86270.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -fno-unroll-loops" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -fno-unroll-loops" } */ > > > > > > int *a; > > > long len; > > > diff --git a/gcc/testsuite/gcc.target/i386/pr86722.c > > > b/gcc/testsuite/gcc.target/i386/pr86722.c > > > index 95ddbd8ddb9..dd01ceaa0df 100644 > > > --- a/gcc/testsuite/gcc.target/i386/pr86722.c > > > +++ b/gcc/testsuite/gcc.target/i386/pr86722.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile { target { ! ia32 } } } */ > > > -/* { dg-options "-O2 -mno-avx -msse" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -mno-avx -msse" } */ > > > > > > void f(double*d,double*e){ > > > for(;d<e;++d) > > > diff --git a/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c > > > b/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c > > > index 2a54bc89cfc..5f3d3e166af 100644 > > > --- a/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c > > > +++ b/gcc/testsuite/gcc.target/x86_64/abi/callabi/leaf-2.c > > > @@ -1,5 +1,5 @@ > > > /* { dg-do compile } */ > > > -/* { dg-options "-O2 -mabi=sysv" } */ > > > +/* { dg-options "-O2 -fno-tree-vectorize -mabi=sysv" } */ > > > > > > extern int glb1, gbl2, gbl3; > > > > > > -- > > > 2.31.1 > > > > > > > -- > BR, > Hongtao