Andrew Pinski <quic_apin...@quicinc.com> writes:
> All of the data intrinsics don't read/write memory nor they are fp related.
> So adding the attributes will improve the code generation slightly.
>
> Built and tested for aarch64-linux-gnu
>
> gcc/ChangeLog:
>
>       * config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): 
> Call
>       aarch64_get_attributes and update calls to aarch64_general_add_builtin.
>
> Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>

OK, thanks.

Richard

> ---
>  gcc/config/aarch64/aarch64-builtins.cc | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/config/aarch64/aarch64-builtins.cc 
> b/gcc/config/aarch64/aarch64-builtins.cc
> index 9705f2de090..bc1719adbaa 100644
> --- a/gcc/config/aarch64/aarch64-builtins.cc
> +++ b/gcc/config/aarch64/aarch64-builtins.cc
> @@ -2162,6 +2162,8 @@ aarch64_init_ls64_builtins (void)
>  static void
>  aarch64_init_data_intrinsics (void)
>  {
> +  /* These intrinsics are not fp nor they read/write memory. */
> +  tree attrs = aarch64_get_attributes (FLAG_NONE, SImode);
>    tree uint32_fntype = build_function_type_list (uint32_type_node,
>                                                uint32_type_node, NULL_TREE);
>    tree ulong_fntype = build_function_type_list (long_unsigned_type_node,
> @@ -2171,22 +2173,22 @@ aarch64_init_data_intrinsics (void)
>                                                uint64_type_node, NULL_TREE);
>    aarch64_builtin_decls[AARCH64_REV16]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rev16", uint32_fntype,
> -                                AARCH64_REV16);
> +                                AARCH64_REV16, attrs);
>    aarch64_builtin_decls[AARCH64_REV16L]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rev16l", ulong_fntype,
> -                                AARCH64_REV16L);
> +                                AARCH64_REV16L, attrs);
>    aarch64_builtin_decls[AARCH64_REV16LL]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rev16ll", 
> uint64_fntype,
> -                                AARCH64_REV16LL);
> +                                AARCH64_REV16LL, attrs);
>    aarch64_builtin_decls[AARCH64_RBIT]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rbit", uint32_fntype,
> -                                AARCH64_RBIT);
> +                                AARCH64_RBIT, attrs);
>    aarch64_builtin_decls[AARCH64_RBITL]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rbitl", ulong_fntype,
> -                                AARCH64_RBITL);
> +                                AARCH64_RBITL, attrs);
>    aarch64_builtin_decls[AARCH64_RBITLL]
>      = aarch64_general_add_builtin ("__builtin_aarch64_rbitll", uint64_fntype,
> -                                AARCH64_RBITLL);
> +                                AARCH64_RBITLL, attrs);
>  }
>  
>  /* Implement #pragma GCC aarch64 "arm_acle.h".  */

Reply via email to