On Tue, Nov 15, 2016 at 1:44 PM, Richard Sandiford
<richard.sandif...@arm.com> wrote:
> We previously stored the number of loop iterations rather
> than the number of latch iterations.

So ->nb_iterations was unused without SVE?  Otherwise can you please
add a testcase?

Thanks,
Richard.

> Tested on aarch64-linux-gnu and x86_64-linux-gnu.  OK to install?
>
> Thanks,
> Richard
>
>
> [ This patch is part of the SVE series posted here:
>   https://gcc.gnu.org/ml/gcc/2016-11/msg00030.html ]
>
> gcc/
> 2016-11-15  Richard Sandiford  <richard.sandif...@arm.com>
>             Alan Hayward  <alan.hayw...@arm.com>
>             David Sherwood  <david.sherw...@arm.com>
>
>         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Set
>         nb_iterations to the number of latch iterations rather than the
>         number of loop iterations.
>
> diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
> index 6bfd332..4c6b8c7 100644
> --- a/gcc/tree-vect-loop-manip.c
> +++ b/gcc/tree-vect-loop-manip.c
> @@ -285,7 +285,10 @@ slpeel_make_loop_iterate_ntimes (struct loop *loop, tree 
> niters)
>                      LOCATION_LINE (loop_loc));
>        dump_gimple_stmt (MSG_NOTE, TDF_SLIM, cond_stmt, 0);
>      }
> -  loop->nb_iterations = niters;
> +
> +  /* Record the number of latch iterations.  */
> +  loop->nb_iterations = fold_build2 (MINUS_EXPR, TREE_TYPE (niters), niters,
> +                                    build_int_cst (TREE_TYPE (niters), 1));
>  }
>
>  /* Helper routine of slpeel_tree_duplicate_loop_to_edge_cfg.
>

Reply via email to