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 <rguent...@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Graham Norton,
> HRB 21284 (AG Nuernberg)

Reply via email to