@@ -60,32 +60,35 @@ struct remove_addrspace<T [[clang::address_space(N)]]> : type_identity<T> {};
6060template <class T >
6161using remove_addrspace_t = typename remove_addrspace<T>::type;
6262
63- template <typename To, typename From> inline To bitCast (From V) {
63+ template <typename To, typename From> OMP_ATTRS inline To bitCast (From V) {
6464 static_assert (sizeof (To) == sizeof (From), " Bad conversion" );
6565 return __builtin_bit_cast (To, V);
6666}
6767
6868// / Return the value \p Var from thread Id \p SrcLane in the warp if the thread
6969// / is identified by \p Mask.
70- int32_t shuffle (uint64_t Mask, int32_t Var, int32_t SrcLane, int32_t Width);
70+ OMP_ATTRS int32_t shuffle (uint64_t Mask, int32_t Var, int32_t SrcLane,
71+ int32_t Width);
7172
72- int32_t shuffleDown (uint64_t Mask, int32_t Var, uint32_t Delta, int32_t Width);
73+ OMP_ATTRS int32_t shuffleDown (uint64_t Mask, int32_t Var, uint32_t Delta,
74+ int32_t Width);
7375
74- int64_t shuffleDown (uint64_t Mask, int64_t Var, uint32_t Delta, int32_t Width);
76+ OMP_ATTRS int64_t shuffleDown (uint64_t Mask, int64_t Var, uint32_t Delta,
77+ int32_t Width);
7578
76- uint64_t ballotSync (uint64_t Mask, int32_t Pred);
79+ OMP_ATTRS uint64_t ballotSync (uint64_t Mask, int32_t Pred);
7780
7881// / Return \p LowBits and \p HighBits packed into a single 64 bit value.
79- uint64_t pack (uint32_t LowBits, uint32_t HighBits);
82+ OMP_ATTRS uint64_t pack (uint32_t LowBits, uint32_t HighBits);
8083
8184// / Unpack \p Val into \p LowBits and \p HighBits.
82- void unpack (uint64_t Val, uint32_t &LowBits, uint32_t &HighBits);
85+ OMP_ATTRS void unpack (uint64_t Val, uint32_t &LowBits, uint32_t &HighBits);
8386
8487// / Return true iff \p Ptr is pointing into shared (local) memory (AS(3)).
85- bool isSharedMemPtr (void *Ptr);
88+ OMP_ATTRS bool isSharedMemPtr (void *Ptr);
8689
8790// / Return true iff \p Ptr is pointing into (thread) local memory (AS(5)).
88- bool isThreadLocalMemPtr (void *Ptr);
91+ OMP_ATTRS bool isThreadLocalMemPtr (void *Ptr);
8992
9093// / A pointer variable that has by design an `undef` value. Use with care.
9194[[clang::loader_uninitialized]] static void *const UndefPtr;
0 commit comments