On Wed, Oct 9, 2024 at 3:27 AM liuhongt <[email protected]> wrote:
>
> Update in V3.
> >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?
>
> Changed, also adjust b[100] to b[200] to avoid array out of bound.
>
> >Please remove this testcase - even with fully masking we'd need alias
> >versioning.
>
> Changed.
>
> Ready push to trunk.
OK.
Thanks,
Richard.
> gcc/testsuite/ChangeLog:
>
> * gcc.dg/fstack-protector-strong.c: Adjust
> scan-assembler-times.
> * gcc.dg/graphite/scop-6.c: Refine the testcase to avoid array
> out of bounds.
> * 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: Removed.
> * 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 | 7 +++----
> gcc/testsuite/gcc.dg/graphite/scop-9.c | 4 ++--
> 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 | 12 ------------
> 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, 23 insertions(+), 37 deletions(-)
> delete mode 100644 gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c
>
> 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..e7e0a080c5f 100644
> --- a/gcc/testsuite/gcc.dg/graphite/scop-6.c
> +++ b/gcc/testsuite/gcc.dg/graphite/scop-6.c
> @@ -4,7 +4,7 @@ int toto()
> {
> int i, j, k;
> int a[100][100];
> - int b[100];
> + int b[200];
>
> for (i = 1; i < 100; i++)
> {
> @@ -18,9 +18,8 @@ int toto()
> for (k = 1; k < 100; k++)
> b[i+k] = b[i+k-1] + 2;
> }
> -
> - for (k = 1; k < 100; k++)
> - b[i+k] = b[i+k-5] + 2;
> + for (k = 4; k < 100; k++)
> + b[i+k] = b[i+k-5] + 2;
> }
>
> return a[3][5] + b[2];
> diff --git a/gcc/testsuite/gcc.dg/graphite/scop-9.c
> b/gcc/testsuite/gcc.dg/graphite/scop-9.c
> index b19291be2f8..2676452b1e6 100644
> --- a/gcc/testsuite/gcc.dg/graphite/scop-9.c
> +++ b/gcc/testsuite/gcc.dg/graphite/scop-9.c
> @@ -4,7 +4,7 @@ int toto()
> {
> int i, j, k;
> int a[100][100];
> - int b[100];
> + int b[200];
>
> for (i = 1; i < 100; i++)
> {
> @@ -14,7 +14,7 @@ int toto()
> if (i * 2 == i + 8)
> a[i][i] = 2;
>
> - for (k = 1; k < 100; k++)
> + for (k = 4; k < 100; k++)
> b[i+k] = b[i+k-5] + 2;
> }
>
> 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" }
> */
>
> /* 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
> deleted file mode 100644
> index 552febb5fee..00000000000
> --- a/gcc/testsuite/gcc.dg/vect/vect-cost-model-6.c
> +++ /dev/null
> @@ -1,12 +0,0 @@
> -/* { dg-do compile } */
> -/* { dg-additional-options "-O2 -ftree-vectorize
> -fvect-cost-model=very-cheap" } */
> -
> -void
> -f (int *restrict x, int *restrict y)
> -{
> - for (unsigned int i = 0; i < 1023; ++i)
> - x[i] += y[i];
> -}
> -
> -/* { dg-final { scan-tree-dump {LOOP VECTORIZED} vect { target { vect_int &&
> vect_partial_vectors_usage_2 } } } } */
> -/* { dg-final { scan-tree-dump-not {LOOP VECTORIZED} vect { target {
> vect_int && { ! vect_partial_vectors_usage_2 } } } } } */
> 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
>