File tree Expand file tree Collapse file tree 2 files changed +13
-1
lines changed
libcudacxx/include/cuda/std/__cccl Expand file tree Collapse file tree 2 files changed +13
-1
lines changed Original file line number Diff line number Diff line change 134134# define _CCCL_RESTRICT __restrict__
135135#endif // ^^^ !_CCCL_COMPILER(MSVC) ^^^
136136
137+ #if _CCCL_HAS_CPP_ATTRIBUTE(assume)
138+ # define _CCCL_ASSUME (...) [[assume(__VA_ARGS__)]]
139+ #else // ^^^ _CCCL_COMPILER(MSVC) ^^^ / vvv !_CCCL_COMPILER(MSVC) vvv
140+ # define _CCCL_ASSUME (...) _CCCL_BUILTIN_ASSUME(__VA_ARGS__)
141+ #endif // ^^^ !_CCCL_COMPILER(MSVC) ^^^
142+
137143#endif // __CCCL_ATTRIBUTES_H
Original file line number Diff line number Diff line change 101101# define _CCCL_BUILTIN_ADDRESSOF (...) __builtin_addressof(__VA_ARGS__)
102102#endif // _CCCL_CHECK_BUILTIN(builtin_addressof)
103103
104- #if _CCCL_CHECK_BUILTIN (builtin_assume )
104+ #if _CCCL_CHECK_BUILTIN (builtin_assume ) || _CCCL_COMPILER ( CLANG ) || _CCCL_COMPILER ( NVHPC )
105105# define _CCCL_BUILTIN_ASSUME (...) __builtin_assume(__VA_ARGS__)
106+ #elif _CCCL_COMPILER (GCC , >=, 13 )
107+ # define _CCCL_BUILTIN_ASSUME (...) \
108+ NV_IF_ELSE_TARGET(NV_IS_DEVICE, (__builtin_assume(__VA_ARGS__);), (__attribute__((__assume__(__VA_ARGS__)));))
109+ #elif _CCCL_COMPILER (MSVC )
110+ # define _CCCL_BUILTIN_ASSUME (...) \
111+ NV_IF_ELSE_TARGET(NV_IS_DEVICE, (__builtin_assume(__VA_ARGS__);), (__assume(__VA_ARGS__);))
106112#endif // _CCCL_CHECK_BUILTIN(builtin_assume)
107113
108114// NVCC prior to 11.2 cannot handle __builtin_assume
You can’t perform that action at this time.
0 commit comments