This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix PR52298
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: richard dot guenther at gmail dot com (Richard Guenther)
- Cc: rguenther at suse dot de (Richard Guenther), gcc-patches at gcc dot gnu dot org
- Date: Tue, 28 Feb 2012 15:51:53 +0100 (CET)
- Subject: Re: [PATCH] Fix PR52298
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?
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);
--
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE
Ulrich.Weigand@de.ibm.com