This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Use vm in sse2_cvtps2pd<mask_name>
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 29 Jan 2016 08:25:29 +0100
- Subject: Re: [PATCH] Use vm in sse2_cvtps2pd<mask_name>
- Authentication-results: sourceware.org; auth=none
- References: <20160129040121 dot GA17741 at intel dot com>
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}"