This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR52298
- From: Richard Guenther <rguenther at suse dot de>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: Richard Guenther <richard dot guenther at gmail dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 28 Feb 2012 15:54:55 +0100 (CET)
- Subject: Re: [PATCH] Fix PR52298
- References: <201202281451.q1SEpr2t029279@d06av02.portsmouth.uk.ibm.com>
On Tue, 28 Feb 2012, Ulrich Weigand wrote:
> Richard Guenther wrote:
> > On Fri, Feb 24, 2012 at 2:16 PM, Ulrich Weigand <uweigand@de.ibm.com> wrote:
> > > this looks to me that, since the check is intended to verify that
> > > "misalignment remains the same throughout the execuction of the loop",
> > > we actually want to check the inner-loop step here as well, i.e. revert
> > > this chunk of your patch ...
> >
> > Hmm. I have to admit I don't know the outer loop vectorization code very
> > well, but the comments indeed suggest that revering that hunk is ok. Can
> > you check that patch on powerpc and commit it if it works ok?
>
> I'm testing the following patch.
>
> On spu-elf, testing has completed with no regressions; all the
> vect-outer- tests now pass again.
>
> On powerpc64-linux, testing is still ongoing (I had to re-do the
> baseline run ... b.t.w. this showed that the vect-outer- tests
> also fail on this target currently).
>
> OK once testing has completed successfully on powerpc?
Ok.
Thanks,
Richard.
> Bye,
> Ulrich
>
> ChangeLog:
>
> Partially revert:
>
> 2012-02-20 Richard Guenther <rguenther@suse.de>
> PR tree-optimization/52298
> * tree-vect-stmts.c (vectorizable_load): Properly use
> STMT_VINFO_DR_STEP instead of DR_STEP when vectorizing
> outer loops.
>
>
> Index: gcc/tree-vect-stmts.c
> ===================================================================
> *** gcc/tree-vect-stmts.c (revision 184503)
> --- gcc/tree-vect-stmts.c (working copy)
> *************** vectorizable_load (gimple stmt, gimple_s
> *** 4659,4665 ****
> nested within an outer-loop that is being vectorized. */
>
> if (nested_in_vect_loop
> ! && (TREE_INT_CST_LOW (STMT_VINFO_DR_STEP (stmt_info))
> % GET_MODE_SIZE (TYPE_MODE (vectype)) != 0))
> {
> gcc_assert (alignment_support_scheme != dr_explicit_realign_optimized);
> --- 4659,4665 ----
> nested within an outer-loop that is being vectorized. */
>
> if (nested_in_vect_loop
> ! && (TREE_INT_CST_LOW (DR_STEP (dr))
> % GET_MODE_SIZE (TYPE_MODE (vectype)) != 0))
> {
> gcc_assert (alignment_support_scheme != dr_explicit_realign_optimized);
>
>
--
Richard Guenther <rguenther@suse.de>
SUSE / SUSE Labs
SUSE LINUX Products GmbH - Nuernberg - AG Nuernberg - HRB 16746
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer