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: Fix PR43432, vectorize backwards stepping loads



"H.J. Lu" <hjl.tools@gmail.com> wrote on 24/09/2010 06:35:37 AM:

> From: "H.J. Lu" <hjl.tools@gmail.com>
> To: Michael Matz <matz@suse.de>
> Cc: gcc-patches@gcc.gnu.org, Ira Rosen/Haifa/IBM@IBMIL
> Date: 24/09/2010 06:35 AM
> Subject: Re: Fix PR43432, vectorize backwards stepping loads
>
> On Sat, Sep 18, 2010 at 8:57 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> > On Fri, Sep 17, 2010 at 9:00 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> >> On Thu, Sep 9, 2010 at 7:30 AM, Michael Matz <matz@suse.de> wrote:
> >>> Hi,
> >>>
> >>> On Wed, 8 Sep 2010, Ira Rosen wrote:
> >>>
> >>>> > Regstrapped on x86_64-linux. ?I've had to add x86_64-*-* to
> >>>> > target-supports.exp/vect_perm recognition which in turn makes
> >>>> > vect/slp-perm-8.c and vect/slp-perm-9.c fail then. ?That's
> most probably
> >>>> > because while x86_64 supports permutation for 4 and 8-sized
elements it
> >>>> > doesn't do so for char (slp-perm-8.c) or short (slp-
> perm-9.c). ?I'm going
> >>>> > to investigate this but seek feedback on the patch itself already
now.
> >>>> >
> >>>>
> >>>> Looks good to me.
> >>>
> >>> Okay, so here's the complete patch. ?Functionality is unchanged, but
I
> >>> extended the testsuite to have vect_perm_byte and vect_perm_short
> >>> predicates (using them in slp-perm-8.c and slp-perm-9.c), so that I
can
> >>> enable vect_perm on x86_64. ?With this one I get no regressions on
> >>> x86_64-linux (all default languages). ?Okay for trunk?
> >>>
> >>>
> >>> Ciao,
> >>> Michael.
> >>> --
> >>> ? ? ? ?PR tree-optimization/43432
> >>> ? ? ? ?* tree-vect-data-refs.c (vect_analyze_data_ref_access):
> >>> ? ? ? ?Accept backwards consecutive accesses.
> >>> ? ? ? ?(vect_create_data_ref_ptr): If step is negative generate
> >>> ? ? ? ?decreasing IVs.
> >>> ? ? ? ?* tree-vect-stmts.c (vectorizable_store): Reject negative
steps.
> >>> ? ? ? ?(perm_mask_for_reverse, reverse_vec_elements): New functions.
> >>> ? ? ? ?(vectorizable_load): Handle loads with negative steps when
easily
> >>> ? ? ? ?possible.
> >>>
> >>> testsuite/
> >>> ? ? ? ?PR tree-optimization/43432
> >>> ? ? ? ?* lib/target-supports.exp
(check_effective_target_vect_perm_byte,
> >>> ? ? ? ?check_effective_target_vect_perm_short): New predicates.
> >>> ? ? ? ?(check_effective_target_vect_perm): Include x86_64.
> >>> ? ? ? ?* gcc.dg/vect/pr43432.c: New test.
> >>> ? ? ? ?* gcc.dg/vect/vect-114.c: Adjust.
> >>> ? ? ? ?* gcc.dg/vect/vect-15.c: Ditto.
> >>> ? ? ? ?* gcc.dg/vect/slp-perm-8.c: Use new predicate.
> >>> ? ? ? ?* gcc.dg/vect/slp-perm-9.c: Ditto.
> >>>
> >>
> >> This may have caused:
> >>
> >> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45706
> >>
> >
> > This also caused:
> >
> > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45720
>
>
> It also caused:
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45764
>
> The vectorizer has been pretty much broken for a week. Is anyone
> working on it?

Unfortunately, I won't be able to help with that till October 3 - I am on
vacation.

Ira

>
>
>
> --
> H.J.


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