From: Jonathan Wright Date: Thu, 18 Mar 2021 16:23:50 +0000 (+0000) Subject: aarch64: Update attributes of arm_acle.h intrinsics X-Git-Tag: basepoints/gcc-13~8073 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6a82f012c4a1c12468b154c59b817dc2d4d044c5;p=thirdparty%2Fgcc.git aarch64: Update attributes of arm_acle.h intrinsics Update the attributes of all intrinsics defined in arm_acle.h to be consistent with the attributes of the intrinsics defined in arm_neon.h. Specifically, this means updating the attributes from: __extension__ static __inline __attribute__ ((__always_inline__)) to: __extension__ extern __inline __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) gcc/ChangeLog: 2021-03-18 Jonathan Wright * config/aarch64/arm_acle.h (__attribute__): Make intrinsic attributes consistent with those defined in arm_neon.h. --- diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h index 73b29f4b8dc9..13f23632474b 100644 --- a/gcc/config/aarch64/arm_acle.h +++ b/gcc/config/aarch64/arm_acle.h @@ -35,7 +35,8 @@ extern "C" { #pragma GCC push_options #pragma GCC target ("arch=armv8.3-a") -__extension__ static __inline int32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline int32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __jcvt (double __a) { return __builtin_aarch64_jcvtzs (__a); @@ -45,49 +46,57 @@ __jcvt (double __a) #pragma GCC push_options #pragma GCC target ("arch=armv8.5-a") -__extension__ static __inline float __attribute__ ((__always_inline__)) +__extension__ extern __inline float +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint32zf (float __a) { return __builtin_aarch64_frint32zsf (__a); } -__extension__ static __inline double __attribute__ ((__always_inline__)) +__extension__ extern __inline double +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint32z (double __a) { return __builtin_aarch64_frint32zdf (__a); } -__extension__ static __inline float __attribute__ ((__always_inline__)) +__extension__ extern __inline float +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint64zf (float __a) { return __builtin_aarch64_frint64zsf (__a); } -__extension__ static __inline double __attribute__ ((__always_inline__)) +__extension__ extern __inline double +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint64z (double __a) { return __builtin_aarch64_frint64zdf (__a); } -__extension__ static __inline float __attribute__ ((__always_inline__)) +__extension__ extern __inline float +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint32xf (float __a) { return __builtin_aarch64_frint32xsf (__a); } -__extension__ static __inline double __attribute__ ((__always_inline__)) +__extension__ extern __inline double +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint32x (double __a) { return __builtin_aarch64_frint32xdf (__a); } -__extension__ static __inline float __attribute__ ((__always_inline__)) +__extension__ extern __inline float +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint64xf (float __a) { return __builtin_aarch64_frint64xsf (__a); } -__extension__ static __inline double __attribute__ ((__always_inline__)) +__extension__ extern __inline double +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rint64x (double __a) { return __builtin_aarch64_frint64xdf (__a); @@ -100,49 +109,57 @@ __rint64x (double __a) #pragma GCC target ("+nothing+crc") -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32b (uint32_t __a, uint8_t __b) { return __builtin_aarch64_crc32b (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32cb (uint32_t __a, uint8_t __b) { return __builtin_aarch64_crc32cb (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32ch (uint32_t __a, uint16_t __b) { return __builtin_aarch64_crc32ch (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32cw (uint32_t __a, uint32_t __b) { return __builtin_aarch64_crc32cw (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32cd (uint32_t __a, uint64_t __b) { return __builtin_aarch64_crc32cx (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32h (uint32_t __a, uint16_t __b) { return __builtin_aarch64_crc32h (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32w (uint32_t __a, uint32_t __b) { return __builtin_aarch64_crc32w (__a, __b); } -__extension__ static __inline uint32_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint32_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __crc32d (uint32_t __a, uint64_t __b) { return __builtin_aarch64_crc32x (__a, __b); @@ -166,25 +183,29 @@ __crc32d (uint32_t __a, uint64_t __b) #define _TMFAILURE_INT 0x00800000u #define _TMFAILURE_TRIVIAL 0x01000000u -__extension__ static __inline uint64_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint64_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __tstart (void) { return __builtin_aarch64_tstart (); } -__extension__ static __inline void __attribute__ ((__always_inline__)) +__extension__ extern __inline void +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __tcommit (void) { __builtin_aarch64_tcommit (); } -__extension__ static __inline void __attribute__ ((__always_inline__)) +__extension__ extern __inline void +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __tcancel (const uint64_t __reason) { __builtin_aarch64_tcancel (__reason); } -__extension__ static __inline uint64_t __attribute__ ((__always_inline__)) +__extension__ extern __inline uint64_t +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __ttest (void) { return __builtin_aarch64_ttest (); @@ -195,13 +216,15 @@ __ttest (void) #pragma GCC push_options #pragma GCC target ("+nothing+rng") -__extension__ static __inline int __attribute__ ((__always_inline__)) +__extension__ extern __inline int +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rndr (uint64_t *__res) { return __builtin_aarch64_rndr (__res); } -__extension__ static __inline int __attribute__ ((__always_inline__)) +__extension__ extern __inline int +__attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) __rndrrs (uint64_t *__res) { return __builtin_aarch64_rndrrs (__res);