On 04 May 21:35, Jakub Jelinek wrote:
> Hi!
> 
> Not sure how to easily construct a testcase for this (these insns are
> usually used for vectorization, and then it really depends on register
> pressure).
> But in any case, looking at documentation it seems all the used insns are
> available (generally even for further patches, what I'm looking for is
> whether the insns are available already in AVX512F, or, if all the operands
> are 128-bit or 256-bit vectors, in AVX512VL, or if they need further ISA
> extensions; HARD_REGNO_MODE_OK should guarantee that the 128-bit and 256-bit
> vectors would not be assigned to xmm16+ unless -mavx512vl).
> 
> Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk?
OK for trunk.

--
Thanks, K
> 
> 2016-05-04  Jakub Jelinek  <ja...@redhat.com>
> 
>       * config/i386/sse.md (*avx_cvtpd2dq256_2, *avx_cvtps2pd256_2): Use
>       v constraint instead of x.
> 
> --- gcc/config/i386/sse.md.jj 2016-05-04 14:36:08.000000000 +0200
> +++ gcc/config/i386/sse.md    2016-05-04 15:16:44.180894303 +0200
> @@ -4735,9 +4735,9 @@ (define_expand "avx_cvtpd2dq256_2"
>    "operands[2] = CONST0_RTX (V4SImode);")
>  
>  (define_insn "*avx_cvtpd2dq256_2"
> -  [(set (match_operand:V8SI 0 "register_operand" "=x")
> +  [(set (match_operand:V8SI 0 "register_operand" "=v")
>       (vec_concat:V8SI
> -       (unspec:V4SI [(match_operand:V4DF 1 "nonimmediate_operand" "xm")]
> +       (unspec:V4SI [(match_operand:V4DF 1 "nonimmediate_operand" "vm")]
>                      UNSPEC_FIX_NOTRUNC)
>         (match_operand:V4SI 2 "const0_operand")))]
>    "TARGET_AVX"
> @@ -5050,10 +5050,10 @@ (define_insn "<sse2_avx_avx512f>_cvtps2p
>     (set_attr "mode" "<MODE>")])
>  
>  (define_insn "*avx_cvtps2pd256_2"
> -  [(set (match_operand:V4DF 0 "register_operand" "=x")
> +  [(set (match_operand:V4DF 0 "register_operand" "=v")
>       (float_extend:V4DF
>         (vec_select:V4SF
> -         (match_operand:V8SF 1 "nonimmediate_operand" "xm")
> +         (match_operand:V8SF 1 "nonimmediate_operand" "vm")
>           (parallel [(const_int 0) (const_int 1)
>                      (const_int 2) (const_int 3)]))))]
>    "TARGET_AVX"
> 
>       Jakub

Reply via email to