On Tue, May 31, 2016 at 07:49:55PM -0400, Michael Meissner wrote:
> This patch adds support to issue the MTVSRDD on 64-bit ISA 3.0 systems when 
> the
> compiler has a 64-bit value in a GPR, and it wants to create a vector that has
> the 64-bit value in both sides of the 128-bit value.

>  ;; V2DF/V2DI splat
>  (define_insn "vsx_splat_<mode>"
> -  [(set (match_operand:VSX_D 0 "vsx_register_operand" 
> "=wd,wd,wd,?<VSa>,?<VSa>,?<VSa>")
> +  [(set (match_operand:VSX_D 0 "vsx_register_operand" "=<VSa>,<VSa>,we")
>       (vec_duplicate:VSX_D
> -      (match_operand:<VS_scalar> 1 "splat_input_operand" 
> "<VS_64reg>,f,Z,<VSa>,<VSa>,Z")))]
> +      (match_operand:<VS_scalar> 1 "splat_input_operand" "<VS_64reg>,Z,r")))]
>    "VECTOR_MEM_VSX_P (<MODE>mode)"
>    "@
>     xxpermdi %x0,%x1,%x1,0
> -   xxpermdi %x0,%x1,%x1,0
>     lxvdsx %x0,%y1
> -   xxpermdi %x0,%x1,%x1,0
> -   xxpermdi %x0,%x1,%x1,0
> -   lxvdsx %x0,%y1"
> -  [(set_attr "type" "vecperm,vecperm,vecload,vecperm,vecperm,vecload")])
> +   mtvsrdd %x0,%1,%1"
> +  [(set_attr "type" "vecperm,vecload,mftgpr")])

It should use "b" instead of "r" for the mtvsrdd case.

Okay for trunk with that change, after retesting.  Okay for 6 later, too.

Thanks,


Segher

Reply via email to