On Fri, May 2, 2025 at 2:01 AM Andrew Pinski <pins...@gmail.com> wrote: > > On Thu, May 1, 2025 at 4:28 PM Andrew Pinski <quic_apin...@quicinc.com> wrote: > > > > While looking into PR 118616, I noticed that > > supportable_indirect_convert_operation only pushes up to 2 into its vec. > > And the 2 places which call supportable_indirect_convert_operation, > > use an auto_vec but without an internal storage. In this case an internal > > storage of 2 elements would save both memory and slight compile time > > performance. > > > > Bootstrapped and tested on x86_64-linux-gnu. > > > > PR tree-optimization/118617 > > gcc/ChangeLog: > > > > * tree-vect-generic.cc (expand_vector_conversion): > > * tree-vect-stmts.cc (vectorizable_conversion): > > Whoops I messed up the changelog: > * tree-vect-generic.cc (expand_vector_conversion): Have 2 elements as > internal storage for converts. > * tree-vect-stmts.cc (vectorizable_conversion): Likewise.
OK with that fix. Richard. > > > > > Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com> > > --- > > gcc/tree-vect-generic.cc | 2 +- > > gcc/tree-vect-stmts.cc | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/gcc/tree-vect-generic.cc b/gcc/tree-vect-generic.cc > > index 80c2d31776b..3c68361870b 100644 > > --- a/gcc/tree-vect-generic.cc > > +++ b/gcc/tree-vect-generic.cc > > @@ -1754,7 +1754,7 @@ expand_vector_conversion (gimple_stmt_iterator *gsi) > > else if (ret_elt_bits > arg_elt_bits) > > modifier = WIDEN; > > > > - auto_vec<std::pair<tree, tree_code> > converts; > > + auto_vec<std::pair<tree, tree_code>, 2> converts; > > if (supportable_indirect_convert_operation (code, ret_type, arg_type, > > converts)) > > { > > diff --git a/gcc/tree-vect-stmts.cc b/gcc/tree-vect-stmts.cc > > index 42b6059520a..537ae6c2f61 100644 > > --- a/gcc/tree-vect-stmts.cc > > +++ b/gcc/tree-vect-stmts.cc > > @@ -5706,7 +5706,7 @@ vectorizable_conversion (vec_info *vinfo, > > scalar_mode lhs_mode = SCALAR_TYPE_MODE (lhs_type); > > scalar_mode rhs_mode = SCALAR_TYPE_MODE (rhs_type); > > opt_scalar_mode rhs_mode_iter; > > - auto_vec<std::pair<tree, tree_code> > converts; > > + auto_vec<std::pair<tree, tree_code>, 2> converts; > > > > /* Supportable by target? */ > > switch (modifier) > > -- > > 2.43.0 > >