Re: [PATCH] Use *blendv* for sse_movcc/vcond/vcondu if possible

2011-09-21 Thread Richard Henderson
On 09/21/2011 07:40 AM, Jakub Jelinek wrote: > * config/i386/i386.c (ix86_expand_sse_movcc): Use > blendvps, blendvpd and pblendvb if possible. > > * gcc.dg/vect/vect-cond-7.c: New test. > * gcc.target/i386/sse4_1-cond-1.c: New test. > * gcc.target/i386/avx-cond-1.c:

Re: [PATCH] Use *blendv* for sse_movcc/vcond/vcondu if possible

2011-09-21 Thread Jakub Jelinek
On Wed, Sep 21, 2011 at 07:25:43AM -0700, Richard Henderson wrote: > On 09/21/2011 04:37 AM, Jakub Jelinek wrote: > >op_false = force_reg (mode, op_false); > > + switch (mode) > > + { > > + case V4SFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvps; break; > > + case V2DFmode: i

Re: [PATCH] Use *blendv* for sse_movcc/vcond/vcondu if possible

2011-09-21 Thread Richard Henderson
On 09/21/2011 04:37 AM, Jakub Jelinek wrote: >op_false = force_reg (mode, op_false); > + switch (mode) > + { > + case V4SFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvps; break; > + case V2DFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvpd; break; > + case V16QImod

Re: [PATCH] Use *blendv* for sse_movcc/vcond/vcondu if possible

2011-09-21 Thread Jakub Jelinek
On Wed, Sep 21, 2011 at 02:02:44PM +0200, Uros Bizjak wrote: > > +      rtx (*gen) (rtx, rtx, rtx, rtx) = NULL; > > + > >       op_false = force_reg (mode, op_false); > > +      switch (mode) > > +       { > > +       case V4SFmode: if (TARGET_SSE4_1) gen = gen_sse4_1_blendvps; break; > > +       c

Re: [PATCH] Use *blendv* for sse_movcc/vcond/vcondu if possible

2011-09-21 Thread Uros Bizjak
On Wed, Sep 21, 2011 at 1:37 PM, Jakub Jelinek wrote: > For vcond{,u} etc. we currently generate vpandn+vpand+vpor > sequence but SSE4.1+ has instructions for at least some modes > to handle those 3 in one instruction (haven't benchmarked how much > faster/slower it is though). > > Bootstrapped/r