This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Auto vectorize cond expr (remaining patches)
- From: Richard Henderson <rth at redhat dot com>
- To: Devang Patel <dpatel at apple dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Sat, 9 Apr 2005 00:02:20 -0700
- Subject: Re: [PATCH] Auto vectorize cond expr (remaining patches)
- References: <EB188951-3A67-49D0-8DF3-59ACA34AD6CF@apple.com>
On Thu, Mar 31, 2005 at 04:29:41PM -0800, Devang Patel wrote:
> This is remaining bits of vectorizing cond expr bits I posted in
> last sept.
Please recall that apple's mailer is broken and mangles patches.
> This patch adds support to 1) vectorize conditional
> expressions (using vec_cond_optab). 2) It also adds support to check
> dependence distance wrt vectorization factor. This work was
> presented in two different patches in sept. (along with 4 other
> patches but these two missed GCC 4.0 train.). This patches are
> used in autovect-branch and apple-ppc-branch since last 6 months.
I found one of these, I think,
http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02889.html
but not the other, and even the one basically has no commentary
on what you're trying to do.
I definitely want them split back into separate patches.
> ! /* Same loop iteration. */
> ! if (dist == 0)
> ! {
> ! if (vect_print_dump_info (REPORT_UNVECTORIZED_LOOPS, LOOP_LOC
> (loop_vinfo)))
> ! fprintf (vect_dump, "dependence distance 0.");
> ! return false;
> ! }
return true?
> ! unsigned int loops_num;
What is this?
> *************** rs6000_emit_vector_select (rtx dest, rtx
> *** 10667,10673 ****
>
> t = gen_rtx_fmt_ee (SET, VOIDmode, temp,
> gen_rtx_fmt_Ei (UNSPEC, dest_mode,
> ! gen_rtvec (3, op1, op2, mask),
> vsel_insn_index));
> emit_insn (t);
> emit_move_insn (dest, temp);
> --- 10667,10673 ----
>
> t = gen_rtx_fmt_ee (SET, VOIDmode, temp,
> gen_rtx_fmt_Ei (UNSPEC, dest_mode,
> ! gen_rtvec (3, op2, op1, mask),
> vsel_insn_index));
I don't have enough context to know whether this is correct,
but you should pass this separately though an rs6000 maintainer.
> + /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -
> maltivec" { target powerpc*-*-* } } */
> + /* { dg-options "-O2 -ftree-vectorize -fdump-tree-vect-stats -
> msse2" { target i?86-*-* x86_64-*-* } } */
Surely you're looking for another effective-target hook?
r~