This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use vm in sse2_cvtps2pd<mask_name>


On Fri, Jan 29, 2016 at 5:01 AM, H.J. Lu <hongjiu.lu@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}"


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]