public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: Martin Sebor <msebor@gmail.com>
To: Hongtao Liu <crazylht@gmail.com>, Richard Biener <rguenther@suse.de>
Cc: Jakub Jelinek <jakub@redhat.com>,
	Florian Weimer <fweimer@redhat.com>,
	Segher Boessenkool <segher@kernel.crashing.org>,
	Richard Sandiford <richard.sandiford@arm.com>,
	Premachandra.Mallappa@amd.com,
	GCC Patches <gcc-patches@gcc.gnu.org>,
	Bill Schmidt <wschmidt@linux.ibm.com>,
	liuhongt <hongtao.liu@intel.com>,
	Joseph Myers <joseph@codesourcery.com>
Subject: Re: [PATCH] Enable auto-vectorization at O2 with very-cheap cost model.
Date: Sun, 19 Sep 2021 14:13:09 -0600	[thread overview]
Message-ID: <4fe85f3d-b4fd-4419-04f0-c645e23e778d@gmail.com> (raw)
In-Reply-To: <CAMZc-byEj6i-fttnGoDrNZ1GUNJkw_+doun53bUOwfREC6+yyg@mail.gmail.com>

On 9/16/21 3:03 AM, Hongtao Liu via Gcc-patches wrote:
> On Thu, Sep 16, 2021 at 4:23 PM Richard Biener via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>>
>> On Thu, 16 Sep 2021, liuhongt wrote:
>>
>>> Ping
>>> rebased on latest trunk.
>>>
>>> gcc/ChangeLog:
>>>
>>>        * common.opt (ftree-vectorize): Add Var(flag_tree_vectorize).
>>>        * doc/invoke.texi (Options That Control Optimization): Update
>>>        documents.
>>>        * opts.c (default_options_table): Enable auto-vectorization at
>>>        O2 with very-cheap cost model.
>>>        (finish_options): Use cheap cost model for
>>>        explicit -ftree{,-loop}-vectorize.
>>>
>>> gcc/testsuite/ChangeLog:
>>>
>>>        * c-c++-common/Wstringop-overflow-2.c: Adjust testcase.
>>>        * g++.dg/tree-ssa/pr81408.C: Ditto.
>>>        * g++.dg/warn/Wuninitialized-13.C: Ditto.
>>>        * gcc.dg/Warray-bounds-51.c: Ditto.
>>>        * gcc.dg/Warray-parameter-3.c: Ditto.
>>>        * gcc.dg/Wstringop-overflow-13.c: Ditto.
>>>        * gcc.dg/Wstringop-overflow-14.c: Ditto.
>>>        * gcc.dg/Wstringop-overflow-21.c: Ditto.
>>>        * gcc.dg/Wstringop-overflow-68.c: Ditto.
>>>        * gcc.dg/gomp/pr46032-2.c: Ditto.
>>>        * gcc.dg/gomp/pr46032-3.c: Ditto.
>>>        * gcc.dg/gomp/simd-2.c: Ditto.
>>>        * gcc.dg/gomp/simd-3.c: Ditto.
>>>        * gcc.dg/graphite/fuse-1.c: Ditto.
>>>        * gcc.dg/pr67089-6.c: Ditto.
>>>        * gcc.dg/pr82929-2.c: Ditto.
>>>        * gcc.dg/pr82929.c: Ditto.
>>>        * gcc.dg/store_merging_1.c: Ditto.
>>>        * gcc.dg/store_merging_11.c: Ditto.
>>>        * gcc.dg/store_merging_15.c: Ditto.
>>>        * gcc.dg/store_merging_16.c: Ditto.
>>>        * gcc.dg/store_merging_19.c: Ditto.
>>>        * gcc.dg/store_merging_24.c: Ditto.
>>>        * gcc.dg/store_merging_25.c: Ditto.
>>>        * gcc.dg/store_merging_28.c: Ditto.
>>>        * gcc.dg/store_merging_30.c: Ditto.
>>>        * gcc.dg/store_merging_5.c: Ditto.
>>>        * gcc.dg/store_merging_7.c: Ditto.
>>>        * gcc.dg/store_merging_8.c: Ditto.
>>>        * gcc.dg/strlenopt-85.c: Ditto.
>>>        * gcc.dg/tree-ssa/dump-6.c: Ditto.
>>>        * gcc.dg/tree-ssa/pr19210-1.c: Ditto.
>>>        * gcc.dg/tree-ssa/pr47059.c: Ditto.
>>>        * gcc.dg/tree-ssa/pr86017.c: Ditto.
>>>        * gcc.dg/tree-ssa/pr91482.c: Ditto.
>>>        * gcc.dg/tree-ssa/predcom-1.c: Ditto.
>>>        * gcc.dg/tree-ssa/predcom-dse-3.c: Ditto.
>>>        * gcc.dg/tree-ssa/prefetch-3.c: Ditto.
>>>        * gcc.dg/tree-ssa/prefetch-6.c: Ditto.
>>>        * gcc.dg/tree-ssa/prefetch-8.c: Ditto.
>>>        * gcc.dg/tree-ssa/prefetch-9.c: Ditto.
>>>        * gcc.dg/tree-ssa/ssa-dse-18.c: Ditto.
>>>        * gcc.dg/tree-ssa/ssa-dse-19.c: Ditto.
>>>        * gcc.dg/uninit-40.c: Ditto.
>>>        * gcc.dg/unroll-7.c: Ditto.
>>>        * gcc.misc-tests/help.exp: Ditto.
>>>        * gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c: Ditto.
>>>        * gcc.target/i386/pr22141.c: Ditto.
>>>        * gcc.target/i386/pr34012.c: Ditto.
>>>        * gcc.target/i386/pr49781-1.c: Ditto.
>>>        * gcc.target/i386/pr95798-1.c: Ditto.
>>>        * gcc.target/i386/pr95798-2.c: Ditto.
>>>        * gfortran.dg/pr77498.f: Ditto.
>>> ---
>>>   gcc/common.opt                                 |  2 +-
>>>   gcc/doc/invoke.texi                            |  8 +++++---
>>>   gcc/opts.c                                     | 18 +++++++++++++++---
>>>   .../c-c++-common/Wstringop-overflow-2.c        |  2 +-
>>>   gcc/testsuite/g++.dg/tree-ssa/pr81408.C        |  2 +-
>>>   gcc/testsuite/g++.dg/warn/Wuninitialized-13.C  |  2 +-
>>>   gcc/testsuite/gcc.dg/Warray-bounds-51.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/Warray-parameter-3.c      |  2 +-
>>>   gcc/testsuite/gcc.dg/Wstringop-overflow-13.c   |  2 +-
>>>   gcc/testsuite/gcc.dg/Wstringop-overflow-14.c   |  2 +-
>>>   gcc/testsuite/gcc.dg/Wstringop-overflow-21.c   |  2 +-
>>>   gcc/testsuite/gcc.dg/Wstringop-overflow-68.c   |  2 +-
>>>   gcc/testsuite/gcc.dg/gomp/pr46032-2.c          |  2 +-
>>>   gcc/testsuite/gcc.dg/gomp/pr46032-3.c          |  2 +-
>>>   gcc/testsuite/gcc.dg/gomp/simd-2.c             |  2 +-
>>>   gcc/testsuite/gcc.dg/gomp/simd-3.c             |  2 +-
>>>   gcc/testsuite/gcc.dg/graphite/fuse-1.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/pr67089-6.c               |  2 +-
>>>   gcc/testsuite/gcc.dg/pr82929-2.c               |  2 +-
>>>   gcc/testsuite/gcc.dg/pr82929.c                 |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_1.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_11.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_15.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_16.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_19.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_24.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_25.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_28.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_30.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_5.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_7.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/store_merging_8.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/strlenopt-85.c            |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/dump-6.c         |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c      |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/pr47059.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/pr86017.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/pr91482.c        |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c      |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c  |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-18.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-19.c     |  2 +-
>>>   gcc/testsuite/gcc.dg/uninit-40.c               |  2 +-
>>>   gcc/testsuite/gcc.dg/unroll-7.c                |  2 +-
>>>   gcc/testsuite/gcc.misc-tests/help.exp          |  2 +-
>>>   .../i386/avx512vpopcntdqvl-vpopcntd-1.c        |  2 +-
>>>   gcc/testsuite/gcc.target/i386/pr22141.c        |  2 +-
>>>   gcc/testsuite/gcc.target/i386/pr34012.c        |  2 +-
>>>   gcc/testsuite/gcc.target/i386/pr49781-1.c      |  2 +-
>>>   gcc/testsuite/gcc.target/i386/pr95798-1.c      |  2 +-
>>>   gcc/testsuite/gcc.target/i386/pr95798-2.c      |  2 +-
>>>   gcc/testsuite/gfortran.dg/pr77498.f            |  2 +-
>>>   56 files changed, 74 insertions(+), 60 deletions(-)
>>>
>>> diff --git a/gcc/common.opt b/gcc/common.opt
>>> index b921f5e3b25..4f2c0294c29 100644
>>> --- a/gcc/common.opt
>>> +++ b/gcc/common.opt
>>> @@ -3031,7 +3031,7 @@ Perform variable tracking and also tag variables that are uninitialized.
>>>
>>>   ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
>>>   ftree-vectorize
>>> -Common Optimization
>>> +Common Var(flag_tree_vectorize) Optimization
>>>   Enable vectorization on trees.
>>>
>>>   ftree-vectorizer-verbose=
>>> diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
>>> index 78cfc100ac2..be022ef8024 100644
>>> --- a/gcc/doc/invoke.texi
>>> +++ b/gcc/doc/invoke.texi
>>> @@ -10409,9 +10409,13 @@ also turns on the following optimization flags:
>>>   -fstrict-aliasing @gol
>>>   -fthread-jumps @gol
>>>   -ftree-builtin-call-dce @gol
>>> +-ftree-loop-vectorize @gol
>>>   -ftree-pre @gol
>>> +-ftree-slp-vectorize @gol
>>>   -ftree-switch-conversion  -ftree-tail-merge @gol
>>> --ftree-vrp}
>>> +-ftree-vrp @gol
>>> +-fvect-cost-model @gol
>>
>> the above is redundant
>>
>>> +-fvect-cost-model=very-cheap}
>>>
>>>   Please note the warning under @option{-fgcse} about
>>>   invoking @option{-O2} on programs that use computed gotos.
>>> @@ -10431,9 +10435,7 @@ by @option{-O2} and also turns on the following optimization flags:
>>>   -fsplit-loops @gol
>>>   -fsplit-paths @gol
>>>   -ftree-loop-distribution @gol
>>> --ftree-loop-vectorize @gol
>>>   -ftree-partial-pre @gol
>>> --ftree-slp-vectorize @gol
>>>   -funswitch-loops @gol
>>>   -fvect-cost-model @gol
>>
>> likewise - so just remove it here as you are around
>>
>>>   -fvect-cost-model=dynamic @gol
>>> diff --git a/gcc/opts.c b/gcc/opts.c
>>> index 1d2d22d7a3f..cee372a3235 100644
>>> --- a/gcc/opts.c
>>> +++ b/gcc/opts.c
>>> @@ -634,7 +634,8 @@ static const struct default_options default_options_table[] =
>>>       { OPT_LEVELS_2_PLUS, OPT_ftree_switch_conversion, NULL, 1 },
>>>       { OPT_LEVELS_2_PLUS, OPT_ftree_tail_merge, NULL, 1 },
>>>       { OPT_LEVELS_2_PLUS, OPT_ftree_vrp, NULL, 1 },
>>> -    { OPT_LEVELS_2_PLUS, OPT_fvect_cost_model_, NULL, VECT_COST_MODEL_CHEAP },
>>> +    { OPT_LEVELS_2_PLUS, OPT_fvect_cost_model_, NULL,
>>> +      VECT_COST_MODEL_VERY_CHEAP },
>>>       { OPT_LEVELS_2_PLUS, OPT_finline_functions, NULL, 1 },
>>>       { OPT_LEVELS_2_PLUS, OPT_ftree_loop_distribute_patterns, NULL, 1 },
>>>
>>> @@ -646,6 +647,9 @@ static const struct default_options default_options_table[] =
>>>       { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_foptimize_strlen, NULL, 1 },
>>>       { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_freorder_blocks_algorithm_, NULL,
>>>         REORDER_BLOCKS_ALGORITHM_STC },
>>> +    { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_ftree_loop_vectorize, NULL, 1 },
>>> +    { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_ftree_slp_vectorize, NULL, 1 },
>>> +
>>>   #ifdef INSN_SCHEDULING
>>>     /* Only run the pre-regalloc scheduling pass if optimizing for speed.  */
>>>       { OPT_LEVELS_2_PLUS_SPEED_ONLY, OPT_fschedule_insns, NULL, 1 },
>>> @@ -663,9 +667,7 @@ static const struct default_options default_options_table[] =
>>>       { OPT_LEVELS_3_PLUS, OPT_fsplit_loops, NULL, 1 },
>>>       { OPT_LEVELS_3_PLUS, OPT_fsplit_paths, NULL, 1 },
>>>       { OPT_LEVELS_3_PLUS, OPT_ftree_loop_distribution, NULL, 1 },
>>> -    { OPT_LEVELS_3_PLUS, OPT_ftree_loop_vectorize, NULL, 1 },
>>>       { OPT_LEVELS_3_PLUS, OPT_ftree_partial_pre, NULL, 1 },
>>> -    { OPT_LEVELS_3_PLUS, OPT_ftree_slp_vectorize, NULL, 1 },
>>>       { OPT_LEVELS_3_PLUS, OPT_funswitch_loops, NULL, 1 },
>>>       { OPT_LEVELS_3_PLUS, OPT_fvect_cost_model_, NULL, VECT_COST_MODEL_DYNAMIC },
>>>       { OPT_LEVELS_3_PLUS, OPT_fversion_loops_for_strides, NULL, 1 },
>>> @@ -1331,6 +1333,16 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
>>>         = (opts->x_flag_unroll_loops
>>>            || opts->x_flag_peel_loops
>>>            || opts->x_optimize >= 3);
>>> +
>>> +  /* Use -fvect-cost-model=cheap instead of -fvect-cost-mode=very-cheap
>>> +     by default with explicit -ftree-{loop,slp}-vectorize.  */
>>> +  if (opts->x_optimize == 2
>>> +      && (opts_set->x_flag_tree_loop_vectorize
>>> +       || opts_set->x_flag_tree_vectorize))
>>> +    SET_OPTION_IF_UNSET (opts, opts_set, flag_vect_cost_model,
>>> +                      VECT_COST_MODEL_CHEAP);
>>> +
>>> +
>>
>> please avoid adding excessive vertical space at the end of the function
>>
>>>   }
>>>
>>>   #define LEFT_COLUMN  27
>>> diff --git a/gcc/testsuite/c-c++-common/Wstringop-overflow-2.c b/gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
>>> index 1d79930cd58..9351f7e7a1a 100644
>>> --- a/gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
>>> +++ b/gcc/testsuite/c-c++-common/Wstringop-overflow-2.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR middle-end/91458 - inconsistent warning for writing past the end
>>>      of an array member
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -Wall -Wno-array-bounds -fno-ipa-icf" } */
>>> +   { dg-options "-O2 -Wall -Wno-array-bounds -fno-ipa-icf -fno-tree-vectorize" } */
>>
>> The testcase is large - what part requires this change?  Given the
>> testcase was added for inconsistent warnings do they now become
>> inconsistent again as we enable vectorization at -O2?
>>
>> That said, the testcase adjustments need some explaining - I suppose
>> you didn't just slap -fno-tree-vectorize to all of those changing
>> behavior?
>>
> void ga1_ (void)
> {
>    a1_.a[0] = 0;
>    a1_.a[1] = 1;                 // { dg-warning "\\\[-Wstringop-overflow" }
>    a1_.a[2] = 2;                 // { dg-warning "\\\[-Wstringop-overflow" }
> 
>    struct A1 a;
>    a.a[0] = 0;
>    a.a[1] = 1;                   // { dg-warning "\\\[-Wstringop-overflow" }
>    a.a[2] = 2;                   // { dg-warning "\\\[-Wstringop-overflow" }
>    sink (&a);
> }
> 
> It's supposed to be 2 warning for a.a[1] = 1 and a.a[2] = 1 since
> there are 2 accesses, but after enabling vectorization, there's only
> one access, so one warning is missing which causes the failure.

I would find it preferable to change the test code over disabling
optimizations that are on by default.  My concern is that the test
would no longer exercise the default behavior.  (The same goes for
the -fno-ipa-icf option.)

Thanks
Martin

> 
>     <bb 2> [local count: 1073741824]:
>    a1__.a[0] = 0;
>    a1__.a[1] = 1;
>    a1__.a[2] = 2;
>    MEM <char[1]> [(struct A1 *)&a + 1B] = {};
>    a.n = 1;
>    MEM <vector(2) char> [(char *)&a + 2B] = { 1, 2 };
>    sink (&a);
>    a ={v} {CLOBBER};
>    return;
> 
> 
>> Thanks,
>> Richard.
>>
>>>   void sink (void*);
>>>
>>> diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr81408.C b/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
>>> index 39e32fd4bc9..bc14309480c 100644
>>> --- a/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
>>> +++ b/gcc/testsuite/g++.dg/tree-ssa/pr81408.C
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed" } */
>>> +/* { dg-options "-O2 -std=gnu++11 -fopt-info-loop-missed -fno-tree-vectorize" } */
>>>   struct p
>>>   {
>>>     char *ay;
>>> diff --git a/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C b/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
>>> index 49ee878806a..60e8dd4f0e2 100644
>>> --- a/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
>>> +++ b/gcc/testsuite/g++.dg/warn/Wuninitialized-13.C
>>> @@ -1,6 +1,6 @@
>>>   /* PR c/98597 - ICE in -Wuninitialized printing a MEM_REF
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -Wall" } */
>>> +   { dg-options "-O2 -Wall -fno-tree-vectorize" } */
>>>
>>>   struct shared_count {
>>>     shared_count () { }
>>> diff --git a/gcc/testsuite/gcc.dg/Warray-bounds-51.c b/gcc/testsuite/gcc.dg/Warray-bounds-51.c
>>> index 6028b11637c..8b81a0ccfa7 100644
>>> --- a/gcc/testsuite/gcc.dg/Warray-bounds-51.c
>>> +++ b/gcc/testsuite/gcc.dg/Warray-bounds-51.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR middle-end/92333 - missing variable name referencing VLA in warnings
>>>      PR middle-end/82608 - missing -Warray-bounds on an out-of-bounds VLA index
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -Wall" } */
>>> +   { dg-options "-O2 -Wall -fno-tree-vectorize" } */
>>>
>>>   void sink (void*);
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/Warray-parameter-3.c b/gcc/testsuite/gcc.dg/Warray-parameter-3.c
>>> index cbf3e9339f5..fbef715aa99 100644
>>> --- a/gcc/testsuite/gcc.dg/Warray-parameter-3.c
>>> +++ b/gcc/testsuite/gcc.dg/Warray-parameter-3.c
>>> @@ -59,7 +59,7 @@ void fas1 (int[static 2]);    // { dg-warning "\\\[-Warray-parameter=" }
>>>
>>>   /* Also verify that -Warray-bounds doesn't trigger for ordinary array
>>>      parameters...  */
>>> -#pragma GCC optimize "2"
>>> +#pragma GCC optimize ("2,-fno-tree-vectorize")
>>>
>>>   __attribute__ ((noipa)) void
>>>   gca3 (char a[3])
>>> diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
>>> index bd513151cea..a78242bf26e 100644
>>> --- a/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
>>> +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-13.c
>>> @@ -3,7 +3,7 @@
>>>      PR middle-end/89911 - ICE on a call with no arguments to strnlen
>>>      declared with no prototype
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -Wall" } */
>>> +   { dg-options "-O2 -Wall -fno-tree-vectorize" } */
>>>
>>>   typedef __SIZE_TYPE__ size_t;
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-14.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
>>> index d6201b068b6..808bf87c386 100644
>>> --- a/gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
>>> +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-14.c
>>> @@ -2,7 +2,7 @@
>>>      types than char are diagnosed.
>>>      { dg-do compile }
>>>      { dg-require-effective-target int32plus }
>>> -   { dg-options "-O2 -Wall -Wno-array-bounds" } */
>>> +   { dg-options "-O2 -fno-tree-vectorize -Wall -Wno-array-bounds" } */
>>>
>>>   typedef __INT16_TYPE__  int16_t;
>>>   typedef __INT32_TYPE__  int32_t;
>>> diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-21.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-21.c
>>> index 3a27460220c..f418a17ca93 100644
>>> --- a/gcc/testsuite/gcc.dg/Wstringop-overflow-21.c
>>> +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-21.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR middle-end/92312 - bogus -Wstringop-overflow storing into a trailing
>>>      array backed by larger buffer
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -Wall -Wno-array-bounds" } */
>>> +   { dg-options "-O2 -Wall -Wno-array-bounds -fno-tree-vectorize" } */
>>>
>>>   struct S0 { char a, b[0]; };
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/Wstringop-overflow-68.c b/gcc/testsuite/gcc.dg/Wstringop-overflow-68.c
>>> index 6bcba274541..7cc1012130c 100644
>>> --- a/gcc/testsuite/gcc.dg/Wstringop-overflow-68.c
>>> +++ b/gcc/testsuite/gcc.dg/Wstringop-overflow-68.c
>>> @@ -2,7 +2,7 @@
>>>      a larger scalar into a smaller array
>>>      Verify overflow by aggregate stores.
>>>      { dg-do compile }
>>> -   { dg-options "-O2" } */
>>> +   { dg-options "-O2 -fno-tree-vectorize" } */
>>>
>>>   #define A(N) (A ## N)
>>>   #define Ac1 (AC1){ 0 }
>>> diff --git a/gcc/testsuite/gcc.dg/gomp/pr46032-2.c b/gcc/testsuite/gcc.dg/gomp/pr46032-2.c
>>> index e110880bd8e..2e562618489 100644
>>> --- a/gcc/testsuite/gcc.dg/gomp/pr46032-2.c
>>> +++ b/gcc/testsuite/gcc.dg/gomp/pr46032-2.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */
>>>
>>>   #define N 2
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/gomp/pr46032-3.c b/gcc/testsuite/gcc.dg/gomp/pr46032-3.c
>>> index a4af7ec4a8a..da1ab487385 100644
>>> --- a/gcc/testsuite/gcc.dg/gomp/pr46032-3.c
>>> +++ b/gcc/testsuite/gcc.dg/gomp/pr46032-3.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fopenmp -std=c99 -fipa-pta -fdump-tree-optimized" } */
>>>
>>>   #define N 2
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/gomp/simd-2.c b/gcc/testsuite/gcc.dg/gomp/simd-2.c
>>> index 85acb980f10..f4912127b81 100644
>>> --- a/gcc/testsuite/gcc.dg/gomp/simd-2.c
>>> +++ b/gcc/testsuite/gcc.dg/gomp/simd-2.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fopenmp -fdump-tree-vect-details" } */
>>> +/* { dg-options "-O2 -fopenmp -fvect-cost-model=cheap -fdump-tree-vect-details" } */
>>>   /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */
>>>   /* { dg-additional-options "-mavx" { target avx } } */
>>>   /* { dg-final { scan-tree-dump-times "vectorized \[1-9]\[0-9]* loops in function" 5 "vect" { target i?86-*-* x86_64-*-* aarch64-*-* } } } */
>>> diff --git a/gcc/testsuite/gcc.dg/gomp/simd-3.c b/gcc/testsuite/gcc.dg/gomp/simd-3.c
>>> index 86fee858673..c75060c07ae 100644
>>> --- a/gcc/testsuite/gcc.dg/gomp/simd-3.c
>>> +++ b/gcc/testsuite/gcc.dg/gomp/simd-3.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fopenmp -fdump-tree-vect-details" } */
>>> +/* { dg-options "-O2 -fopenmp -fvect-cost-model=cheap -fdump-tree-vect-details" } */
>>>   /* { dg-additional-options "-msse2" { target { i?86-*-* x86_64-*-* } } } */
>>>   /* { dg-additional-options "-mavx" { target avx } } */
>>>   /* { dg-final { scan-tree-dump-times "vectorized \[1-9]\[0-9]* loops in function" 5 "vect" { target i?86-*-* x86_64-*-* aarch64-*-* } } } */
>>> diff --git a/gcc/testsuite/gcc.dg/graphite/fuse-1.c b/gcc/testsuite/gcc.dg/graphite/fuse-1.c
>>> index 527b6e5c415..61289d312c2 100644
>>> --- a/gcc/testsuite/gcc.dg/graphite/fuse-1.c
>>> +++ b/gcc/testsuite/gcc.dg/graphite/fuse-1.c
>>> @@ -1,6 +1,6 @@
>>>   /* Check that the two loops are fused and that we manage to fold the two xor
>>>      operations.  */
>>> -/* { dg-options "-O2 -floop-nest-optimize -fdump-tree-forwprop4 -fdump-tree-graphite-all" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -floop-nest-optimize -fdump-tree-forwprop4 -fdump-tree-graphite-all" } */
>>>
>>>   /* Make sure we fuse the loops like this:
>>>   AST generated by isl:
>>> diff --git a/gcc/testsuite/gcc.dg/pr67089-6.c b/gcc/testsuite/gcc.dg/pr67089-6.c
>>> index db2ffdfeca4..b59d75b2318 100644
>>> --- a/gcc/testsuite/gcc.dg/pr67089-6.c
>>> +++ b/gcc/testsuite/gcc.dg/pr67089-6.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR target/67089 */
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -ftree-loop-if-convert -fdump-tree-widening_mul" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -ftree-loop-if-convert -fdump-tree-widening_mul" } */
>>>
>>>   extern void abort (void);
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/pr82929-2.c b/gcc/testsuite/gcc.dg/pr82929-2.c
>>> index 3442f91af02..b886f1cce76 100644
>>> --- a/gcc/testsuite/gcc.dg/pr82929-2.c
>>> +++ b/gcc/testsuite/gcc.dg/pr82929-2.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/82929 */
>>>   /* { dg-do compile { target store_merge } } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   void
>>>   foo (short *p, short *q, short *r)
>>> diff --git a/gcc/testsuite/gcc.dg/pr82929.c b/gcc/testsuite/gcc.dg/pr82929.c
>>> index bb84f2b21a3..123e1919cec 100644
>>> --- a/gcc/testsuite/gcc.dg/pr82929.c
>>> +++ b/gcc/testsuite/gcc.dg/pr82929.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/82929 */
>>>   /* { dg-do compile { target store_merge } } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   void
>>>   foo (short *p, short *q, short *r)
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_1.c b/gcc/testsuite/gcc.dg/store_merging_1.c
>>> index 4cc43dfd9e1..91ca925be0e 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_1.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_1.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   struct bar {
>>>     int a;
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_11.c b/gcc/testsuite/gcc.dg/store_merging_11.c
>>> index 2ec2394afb9..60ed5cd8bf9 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_11.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_11.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do run } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   struct S { unsigned char b[2]; unsigned short c; unsigned char d[4]; unsigned long e; };
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_15.c b/gcc/testsuite/gcc.dg/store_merging_15.c
>>> index acd7de571f8..13fcca4aa11 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_15.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_15.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do run } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   struct S { unsigned char a, b; unsigned short c; unsigned char d, e, f, g; unsigned long long h; };
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_16.c b/gcc/testsuite/gcc.dg/store_merging_16.c
>>> index 9545dcce3de..cd83f1c0fe5 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_16.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_16.c
>>> @@ -2,7 +2,7 @@
>>>      are either big or little endian (not pdp endian).  */
>>>   /* { dg-do run { target { lp64 && { i?86-*-* x86_64-*-* powerpc*-*-* aarch64*-*-* } } } } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   __attribute__((noipa)) void
>>>   f1 (unsigned char *p, unsigned long long q)
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_19.c b/gcc/testsuite/gcc.dg/store_merging_19.c
>>> index 0841bb4deee..0a2bbc4bfde 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_19.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_19.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/83843 */
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>   /* { dg-final { scan-tree-dump-times "Merging successful" 3 "store-merging" { target store_merge } } } */
>>>
>>>   __attribute__((noipa)) void
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_24.c b/gcc/testsuite/gcc.dg/store_merging_24.c
>>> index 744fe60e8e0..5291bb9e986 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_24.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_24.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/87859 */
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging-details" } */
>>>   /* { dg-final { scan-tree-dump "New sequence of \[23] stores to replace old one of 19 stores" "store-merging" { target i?86-*-* x86_64-*-* } } } */
>>>   /* { dg-final { scan-tree-dump "New sequence of 1 stores to replace old one of 6 stores" "store-merging" { target i?86-*-* x86_64-*-* } } } */
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_25.c b/gcc/testsuite/gcc.dg/store_merging_25.c
>>> index cf182190e91..96611b5e57b 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_25.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_25.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/87859 */
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging-details" } */
>>>   /* { dg-final { scan-tree-dump "New sequence of \[23] stores to replace old one of 14 stores" "store-merging" { target i?86-*-* x86_64-*-* } } } */
>>>   /* { dg-final { scan-tree-dump "New sequence of 1 stores to replace old one of 6 stores" "store-merging" { target i?86-*-* x86_64-*-* } } } */
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_28.c b/gcc/testsuite/gcc.dg/store_merging_28.c
>>> index 2d6cffc4694..fadb7fff993 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_28.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_28.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR tree-optimization/88709 */
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fno-ipa-icf -fdump-tree-store-merging-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fno-ipa-icf -fdump-tree-store-merging-details" } */
>>>   /* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 16 stores" 8 "store-merging" { target { i?86-*-* x86_64-*-* } } } } */
>>>   /* { dg-final { scan-tree-dump-times "New sequence of \[24] stores to replace old one of 6 stores" 1 "store-merging" { target { ! arm*-*-* } } } } */
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_30.c b/gcc/testsuite/gcc.dg/store_merging_30.c
>>> index 694d560a621..baf94efe733 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_30.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_30.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR tree-optimization/94573 */
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging-details" } */
>>>   /* { dg-final { scan-tree-dump "New sequence of 4 stores to replace old one of 8 stores" "store-merging" { target lp64 } } } */
>>>
>>>   int var[43][12];
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_5.c b/gcc/testsuite/gcc.dg/store_merging_5.c
>>> index 6e7c72510ff..b0cb0da78e0 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_5.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_5.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   /* Make sure that non-aliasing non-constant interspersed stores do not
>>>      stop chains.  */
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_7.c b/gcc/testsuite/gcc.dg/store_merging_7.c
>>> index c744ece6407..dbe000a463e 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_7.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_7.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   /* Check that we can merge consecutive array members through the pointer.
>>>      PR rtl-optimization/23684.  */
>>> diff --git a/gcc/testsuite/gcc.dg/store_merging_8.c b/gcc/testsuite/gcc.dg/store_merging_8.c
>>> index e710a544ff0..d719e0a2257 100644
>>> --- a/gcc/testsuite/gcc.dg/store_merging_8.c
>>> +++ b/gcc/testsuite/gcc.dg/store_merging_8.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target store_merge } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   struct baz {
>>>     struct bar {
>>> diff --git a/gcc/testsuite/gcc.dg/strlenopt-85.c b/gcc/testsuite/gcc.dg/strlenopt-85.c
>>> index e049e0c30e0..2ba1ee05700 100644
>>> --- a/gcc/testsuite/gcc.dg/strlenopt-85.c
>>> +++ b/gcc/testsuite/gcc.dg/strlenopt-85.c
>>> @@ -4,7 +4,7 @@
>>>      of memory allocated by calloc() even if one or more nul bytes are
>>>      written into it.
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -fdump-tree-optimized" } */
>>> +   { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized" } */
>>>
>>>   unsigned n0, n1;
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/dump-6.c b/gcc/testsuite/gcc.dg/tree-ssa/dump-6.c
>>> index 70659c00c0e..6c803908781 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/dump-6.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/dump-6.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR middle-end/90676 - default GIMPLE dumps lack information
>>>      { dg-do compile }
>>> -   { dg-options "-O2 -fdump-tree-store-merging" }
>>> +   { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" }
>>>      { dg-require-effective-target int32plus }
>>>      { dg-require-effective-target store_merge } */
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
>>> index 50d86a00485..b9e40e964c1 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fopt-info-loop-missed" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fopt-info-loop-missed" } */
>>>   extern void g(void);
>>>
>>>   void
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr47059.c b/gcc/testsuite/gcc.dg/tree-ssa/pr47059.c
>>> index 9f9c61aa213..860cde12c0f 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/pr47059.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr47059.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-Os -fdump-tree-optimized" } */
>>> +/* { dg-options "-Os -fno-tree-vectorize -fdump-tree-optimized" } */
>>>
>>>
>>>   struct struct1
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr86017.c b/gcc/testsuite/gcc.dg/tree-ssa/pr86017.c
>>> index f216e83c7b3..c7ef73ad59e 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/pr86017.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr86017.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-store-merging" } */
>>>
>>>   void f (void*);
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr91482.c b/gcc/testsuite/gcc.dg/tree-ssa/pr91482.c
>>> index 7d6a724e4ad..0ddad573129 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/pr91482.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr91482.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fdump-tree-ccp1 -fdump-tree-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-ccp1 -fdump-tree-store-merging" } */
>>>
>>>   void write64 (void *p)
>>>   {
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
>>> index f68be2b3379..8c3d9a4fc58 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-1.c
>>> @@ -1,6 +1,6 @@
>>>   /* { dg-do compile } */
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -funroll-loops --param max-unroll-times=8 -fpredictive-commoning -fdump-tree-pcom-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -funroll-loops --param max-unroll-times=8 -fpredictive-commoning -fdump-tree-pcom-details" } */
>>>
>>>   void abort (void);
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
>>> index ec08d6c0318..1fc8f089345 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/predcom-dse-3.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -fno-inline -fno-tree-loop-distribute-patterns -fpredictive-commoning -fdump-tree-pcom-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fno-inline -fno-tree-loop-distribute-patterns -fpredictive-commoning -fdump-tree-pcom-details" } */
>>>
>>>   int arr1[105] = {2, 3, 5, 7, 11, 13, 0};
>>>   int arr2[105] = {2, 3, 5, 7, 11, 13, 0};
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
>>> index 467903bf3fc..46f0d0c2317 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
>>> @@ -1,7 +1,7 @@
>>>   /* Prefetching used to prefer nonsensical unroll factor of 5 in this testcase.  */
>>>
>>>   /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
>>> -/* { dg-options "-O2 -fprefetch-loop-arrays -march=amdfam10 -fdump-tree-aprefetch-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fprefetch-loop-arrays -march=amdfam10 -fdump-tree-aprefetch-details" } */
>>>
>>>   #define N 1000000
>>>
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
>>> index 12f09016943..3fa71685ace 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-6.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
>>> -/* { dg-options "-O2 -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 --param min-insn-to-prefetch-ratio=6 -fdump-tree-aprefetch-details" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 --param min-insn-to-prefetch-ratio=6 -fdump-tree-aprefetch-details" } */
>>>
>>>   #define N 1000
>>>   #define K 900
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
>>> index cbd6a80d345..00f41c3e4f4 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-8.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
>>> -/* { dg-options "-O2 -fno-tree-loop-distribute-patterns -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fno-tree-loop-distribute-patterns -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
>>>
>>>   #define K 1000000
>>>   int a[K];
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
>>> index da4847320b1..e8848c30acc 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/prefetch-9.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile { target { i?86-*-* x86_64-*-* } } } */
>>> -/* { dg-options "-O2 -fno-tree-loop-distribute-patterns -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fno-tree-loop-distribute-patterns -fprefetch-loop-arrays -march=amdfam10 --param simultaneous-prefetches=100 -fdump-tree-aprefetch-details -fdump-tree-optimized" } */
>>>
>>>   #define K 1000000
>>>   int a[K], b[K];
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-18.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-18.c
>>> index 92b2df80ec8..2e7b5b496ea 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-18.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-18.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized" } */
>>>   int g(_Complex int*);
>>>   int f(void)
>>>   {
>>> diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-19.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-19.c
>>> index 718b7466e50..7bb8d060631 100644
>>> --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-19.c
>>> +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-19.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fdump-tree-optimized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-tree-optimized" } */
>>>   int g(_Complex int*);
>>>   int f(void)
>>>   {
>>> diff --git a/gcc/testsuite/gcc.dg/uninit-40.c b/gcc/testsuite/gcc.dg/uninit-40.c
>>> index c015191ca32..8708079d397 100644
>>> --- a/gcc/testsuite/gcc.dg/uninit-40.c
>>> +++ b/gcc/testsuite/gcc.dg/uninit-40.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR tree-optimization/98597 */
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -Wuninitialized" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -Wuninitialized" } */
>>>
>>>   union U { double d; int i; float f; };
>>>   struct S { char a; int b; char c; unsigned d; union U e; int f[3]; unsigned g[3]; };
>>> diff --git a/gcc/testsuite/gcc.dg/unroll-7.c b/gcc/testsuite/gcc.dg/unroll-7.c
>>> index 055369bf8b1..695af5757cc 100644
>>> --- a/gcc/testsuite/gcc.dg/unroll-7.c
>>> +++ b/gcc/testsuite/gcc.dg/unroll-7.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fdump-rtl-loop2_unroll-details -funroll-loops" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fdump-rtl-loop2_unroll-details -funroll-loops" } */
>>>   /* { dg-require-effective-target int32plus } */
>>>
>>>   extern int *a;
>>> diff --git a/gcc/testsuite/gcc.misc-tests/help.exp b/gcc/testsuite/gcc.misc-tests/help.exp
>>> index 5e034d26947..eb6d8686c6a 100644
>>> --- a/gcc/testsuite/gcc.misc-tests/help.exp
>>> +++ b/gcc/testsuite/gcc.misc-tests/help.exp
>>> @@ -79,7 +79,7 @@ check_for_options c "--help=target,optimizers" "" "" ""
>>>   check_for_options c "--help=warnings,^joined,^undocumented" "" "" ""
>>>   check_for_options c "-Q -O2 --help=optimizers" {
>>>   -O
>>> --ftree-loop-vectorize[^\n]*disabled
>>> +-ftree-loop-vectorize[^\n]*enabled
>>>   } "  -g  " ""
>>>   check_for_options c "-Q -O3 --help=optimizers" {
>>>   -O
>>> diff --git a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c
>>> index 709cd21e671..a732bc466db 100644
>>> --- a/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c
>>> +++ b/gcc/testsuite/gcc.target/i386/avx512vpopcntdqvl-vpopcntd-1.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do run } */
>>> -/* { dg-options "-O2 -mavx512vpopcntdq -mavx512bw -mavx512vl" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -mavx512vpopcntdq -mavx512bw -mavx512vl" } */
>>>   /* { dg-require-effective-target avx512vl } */
>>>   /* { dg-require-effective-target avx512vpopcntdqvl } */
>>>   /* { dg-require-effective-target avx512bw } */
>>> diff --git a/gcc/testsuite/gcc.target/i386/pr22141.c b/gcc/testsuite/gcc.target/i386/pr22141.c
>>> index 036422e8ccf..b68b97f3f72 100644
>>> --- a/gcc/testsuite/gcc.target/i386/pr22141.c
>>> +++ b/gcc/testsuite/gcc.target/i386/pr22141.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR middle-end/22141 */
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-Os" } */
>>> +/* { dg-options "-Os -fno-tree-vectorize" } */
>>>
>>>   extern void abort (void);
>>>
>>> diff --git a/gcc/testsuite/gcc.target/i386/pr34012.c b/gcc/testsuite/gcc.target/i386/pr34012.c
>>> index d0cffa05290..1c1f0eea52e 100644
>>> --- a/gcc/testsuite/gcc.target/i386/pr34012.c
>>> +++ b/gcc/testsuite/gcc.target/i386/pr34012.c
>>> @@ -1,7 +1,7 @@
>>>   /* PR rtl-optimization/34012 */
>>>   /* { dg-do compile } */
>>>   /* { dg-require-effective-target lp64 } */
>>> -/* { dg-options "-O2 -fno-store-merging" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fno-store-merging" } */
>>>
>>>   void bar (long int *);
>>>   void
>>> diff --git a/gcc/testsuite/gcc.target/i386/pr49781-1.c b/gcc/testsuite/gcc.target/i386/pr49781-1.c
>>> index 60f9d50d866..d5a2e32db97 100644
>>> --- a/gcc/testsuite/gcc.target/i386/pr49781-1.c
>>> +++ b/gcc/testsuite/gcc.target/i386/pr49781-1.c
>>> @@ -1,5 +1,5 @@
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -fpic -mtune=generic" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -fpic -mtune=generic" } */
>>>   /* { dg-require-effective-target fpic } */
>>>
>>>   static int heap[2*(256 +1+29)+1];
>>> diff --git a/gcc/testsuite/gcc.target/i386/pr95798-1.c b/gcc/testsuite/gcc.target/i386/pr95798-1.c
>>> index 9a7e32d6f2f..526f48921fd 100644
>>> --- a/gcc/testsuite/gcc.target/i386/pr95798-1.c
>>> +++ b/gcc/testsuite/gcc.target/i386/pr95798-1.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR target/95798 */
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -masm=att -fomit-frame-pointer" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -masm=att -fomit-frame-pointer" } */
>>>   /* { dg-final { scan-assembler "1, 8\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>>   /* { dg-final { scan-assembler "2, 16\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>>   /* { dg-final { scan-assembler "3, 24\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>> diff --git a/gcc/testsuite/gcc.target/i386/pr95798-2.c b/gcc/testsuite/gcc.target/i386/pr95798-2.c
>>> index c670d3780e8..6b5c5a73e96 100644
>>> --- a/gcc/testsuite/gcc.target/i386/pr95798-2.c
>>> +++ b/gcc/testsuite/gcc.target/i386/pr95798-2.c
>>> @@ -1,6 +1,6 @@
>>>   /* PR target/95798 */
>>>   /* { dg-do compile } */
>>> -/* { dg-options "-O2 -masm=att -fomit-frame-pointer" } */
>>> +/* { dg-options "-O2 -fno-tree-vectorize -masm=att -fomit-frame-pointer" } */
>>>   /* { dg-final { scan-assembler "1, 8\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>>   /* { dg-final { scan-assembler "2, 16\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>>   /* { dg-final { scan-assembler "3, 24\\\(%rsp,%r\[a-z0-9]*,8\\\)" { target lp64 } } } */
>>> diff --git a/gcc/testsuite/gfortran.dg/pr77498.f b/gcc/testsuite/gfortran.dg/pr77498.f
>>> index f957b57bb00..a0fc8275a84 100644
>>> --- a/gcc/testsuite/gfortran.dg/pr77498.f
>>> +++ b/gcc/testsuite/gfortran.dg/pr77498.f
>>> @@ -1,5 +1,5 @@
>>>   ! { dg-do compile }
>>> -! { dg-options "-O2 -ffast-math -fdump-tree-pre" }
>>> +! { dg-options "-O2 -fno-tree-vectorize -ffast-math -fdump-tree-pre" }
>>>
>>>         subroutine foo(U,V,R,N,A)
>>>         integer N
>>>
>>
>> --
>> Richard Biener <rguenther@suse.de>
>> SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nuernberg,
>> Germany; GF: Felix Imendörffer; HRB 36809 (AG Nuernberg)
> 
> 
> 


  parent reply	other threads:[~2021-09-19 20:13 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-16  4:33 liuhongt
2021-09-16  8:22 ` Richard Biener
2021-09-16  9:03   ` Hongtao Liu
2021-09-16 12:31     ` Richard Biener
2021-09-17  3:26       ` Hongtao Liu
2021-09-17  7:47         ` Richard Biener
2021-09-17  8:06           ` Hongtao Liu
2021-09-19 20:13     ` Martin Sebor [this message]
2021-09-22  1:38       ` Hongtao Liu
2021-09-22 14:21         ` Martin Sebor
2021-09-22 15:03           ` Martin Sebor
2021-09-23  1:48           ` Hongtao Liu
2021-09-23  2:08             ` Hongtao Liu
2021-09-23  6:30               ` Richard Biener
2021-09-23 15:18                 ` Martin Sebor
2021-09-24  3:32                   ` Hongtao Liu
2021-09-24 14:27                     ` Martin Sebor
2021-09-26  3:18                       ` liuhongt
2021-09-28 11:18                         ` Richard Biener
2021-10-07 15:34                         ` Martin Liška
2021-10-07 15:36                           ` H.J. Lu
2021-10-08  2:16                             ` Hongtao Liu
2021-10-08 10:49                 ` Aldy Hernandez
2021-10-08 23:43                   ` Martin Sebor
  -- strict thread matches above, loose matches on Subject: below --
2021-09-06  8:46 liuhongt
2021-09-06  8:55 ` Hongtao Liu
2021-09-06  9:18 ` Richard Biener
2021-09-06  9:41   ` Jakub Jelinek
2021-09-06 10:58     ` Hongtao Liu
2021-09-06 11:01       ` Jakub Jelinek
2021-09-06 11:15         ` Hongtao Liu
2021-09-06 11:15           ` Jakub Jelinek
2021-09-06 12:18             ` Richard Biener
2021-09-06 12:30               ` Jakub Jelinek
2021-09-06 12:43                 ` Richard Biener
2021-09-06 11:05     ` Richard Biener
2021-09-06  9:41   ` Hongtao Liu
2021-09-06 16:37 ` Joseph Myers
2021-09-07  2:07   ` Hongtao Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4fe85f3d-b4fd-4419-04f0-c645e23e778d@gmail.com \
    --to=msebor@gmail.com \
    --cc=Premachandra.Mallappa@amd.com \
    --cc=crazylht@gmail.com \
    --cc=fweimer@redhat.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=hongtao.liu@intel.com \
    --cc=jakub@redhat.com \
    --cc=joseph@codesourcery.com \
    --cc=rguenther@suse.de \
    --cc=richard.sandiford@arm.com \
    --cc=segher@kernel.crashing.org \
    --cc=wschmidt@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).