Re: [RFC PATCH] Improve -mavx{,2} vector extraction

2011-09-16 Thread Richard Henderson
On 09/16/2011 08:22 AM, Jakub Jelinek wrote: > * config/i386/sse.md (vec_extract_hi_, > vec_extract_hi_v16hi, vec_extract_hi_v32qi): Use > vextracti128 instead of vextractf128 for -mavx2 and > integer vectors. For V4DFmode fix up mode attribute. > (VEC_EXTRACT_MODE):

Re: [RFC PATCH] Improve -mavx{,2} vector extraction

2011-09-16 Thread Jakub Jelinek
On Fri, Sep 16, 2011 at 11:16:44AM +0200, Jakub Jelinek wrote: > The avx2_extracti128 pattern looked like wrong RTL, as to extract > a 2 element vector from 4 element vector it used just one constant > in the parallel instead of two. I've changed it into a define_expand. Actually there were two f

[RFC PATCH] Improve -mavx{,2} vector extraction

2011-09-16 Thread Jakub Jelinek
Hi! I've noticed vector extraction generates terrible code with -mavx{,2} when extracting something from 32-byte vectors. Everything is forced into memory, then loaded back. For extraction of first lane I believe we can just use standard 128-bit extraction from the %xmmN register corresponding to