@@ -239,52 +239,52 @@ extern __DPCPP_SYCL_EXTERNAL
239239// Atomic SPIR-V builtins
240240#define __SPIRV_ATOMIC_LOAD (AS, Type ) \
241241 extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicLoad (AS Type *P, int S, \
242- int O);
242+ int O) noexcept ;
243243#define __SPIRV_ATOMIC_STORE (AS, Type ) \
244- extern __DPCPP_SYCL_EXTERNAL void __spirv_AtomicStore (AS Type *P, int S, \
245- int O, Type V);
244+ extern __DPCPP_SYCL_EXTERNAL void __spirv_AtomicStore ( \
245+ AS Type *P, int S, int O, Type V) noexcept ;
246246#define __SPIRV_ATOMIC_EXCHANGE (AS, Type ) \
247- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicExchange (AS Type *P, int S, \
248- int O, Type V);
247+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicExchange ( \
248+ AS Type *P, int S, int O, Type V) noexcept ;
249249#define __SPIRV_ATOMIC_CMP_EXCHANGE (AS, Type ) \
250250 extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicCompareExchange ( \
251- AS Type *P, int S, int E, int U, Type V, Type C);
251+ AS Type *P, int S, int E, int U, Type V, Type C) noexcept ;
252252#define __SPIRV_ATOMIC_IADD (AS, Type ) \
253- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicIAdd (AS Type *P, int S, \
254- int O, Type V);
253+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicIAdd ( \
254+ AS Type *P, int S, int O, Type V) noexcept ;
255255#define __SPIRV_ATOMIC_ISUB (AS, Type ) \
256- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicISub (AS Type *P, int S, \
257- int O, Type V);
256+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicISub ( \
257+ AS Type *P, int S, int O, Type V) noexcept ;
258258#define __SPIRV_ATOMIC_FADD (AS, Type ) \
259- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFAddEXT (AS Type *P, int S, \
260- int O, Type V);
259+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFAddEXT ( \
260+ AS Type *P, int S, int O, Type V) noexcept ;
261261#define __SPIRV_ATOMIC_SMIN (AS, Type ) \
262- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicSMin (AS Type *P, int S, \
263- int O, Type V);
262+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicSMin ( \
263+ AS Type *P, int S, int O, Type V) noexcept ;
264264#define __SPIRV_ATOMIC_UMIN (AS, Type ) \
265- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicUMin (AS Type *P, int S, \
266- int O, Type V);
265+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicUMin ( \
266+ AS Type *P, int S, int O, Type V) noexcept ;
267267#define __SPIRV_ATOMIC_FMIN (AS, Type ) \
268- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFMinEXT (AS Type *P, int S, \
269- int O, Type V);
268+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFMinEXT ( \
269+ AS Type *P, int S, int O, Type V) noexcept ;
270270#define __SPIRV_ATOMIC_SMAX (AS, Type ) \
271- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicSMax (AS Type *P, int S, \
272- int O, Type V);
271+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicSMax ( \
272+ AS Type *P, int S, int O, Type V) noexcept ;
273273#define __SPIRV_ATOMIC_UMAX (AS, Type ) \
274- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicUMax (AS Type *P, int S, \
275- int O, Type V);
274+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicUMax ( \
275+ AS Type *P, int S, int O, Type V) noexcept ;
276276#define __SPIRV_ATOMIC_FMAX (AS, Type ) \
277- extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFMaxEXT (AS Type *P, int S, \
278- int O, Type V);
277+ extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicFMaxEXT ( \
278+ AS Type *P, int S, int O, Type V) noexcept ;
279279#define __SPIRV_ATOMIC_AND (AS, Type ) \
280280 extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicAnd (AS Type *P, int S, \
281- int O, Type V);
281+ int O, Type V) noexcept ;
282282#define __SPIRV_ATOMIC_OR (AS, Type ) \
283283 extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicOr (AS Type *P, int S, int O, \
284- Type V);
284+ Type V) noexcept ;
285285#define __SPIRV_ATOMIC_XOR (AS, Type ) \
286286 extern __DPCPP_SYCL_EXTERNAL Type __spirv_AtomicXor (AS Type *P, int S, \
287- int O, Type V);
287+ int O, Type V) noexcept ;
288288
289289#define __SPIRV_ATOMIC_FLOAT (AS, Type ) \
290290 __SPIRV_ATOMIC_FADD (AS, Type) \
@@ -319,18 +319,21 @@ extern __DPCPP_SYCL_EXTERNAL
319319 template <typename T> \
320320 typename std::enable_if_t < \
321321 std::is_integral<T>::value && std::is_signed<T>::value, T> \
322- __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, T Value) { \
322+ __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, \
323+ T Value) noexcept { \
323324 return __spirv_AtomicS##Op (Ptr, Memory, Semantics, Value); \
324325 } \
325326 template <typename T> \
326327 typename std::enable_if_t < \
327328 std::is_integral<T>::value && !std::is_signed<T>::value, T> \
328- __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, T Value) { \
329+ __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, \
330+ T Value) noexcept { \
329331 return __spirv_AtomicU##Op (Ptr, Memory, Semantics, Value); \
330332 } \
331333 template <typename T> \
332334 typename std::enable_if_t <std::is_floating_point<T>::value, T> \
333- __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, T Value) { \
335+ __spirv_Atomic##Op(AS T *Ptr, int Memory, int Semantics, \
336+ T Value) noexcept { \
334337 return __spirv_AtomicF##Op##EXT (Ptr, Memory, Semantics, Value); \
335338 }
336339
0 commit comments