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: [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


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