Richard Guenther wrote: > On Fri, Feb 24, 2012 at 2:16 PM, Ulrich Weigand <uweig...@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 <rguent...@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.weig...@de.ibm.com