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]

[patch] Re: fix 64-bit vectorization





This patch fixes the problem in vect-65.c.

Bootstrapped and tested on ppc-darwin and powerpc64-suse-linux.

OK for mainline?

Changelog entry:

2005-01-03  Ira Rosen  <irar@il.ibm.com>

            * tree-vectorizer.c (vect_strip_conversions): New function.
            (vect_analyze_offset_expr): Call vect_strip_conversions. Add
check for binary
            class.

Patch:
(See attached file: strip.diff)

Just to be sure, there are two more places in vectorizer, where we call
STRIP_NOPS.
In vect_analyze_pointer_ref_access:
      if (!vect_is_simple_iv_evolution (loopnum, access_fn, &init, &step,
false))
      ...
      STRIP_NOPS (init);
and in vect_get_memtag_and_dr:
      case PLUS_EXPR:
      case MINUS_EXPR:
      ...
        oprnd1 = TREE_OPERAND (memref, 1);
        STRIP_NOPS (oprnd1);

I guess STRIP_NOPS should suffice there.

Thanks,
Ira

Eric Botcazou <ebotcazou@libertysurf.fr> wrote on 02/01/2005 12:42:23:

> > Seems this is affecting quite a few 64-bit targets, causing most
> > of the vectorization tests to crash.  I'm not sure if we didn't
> > expect to see conversions here, or if it was thought that the
> > STRIP_NOPS should take care of all of them, but this seems to do
> > the trick for the moment.
> >
> > Tested on x86_64-linux.
>
> Works on SPARC 64-bit too.  We're left with only vect-65.c.
>
> --
> Eric Botcazou

Attachment: strip.diff
Description: Binary data


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