On Fri, Jan 29, 2016 at 5:01 AM, H.J. Lu <hongjiu...@intel.com> wrote: > sse2_cvtps2pd<mask_name> has > > (define_insn "sse2_cvtps2pd<mask_name>" > [(set (match_operand:V2DF 0 "register_operand" "=v") > (float_extend:V2DF > (vec_select:V2SF > (match_operand:V4SF 1 "vector_operand" "vBm") > (parallel [(const_int 0) (const_int 1)]))))] > > The memory operand size is 8 bytes (2 floats). We should use vm instead > of vBm. Tested on Linux/x86-64. OK for trunk?
OK with a ChangeLog. Thanks, Uros. > > H.J. > diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md > index 84d2b7a..ac96bbf 100644 > --- a/gcc/config/i386/sse.md > +++ b/gcc/config/i386/sse.md > @@ -5464,7 +5464,7 @@ > [(set (match_operand:V2DF 0 "register_operand" "=v") > (float_extend:V2DF > (vec_select:V2SF > - (match_operand:V4SF 1 "vector_operand" "vBm") > + (match_operand:V4SF 1 "vector_operand" "vm") > (parallel [(const_int 0) (const_int 1)]))))] > "TARGET_SSE2 && <mask_avx512vl_condition>" > "%vcvtps2pd\t{%1, %0<mask_operand2>|%0<mask_operand2>, %q1}"