@@ -224,11 +224,10 @@ 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
+ __spv::MemorySemanticsMask::Flag>::type
230
+ getMemorySemanticsMask (T Order) {
232
231
__spv::MemorySemanticsMask::Flag SpvOrder = __spv::MemorySemanticsMask::None;
233
232
switch (Order) {
234
233
case T::relaxed:
@@ -254,28 +253,25 @@ getMemorySemanticsMask(T Order) {
254
253
__spv::MemorySemanticsMask::CrossWorkgroupMemory);
255
254
}
256
255
257
- static inline constexpr __spv::Scope::Flag
258
- getScope (ext::oneapi::memory_scope Scope) {
256
+ static inline constexpr __spv::Scope::Flag getScope (memory_scope Scope) {
259
257
switch (Scope) {
260
- case ext::oneapi:: memory_scope::work_item:
258
+ case memory_scope::work_item:
261
259
return __spv::Scope::Invocation;
262
- case ext::oneapi:: memory_scope::sub_group:
260
+ case memory_scope::sub_group:
263
261
return __spv::Scope::Subgroup;
264
- case ext::oneapi:: memory_scope::work_group:
262
+ case memory_scope::work_group:
265
263
return __spv::Scope::Workgroup;
266
- case ext::oneapi:: memory_scope::device:
264
+ case memory_scope::device:
267
265
return __spv::Scope::Device;
268
- case ext::oneapi:: memory_scope::system:
266
+ case memory_scope::system:
269
267
return __spv::Scope::CrossDevice;
270
268
}
271
269
}
272
270
273
271
template <typename T, access::address_space AddressSpace>
274
272
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,
273
+ AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
274
+ memory_order Success, memory_order Failure, T Desired,
279
275
T Expected) {
280
276
auto SPIRVSuccess = getMemorySemanticsMask (Success);
281
277
auto SPIRVFailure = getMemorySemanticsMask (Failure);
@@ -287,10 +283,8 @@ AtomicCompareExchange(multi_ptr<T, AddressSpace> MPtr,
287
283
288
284
template <typename T, access::address_space AddressSpace>
289
285
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,
286
+ AtomicCompareExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
287
+ memory_order Success, memory_order Failure, T Desired,
294
288
T Expected) {
295
289
using I = detail::make_unsinged_integer_t <T>;
296
290
auto SPIRVSuccess = getMemorySemanticsMask (Success);
@@ -308,8 +302,8 @@ AtomicCompareExchange(multi_ptr<T, AddressSpace> MPtr,
308
302
309
303
template <typename T, access::address_space AddressSpace>
310
304
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) {
305
+ AtomicLoad (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
306
+ memory_order Order) {
313
307
auto *Ptr = MPtr.get ();
314
308
auto SPIRVOrder = getMemorySemanticsMask (Order);
315
309
auto SPIRVScope = getScope (Scope);
@@ -318,8 +312,8 @@ AtomicLoad(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
318
312
319
313
template <typename T, access::address_space AddressSpace>
320
314
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) {
315
+ AtomicLoad (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
316
+ memory_order Order) {
323
317
using I = detail::make_unsinged_integer_t <T>;
324
318
auto *PtrInt =
325
319
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -332,8 +326,8 @@ AtomicLoad(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
332
326
333
327
template <typename T, access::address_space AddressSpace>
334
328
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) {
329
+ AtomicStore (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
330
+ memory_order Order, T Value) {
337
331
auto *Ptr = MPtr.get ();
338
332
auto SPIRVOrder = getMemorySemanticsMask (Order);
339
333
auto SPIRVScope = getScope (Scope);
@@ -342,8 +336,8 @@ AtomicStore(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
342
336
343
337
template <typename T, access::address_space AddressSpace>
344
338
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) {
339
+ AtomicStore (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
340
+ memory_order Order, T Value) {
347
341
using I = detail::make_unsinged_integer_t <T>;
348
342
auto *PtrInt =
349
343
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -356,8 +350,8 @@ AtomicStore(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
356
350
357
351
template <typename T, access::address_space AddressSpace>
358
352
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) {
353
+ AtomicExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
354
+ memory_order Order, T Value) {
361
355
auto *Ptr = MPtr.get ();
362
356
auto SPIRVOrder = getMemorySemanticsMask (Order);
363
357
auto SPIRVScope = getScope (Scope);
@@ -366,8 +360,8 @@ AtomicExchange(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
366
360
367
361
template <typename T, access::address_space AddressSpace>
368
362
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) {
363
+ AtomicExchange (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
364
+ memory_order Order, T Value) {
371
365
using I = detail::make_unsinged_integer_t <T>;
372
366
auto *PtrInt =
373
367
reinterpret_cast <typename multi_ptr<I, AddressSpace>::pointer_t >(
@@ -382,8 +376,8 @@ AtomicExchange(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
382
376
383
377
template <typename T, access::address_space AddressSpace>
384
378
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) {
379
+ AtomicIAdd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
380
+ memory_order Order, T Value) {
387
381
auto *Ptr = MPtr.get ();
388
382
auto SPIRVOrder = getMemorySemanticsMask (Order);
389
383
auto SPIRVScope = getScope (Scope);
@@ -392,8 +386,8 @@ AtomicIAdd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
392
386
393
387
template <typename T, access::address_space AddressSpace>
394
388
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) {
389
+ AtomicISub (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
390
+ memory_order Order, T Value) {
397
391
auto *Ptr = MPtr.get ();
398
392
auto SPIRVOrder = getMemorySemanticsMask (Order);
399
393
auto SPIRVScope = getScope (Scope);
@@ -402,8 +396,8 @@ AtomicISub(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
402
396
403
397
template <typename T, access::address_space AddressSpace>
404
398
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) {
399
+ AtomicFAdd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
400
+ memory_order Order, T Value) {
407
401
auto *Ptr = MPtr.get ();
408
402
auto SPIRVOrder = getMemorySemanticsMask (Order);
409
403
auto SPIRVScope = getScope (Scope);
@@ -412,8 +406,8 @@ AtomicFAdd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
412
406
413
407
template <typename T, access::address_space AddressSpace>
414
408
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) {
409
+ AtomicAnd (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
410
+ memory_order Order, T Value) {
417
411
auto *Ptr = MPtr.get ();
418
412
auto SPIRVOrder = getMemorySemanticsMask (Order);
419
413
auto SPIRVScope = getScope (Scope);
@@ -422,8 +416,8 @@ AtomicAnd(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
422
416
423
417
template <typename T, access::address_space AddressSpace>
424
418
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) {
419
+ AtomicOr (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
420
+ memory_order Order, T Value) {
427
421
auto *Ptr = MPtr.get ();
428
422
auto SPIRVOrder = getMemorySemanticsMask (Order);
429
423
auto SPIRVScope = getScope (Scope);
@@ -432,8 +426,8 @@ AtomicOr(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
432
426
433
427
template <typename T, access::address_space AddressSpace>
434
428
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) {
429
+ AtomicXor (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
430
+ memory_order Order, T Value) {
437
431
auto *Ptr = MPtr.get ();
438
432
auto SPIRVOrder = getMemorySemanticsMask (Order);
439
433
auto SPIRVScope = getScope (Scope);
@@ -442,8 +436,8 @@ AtomicXor(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
442
436
443
437
template <typename T, access::address_space AddressSpace>
444
438
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) {
439
+ AtomicMin (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
440
+ memory_order Order, T Value) {
447
441
auto *Ptr = MPtr.get ();
448
442
auto SPIRVOrder = getMemorySemanticsMask (Order);
449
443
auto SPIRVScope = getScope (Scope);
@@ -452,8 +446,8 @@ AtomicMin(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
452
446
453
447
template <typename T, access::address_space AddressSpace>
454
448
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) {
449
+ AtomicMin (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
450
+ memory_order Order, T Value) {
457
451
auto *Ptr = MPtr.get ();
458
452
auto SPIRVOrder = getMemorySemanticsMask (Order);
459
453
auto SPIRVScope = getScope (Scope);
@@ -462,8 +456,8 @@ AtomicMin(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
462
456
463
457
template <typename T, access::address_space AddressSpace>
464
458
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) {
459
+ AtomicMax (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
460
+ memory_order Order, T Value) {
467
461
auto *Ptr = MPtr.get ();
468
462
auto SPIRVOrder = getMemorySemanticsMask (Order);
469
463
auto SPIRVScope = getScope (Scope);
@@ -472,8 +466,8 @@ AtomicMax(multi_ptr<T, AddressSpace> MPtr, ext::oneapi::memory_scope Scope,
472
466
473
467
template <typename T, access::address_space AddressSpace>
474
468
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) {
469
+ AtomicMax (multi_ptr<T, AddressSpace> MPtr, memory_scope Scope,
470
+ memory_order Order, T Value) {
477
471
auto *Ptr = MPtr.get ();
478
472
auto SPIRVOrder = getMemorySemanticsMask (Order);
479
473
auto SPIRVScope = getScope (Scope);
0 commit comments