@@ -224,11 +224,11 @@ EnableIfGenericBroadcast<T> GroupBroadcast(T x, id<Dimensions> local_id) {
224
224
// Single happens-before means semantics should always apply to all spaces
225
225
// Although consume is unsupported, forwarding to acquire is valid
226
226
template <typename T>
227
- static inline constexpr typename std::enable_if<
228
- std::is_same<T, sycl::ext::oneapi ::memory_order>::value ||
229
- std::is_same<T, sycl::memory_order>::value,
230
- __spv::MemorySemanticsMask::Flag>::type
231
- getMemorySemanticsMask (T Order) {
227
+ static inline constexpr
228
+ typename std::enable_if<std:: is_same<T, sycl::memory_order>::value ||
229
+ std::is_same<T, sycl::memory_order>::value,
230
+ __spv::MemorySemanticsMask::Flag>::type
231
+ getMemorySemanticsMask (T Order) {
232
232
__spv::MemorySemanticsMask::Flag SpvOrder = __spv::MemorySemanticsMask::None;
233
233
switch (Order) {
234
234
case T::relaxed:
@@ -255,27 +255,25 @@ getMemorySemanticsMask(T Order) {
255
255
}
256
256
257
257
static inline constexpr __spv::Scope::Flag
258
- getScope (ext::oneapi:: memory_scope Scope) {
258
+ getScope (memory_scope Scope) {
259
259
switch (Scope) {
260
- case ext::oneapi:: memory_scope::work_item:
260
+ case memory_scope::work_item:
261
261
return __spv::Scope::Invocation;
262
- case ext::oneapi:: memory_scope::sub_group:
262
+ case memory_scope::sub_group:
263
263
return __spv::Scope::Subgroup;
264
- case ext::oneapi:: memory_scope::work_group:
264
+ case memory_scope::work_group:
265
265
return __spv::Scope::Workgroup;
266
- case ext::oneapi:: memory_scope::device:
266
+ case memory_scope::device:
267
267
return __spv::Scope::Device;
268
- case ext::oneapi:: memory_scope::system:
268
+ case memory_scope::system:
269
269
return __spv::Scope::CrossDevice;
270
270
}
271
271
}
272
272
273
273
template <typename T, access::address_space AddressSpace>
274
274
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
275
- AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr,
276
- ext::oneapi::memory_scope Scope,
277
- ext::oneapi::memory_order Success,
278
- ext::oneapi::memory_order Failure, T Desired,
275
+ AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
276
+ memory_order Success, memory_order Failure, T Desired,
279
277
T Expected) {
280
278
auto SPIRVSuccess = getMemorySemanticsMask (Success);
281
279
auto SPIRVFailure = getMemorySemanticsMask (Failure);
@@ -287,10 +285,8 @@ AtomicCompareExchange(multi_ptr<T, AddressSpace> MPtr,
287
285
288
286
template <typename T, access::address_space AddressSpace>
289
287
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
290
- AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr,
291
- ext::oneapi::memory_scope Scope,
292
- ext::oneapi::memory_order Success,
293
- ext::oneapi::memory_order Failure, T Desired,
288
+ AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
289
+ memory_order Success, memory_order Failure, T Desired,
294
290
T Expected) {
295
291
using I = detail::make_unsinged_integer_t <T>;
296
292
auto SPIRVSuccess = getMemorySemanticsMask (Success);
@@ -308,8 +304,8 @@ AtomicCompareExchange(multi_ptr<T, AddressSpace> MPtr,
308
304
309
305
template <typename T, access::address_space AddressSpace>
310
306
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
311
- AtomicLoad (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
312
- ext::oneapi:: memory_order Order) {
307
+ AtomicLoad (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
308
+ memory_order Order) {
313
309
auto *Ptr = MPtr.get ();
314
310
auto SPIRVOrder = getMemorySemanticsMask (Order);
315
311
auto SPIRVScope = getScope (Scope);
@@ -318,8 +314,8 @@ AtomicLoad(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
318
314
319
315
template <typename T, access::address_space AddressSpace>
320
316
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
321
- AtomicLoad (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
322
- ext::oneapi:: memory_order Order) {
317
+ AtomicLoad (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
318
+ memory_order Order) {
323
319
using I = detail::make_unsinged_integer_t <T>;
324
320
auto *PtrInt =
325
321
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -332,8 +328,8 @@ AtomicLoad(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
332
328
333
329
template <typename T, access::address_space AddressSpace>
334
330
inline typename detail::enable_if_t <std::is_integral<T>::value>
335
- AtomicStore (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
336
- ext::oneapi:: memory_order Order, T Value) {
331
+ AtomicStore (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
332
+ memory_order Order, T Value) {
337
333
auto *Ptr = MPtr.get ();
338
334
auto SPIRVOrder = getMemorySemanticsMask (Order);
339
335
auto SPIRVScope = getScope (Scope);
@@ -342,8 +338,8 @@ AtomicStore(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
342
338
343
339
template <typename T, access::address_space AddressSpace>
344
340
inline typename detail::enable_if_t <std::is_floating_point<T>::value>
345
- AtomicStore (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
346
- ext::oneapi:: memory_order Order, T Value) {
341
+ AtomicStore (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
342
+ memory_order Order, T Value) {
347
343
using I = detail::make_unsinged_integer_t <T>;
348
344
auto *PtrInt =
349
345
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -356,8 +352,8 @@ AtomicStore(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
356
352
357
353
template <typename T, access::address_space AddressSpace>
358
354
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
359
- AtomicExchange (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
360
- ext::oneapi:: memory_order Order, T Value) {
355
+ AtomicExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
356
+ memory_order Order, T Value) {
361
357
auto *Ptr = MPtr.get ();
362
358
auto SPIRVOrder = getMemorySemanticsMask (Order);
363
359
auto SPIRVScope = getScope (Scope);
@@ -366,8 +362,8 @@ AtomicExchange(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
366
362
367
363
template <typename T, access::address_space AddressSpace>
368
364
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
369
- AtomicExchange (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
370
- ext::oneapi:: memory_order Order, T Value) {
365
+ AtomicExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
366
+ memory_order Order, T Value) {
371
367
using I = detail::make_unsinged_integer_t <T>;
372
368
auto *PtrInt =
373
369
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -382,8 +378,8 @@ AtomicExchange(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
382
378
383
379
template <typename T, access::address_space AddressSpace>
384
380
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
385
- AtomicIAdd (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
386
- ext::oneapi:: memory_order Order, T Value) {
381
+ AtomicIAdd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
382
+ memory_order Order, T Value) {
387
383
auto *Ptr = MPtr.get ();
388
384
auto SPIRVOrder = getMemorySemanticsMask (Order);
389
385
auto SPIRVScope = getScope (Scope);
@@ -392,8 +388,8 @@ AtomicIAdd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
392
388
393
389
template <typename T, access::address_space AddressSpace>
394
390
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
395
- AtomicISub (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
396
- ext::oneapi:: memory_order Order, T Value) {
391
+ AtomicISub (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
392
+ memory_order Order, T Value) {
397
393
auto *Ptr = MPtr.get ();
398
394
auto SPIRVOrder = getMemorySemanticsMask (Order);
399
395
auto SPIRVScope = getScope (Scope);
@@ -402,8 +398,8 @@ AtomicISub(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
402
398
403
399
template <typename T, access::address_space AddressSpace>
404
400
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
405
- AtomicFAdd (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
406
- ext::oneapi:: memory_order Order, T Value) {
401
+ AtomicFAdd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
402
+ memory_order Order, T Value) {
407
403
auto *Ptr = MPtr.get ();
408
404
auto SPIRVOrder = getMemorySemanticsMask (Order);
409
405
auto SPIRVScope = getScope (Scope);
@@ -412,8 +408,8 @@ AtomicFAdd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
412
408
413
409
template <typename T, access::address_space AddressSpace>
414
410
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
415
- AtomicAnd (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
416
- ext::oneapi:: memory_order Order, T Value) {
411
+ AtomicAnd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
412
+ memory_order Order, T Value) {
417
413
auto *Ptr = MPtr.get ();
418
414
auto SPIRVOrder = getMemorySemanticsMask (Order);
419
415
auto SPIRVScope = getScope (Scope);
@@ -422,8 +418,8 @@ AtomicAnd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
422
418
423
419
template <typename T, access::address_space AddressSpace>
424
420
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
425
- AtomicOr (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
426
- ext::oneapi:: memory_order Order, T Value) {
421
+ AtomicOr (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
422
+ memory_order Order, T Value) {
427
423
auto *Ptr = MPtr.get ();
428
424
auto SPIRVOrder = getMemorySemanticsMask (Order);
429
425
auto SPIRVScope = getScope (Scope);
@@ -432,8 +428,8 @@ AtomicOr(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
432
428
433
429
template <typename T, access::address_space AddressSpace>
434
430
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
435
- AtomicXor (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
436
- ext::oneapi:: memory_order Order, T Value) {
431
+ AtomicXor (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
432
+ memory_order Order, T Value) {
437
433
auto *Ptr = MPtr.get ();
438
434
auto SPIRVOrder = getMemorySemanticsMask (Order);
439
435
auto SPIRVScope = getScope (Scope);
@@ -442,8 +438,8 @@ AtomicXor(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
442
438
443
439
template <typename T, access::address_space AddressSpace>
444
440
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
445
- AtomicMin (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
446
- ext::oneapi:: memory_order Order, T Value) {
441
+ AtomicMin (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
442
+ memory_order Order, T Value) {
447
443
auto *Ptr = MPtr.get ();
448
444
auto SPIRVOrder = getMemorySemanticsMask (Order);
449
445
auto SPIRVScope = getScope (Scope);
@@ -452,8 +448,8 @@ AtomicMin(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
452
448
453
449
template <typename T, access::address_space AddressSpace>
454
450
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
455
- AtomicMin (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
456
- ext::oneapi:: memory_order Order, T Value) {
451
+ AtomicMin (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
452
+ memory_order Order, T Value) {
457
453
auto *Ptr = MPtr.get ();
458
454
auto SPIRVOrder = getMemorySemanticsMask (Order);
459
455
auto SPIRVScope = getScope (Scope);
@@ -462,8 +458,8 @@ AtomicMin(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
462
458
463
459
template <typename T, access::address_space AddressSpace>
464
460
inline typename detail::enable_if_t <std::is_integral<T>::value, T>
465
- AtomicMax (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
466
- ext::oneapi:: memory_order Order, T Value) {
461
+ AtomicMax (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
462
+ memory_order Order, T Value) {
467
463
auto *Ptr = MPtr.get ();
468
464
auto SPIRVOrder = getMemorySemanticsMask (Order);
469
465
auto SPIRVScope = getScope (Scope);
@@ -472,8 +468,8 @@ AtomicMax(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
472
468
473
469
template <typename T, access::address_space AddressSpace>
474
470
inline typename detail::enable_if_t <std::is_floating_point<T>::value, T>
475
- AtomicMax (multi_ptr<T, AddressSpace> MPtr, ext::oneapi:: memory_scope Scope,
476
- ext::oneapi:: memory_order Order, T Value) {
471
+ AtomicMax (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
472
+ memory_order Order, T Value) {
477
473
auto *Ptr = MPtr.get ();
478
474
auto SPIRVOrder = getMemorySemanticsMask (Order);
479
475
auto SPIRVScope = getScope (Scope);
0 commit comments