Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-21 Thread Uros Bizjak
On Thu, Nov 20, 2014 at 5:25 PM, Evgeny Stupachenko wrote: > Bootstrap / make check passed with updated patch. > > Is it still ok? > > It looks like we don't need "expand_vec_perm_vpshufb2_vpermq_even_odd" > any more with the patch. > However the clean up will be in the separate patch after approp

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Evgeny Stupachenko
Bootstrap / make check passed with updated patch. Is it still ok? It looks like we don't need "expand_vec_perm_vpshufb2_vpermq_even_odd" any more with the patch. However the clean up will be in the separate patch after appropriate testing. Modified ChangeLog: 2014-11-20 Evgeny Stupachenko g

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Evgeny Stupachenko
Good point! "gen_shift" also requires only SSE2. That way we can optimize out interleave sequence for V16QI mode in expand_vec_perm_even_odd_1. Thanks! Evgeny Updated patch: diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 085eb54..054089b 100644 --- a/gcc/config/i386/i386.c ++

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Richard Henderson
On 11/20/2014 12:36 PM, Evgeny Stupachenko wrote: > + /* Required for "pack". */ > + if (!TARGET_SSE4_2 || d->one_operand_p) > +return false; Why the SSE4_2 check here when... > + > + /* Only V8HI, V16QI, V16HI and V32QI modes are more profitable than general > + shuffles. */ > + if

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Evgeny Stupachenko
Thank you. Patch with proposed fixes: diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 085eb54..09c0057 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -48322,6 +48322,120 @@ expand_vec_perm_vpshufb2_vpermq_even_odd (struct expand_vec_perm_d *d) return true

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Uros Bizjak
On Thu, Nov 20, 2014 at 12:36 PM, Evgeny Stupachenko wrote: > Hi, > > The patch expand even/odd permutation using: > "and, and, pack" in odd case > "shift, shift, pack" in even case > > instead of current "pshufb, pshufb, or" or big set of unpack insns. > > AVX2/CORE bootstrap and make check passe

Re: [PATCH x86, PR60451] Expand even/odd permutation using pack insn.

2014-11-20 Thread Jakub Jelinek
On Thu, Nov 20, 2014 at 02:36:26PM +0300, Evgeny Stupachenko wrote: > + /* Only V8HI, V16QI, V16HI and V32QI modes are more profitable than general > + shuffles. */ I think switch (d->vmode) would be more readable. > + op = gen_reg_rtx (d->vmode); > + t = gen_reg_rtx (V4DImode); >