Jonathan Wright <jonathan.wri...@arm.com> writes:
> Hi,
>
> As subject, this patch corrects the type attribute in RTL patterns that
> generate XTN/XTN2 instructions to be "neon_move_narrow_q".
>
> This makes a material difference because these instructions can be
> executed on both SIMD pipes in the Cortex-A57 core model, whereas the
> "neon_shift_imm_narrow_q" attribute (in use until now) would suggest
> to the scheduler that they could only execute on one of the two
> pipes.
>
> Regression tested and bootstrapped on aarch64-none-linux-gnu - no
> issues.
>
> Ok for master?

OK, thanks.

Richard

> Thanks,
> Jonathan
>
> ---
>
> gcc/ChangeLog:
>
> 2021-05-18  Jonathan Wright  <jonathan.wri...@arm.com>
>
>         * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
>         type attribute in patterns generating XTN(2).
>
> diff --git a/gcc/config/aarch64/aarch64-simd.md 
> b/gcc/config/aarch64/aarch64-simd.md
> index 
> 447b5575f2f5adbad4957e90787a4954af644b20..e750faed1dbd940cdfa216d858b98f3bc25bba42
>  100644
> --- a/gcc/config/aarch64/aarch64-simd.md
> +++ b/gcc/config/aarch64/aarch64-simd.md
> @@ -1697,7 +1697,7 @@
>       (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w")))]
>    "TARGET_SIMD"
>    "xtn\\t%0.<Vntype>, %1.<Vtype>"
> -  [(set_attr "type" "neon_shift_imm_narrow_q")]
> +  [(set_attr "type" "neon_move_narrow_q")]
>  )
>  
>  (define_insn "aarch64_xtn2<mode>_le"
> @@ -1707,7 +1707,7 @@
>         (truncate:<VNARROWQ> (match_operand:VQN 2 "register_operand" "w"))))]
>    "TARGET_SIMD && !BYTES_BIG_ENDIAN"
>    "xtn2\t%0.<V2ntype>, %2.<Vtype>"
> -  [(set_attr "type" "neon_shift_imm_narrow_q")]
> +  [(set_attr "type" "neon_move_narrow_q")]
>  )
>  
>  (define_insn "aarch64_xtn2<mode>_be"
> @@ -1717,7 +1717,7 @@
>         (match_operand:<VNARROWQ> 1 "register_operand" "0")))]
>    "TARGET_SIMD && BYTES_BIG_ENDIAN"
>    "xtn2\t%0.<V2ntype>, %2.<Vtype>"
> -  [(set_attr "type" "neon_shift_imm_narrow_q")]
> +  [(set_attr "type" "neon_move_narrow_q")]
>  )
>  
>  (define_expand "aarch64_xtn2<mode>"
> @@ -8618,7 +8618,7 @@
>       (truncate:<VNARROWQ> (match_operand:VQN 1 "register_operand" "w")))]
>    "TARGET_SIMD"
>    "xtn\t%0.<Vntype>, %1.<Vtype>"
> -  [(set_attr "type" "neon_shift_imm_narrow_q")]
> +  [(set_attr "type" "neon_move_narrow_q")]
>  )
>  
>  (define_insn "aarch64_bfdot<mode>"

Reply via email to