On Thu, Mar 13, 2025 at 05:23:00PM -0400, Ayan Shafqat wrote:
> This patch introduces two new inline functions, __sqrt and __sqrtf, in
> arm_acle.h for Aarch64 targets. These functions wrap the new builtins
> __builtin_aarch64_sqrtdf and __builtin_aarch64_sqrtsf, respectively,
> providing direct access to hardware instructions without relying on the
> standard math library or optimization levels.
> 
> gcc/ChangeLog:
> 
>       * config/aarch64/arm_acle.h (__sqrt, __sqrtf): New function.
> 
> Signed-off-by: Ayan Shafqat <ayan.x.shaf...@gmail.com>
> ---
>  gcc/config/aarch64/arm_acle.h | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
> index 7976c117daf..d972a4e7e7e 100644
> --- a/gcc/config/aarch64/arm_acle.h
> +++ b/gcc/config/aarch64/arm_acle.h
> @@ -118,6 +118,20 @@ __revl (unsigned long __value)
>      return __rev (__value);
>  }
>  
> +__extension__ extern __inline double
> +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> +__sqrt(double  __x)

Just formatting nits, there should be space in between the function name
and ( and only one space between double and __x.

Also, it is unclear why it uses __extension__ (but admittedly it is used
elsewhere in the header.

> +{
> +    return __builtin_aarch64_sqrtdf (__x);

Just two space indentation rather than 4 spaces.

> +}
> +
> +__extension__ extern __inline float
> +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__))
> +__sqrtf(float __x)

See above

> +{
> +    return __builtin_aarch64_sqrtsf (__x);

Ditto

        Jakub

Reply via email to