liuhongt <hongtao....@intel.com> writes:
> Performance impact for the commit with option:
> -march=x86-64 -O2 -ftree-vectorize -fvect-cost-model=very-cheap
>
> SPEC2017 fprate
> 503.bwaves_r        BuildSame
> 507.cactuBSSN_r         -0.04
> 508.namd_r               0.14
> 510.parest_r            -0.54
> 511.povray_r             0.10
> 519.lbm_r           BuildSame
> 521.wrf_r                0.64
> 526.blender_r           -0.32
> 527.cam4_r               0.17
> 538.imagick_r            0.09
> 544.nab_r           BuildSame
> 549.fotonik3d_r     BuildSame
> 554.roms_r          BuildSame
> 997.specrand_fr         -0.09
> Geometric mean:  0.02
>
> SPEC2017 intrate
> 500.perlbench_r          0.26
> 502.gcc_r                0.21
> 505.mcf_r               -0.09
> 520.omnetpp_r       BuildSame
> 523.xalancbmk_r     BuildSame
> 525.x264_r              -0.41
> 531.deepsjeng_r     BuildSame
> 541.leela_r              0.13
> 548.exchange2_r     BuildSame
> 557.xz_r            BuildSame
> 999.specrand_ir     BuildSame
> Geometric mean:  0.02
>
> EEMBC: no regression, only improvement or build the same, the below is
> improved benchmarks.
>
> mp2decoddata1       7.59
> mp2decoddata2       31.80
> mp2decoddata3       12.15
> mp2decoddata4       11.16
> mp2decoddata5       11.19
> mp2decoddata1       7.06
> mp2decoddata2       24.12
> mp2decoddata3       10.83
> mp2decoddata4       10.04
> mp2decoddata5       10.07
>
> Survived regression test.
> Ok for trunk?
>
> gcc/ChangeLog:
>
>       PR tree-optimization/100089
>       * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in
>       loop vectorizer when cost model is very-cheap.
> ---
>  gcc/tree-vectorizer.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
> index b9709a613d5..8a5b8735546 100644
> --- a/gcc/tree-vectorizer.c
> +++ b/gcc/tree-vectorizer.c
> @@ -1033,7 +1033,10 @@ try_vectorize_loop_1 (hash_table<simduid_to_vf> 
> *&simduid_to_vf_htab,
>        only non-if-converted parts took part in BB vectorization.  */
>        if (flag_tree_slp_vectorize != 0
>         && loop_vectorized_call
> -       && ! loop->inner)
> +       && ! loop->inner
> +       /* This would purely be a workaround and should be removed
> +          once the PR100089 is fixed.  */

s/the //.

OK with that change, thanks.

Richard

> +       && flag_vect_cost_model != VECT_COST_MODEL_VERY_CHEAP)
>       {
>         basic_block bb = loop->header;
>         bool require_loop_vectorize = false;

Reply via email to