Re: [i386, avx2] Fix representation of the 256-bit vpblendw

2011-10-07 Thread Richard Henderson
On 10/07/2011 02:40 PM, Jakub Jelinek wrote: > On Fri, Oct 07, 2011 at 02:13:40PM -0700, Richard Henderson wrote: >> +(define_insn "*avx2_pblendw" >> + [(set (match_operand:V16HI 0 "register_operand" "=x") >> +(vec_merge:V16HI >> + (match_operand:V16HI 2 "nonimmediate_operand" "xm") >> +

Re: [i386, avx2] Fix representation of the 256-bit vpblendw

2011-10-07 Thread Jakub Jelinek
On Fri, Oct 07, 2011 at 02:13:40PM -0700, Richard Henderson wrote: > +(define_insn "*avx2_pblendw" > + [(set (match_operand:V16HI 0 "register_operand" "=x") > + (vec_merge:V16HI > + (match_operand:V16HI 2 "nonimmediate_operand" "xm") > + (match_operand:V16HI 1 "register_operand" "x

[i386, avx2] Fix representation of the 256-bit vpblendw

2011-10-07 Thread Richard Henderson
A representation with vec_merge and a 0..255 constant is incorrect. Both 128-bit lanes are merged with the same pattern, thus the rtl-level vec_merge operand should replicate the imm8 operand into two bytes. I created an expander with the old name and old interface so that we can continue using it