aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJonathan Wright <jonathan.wright@arm.com>2021-03-18 16:23:50 +0000
committerJonathan Wright <jonathan.wright@arm.com>2021-04-28 21:13:50 +0100
commit6a82f012c4a1c12468b154c59b817dc2d4d044c5 (patch)
treebd7b276467b7b61f7f908d9ba60f2e15f2488f53 /gcc
parent67cf12a8171399a9e724a7eb6cc80908ed297eaa (diff)
downloadgcc-6a82f012c4a1c12468b154c59b817dc2d4d044c5.zip
gcc-6a82f012c4a1c12468b154c59b817dc2d4d044c5.tar.gz
gcc-6a82f012c4a1c12468b154c59b817dc2d4d044c5.tar.bz2
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 <type> __attribute__ ((__always_inline__)) to: __extension__ extern __inline <type> __attribute__ ((__always_inline__, __gnu_inline__, __artificial__)) gcc/ChangeLog: 2021-03-18 Jonathan Wright <jonathan.wright@arm.com> * config/aarch64/arm_acle.h (__attribute__): Make intrinsic attributes consistent with those defined in arm_neon.h.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/arm_acle.h69
1 files changed, 46 insertions, 23 deletions
diff --git a/gcc/config/aarch64/arm_acle.h b/gcc/config/aarch64/arm_acle.h
index 73b29f4..13f2363 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);