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


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


H.J.


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