This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: [RFC, vectorizer] Allow single element vector types for vector reduction operations


Hi Jon, Richard,

> > >
> > > Testing the following instead:
> >
> > Any news on this?
> 
> Didn't work out as expected.  I think the logic in tree-vect-generic is the one
> to be fixed but I have to carve out some time to look into it so stay tuned.

In the meantime can this patch be reverted? It is causing ICEs on AArch64 and ARM
Preventing us from building benchmarks and tracking the toolchain performance.

Thanks,
Tamar

> 
> Richard.
> 
> > VP.
> >
> >
> > >
> > > Index: gcc/tree-vect-generic.c
> > >
> ==========================================================
> =========
> > > --- gcc/tree-vect-generic.c     (revision 251642)
> > > +++ gcc/tree-vect-generic.c     (working copy)
> > > @@ -1640,7 +1640,7 @@ expand_vector_operations_1 (gimple_stmt_
> > >        || code == VEC_UNPACK_FLOAT_LO_EXPR)
> > >      type = TREE_TYPE (rhs1);
> > >
> > > -  /* For widening/narrowing vector operations, the relevant type is
> > > of the
> > > +  /* For widening vector operations, the relevant type is of the
> > >       arguments, not the widened result.  VEC_UNPACK_FLOAT_*_EXPR is
> > >       calculated in the same way above.  */
> > >    if (code == WIDEN_SUM_EXPR
> > > @@ -1650,9 +1650,6 @@ expand_vector_operations_1 (gimple_stmt_
> > >        || code == VEC_WIDEN_MULT_ODD_EXPR
> > >        || code == VEC_UNPACK_HI_EXPR
> > >        || code == VEC_UNPACK_LO_EXPR
> > > -      || code == VEC_PACK_TRUNC_EXPR
> > > -      || code == VEC_PACK_SAT_EXPR
> > > -      || code == VEC_PACK_FIX_TRUNC_EXPR
> > >        || code == VEC_WIDEN_LSHIFT_HI_EXPR
> > >        || code == VEC_WIDEN_LSHIFT_LO_EXPR)
> > >      type = TREE_TYPE (rhs1);
> > >
> > >
> > > also fix for a bug uncovered by the previous one:
> > >
> > > Index: gcc/gimple-ssa-strength-reduction.c
> > >
> ==========================================================
> =========
> > > --- gcc/gimple-ssa-strength-reduction.c (revision 251710)
> > > +++ gcc/gimple-ssa-strength-reduction.c (working copy)
> > > @@ -1742,8 +1742,7 @@ find_candidates_dom_walker::before_dom_c
> > >         slsr_process_ref (gs);
> > >
> > >        else if (is_gimple_assign (gs)
> > > -              && SCALAR_INT_MODE_P
> > > -                   (TYPE_MODE (TREE_TYPE (gimple_assign_lhs (gs)))))
> > > +              && INTEGRAL_TYPE_P (TREE_TYPE (gimple_assign_lhs
> > > + (gs))))
> > >         {
> > >           tree rhs1 = NULL_TREE, rhs2 = NULL_TREE;
> > >
> > >
> >
> >
> 
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton,
> HRB 21284 (AG Nuernberg)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]