@@ -350,15 +350,6 @@ address_space_cast_is_possible(access::address_space Src,
350350
351351template <access::address_space Space, typename ElementType>
352352auto static_address_cast (ElementType *Ptr) {
353- constexpr auto generic_space = access::address_space::generic_space;
354- constexpr auto global_space = access::address_space::global_space;
355- constexpr auto local_space = access::address_space::local_space;
356- constexpr auto private_space = access::address_space::private_space;
357- constexpr auto global_device =
358- access::address_space::ext_intel_global_device_space;
359- constexpr auto global_host =
360- access::address_space::ext_intel_global_host_space;
361-
362353 constexpr auto SrcAS = deduce_AS<ElementType *>::value;
363354 static_assert (address_space_cast_is_possible (SrcAS, Space));
364355
@@ -367,31 +358,7 @@ auto static_address_cast(ElementType *Ptr) {
367358
368359 // Note: reinterpret_cast isn't enough for some of the casts between different
369360 // address spaces, use C-style cast instead.
370- #if !defined(__SPIR__)
371361 return (dst_type)Ptr;
372- #else
373- if constexpr (SrcAS != generic_space) {
374- return (dst_type)Ptr;
375- } else if constexpr (Space == global_space) {
376- return (dst_type)__spirv_GenericCastToPtr_ToGlobal (
377- Ptr, __spv::StorageClass::CrossWorkgroup);
378- } else if constexpr (Space == local_space) {
379- return (dst_type)__spirv_GenericCastToPtr_ToLocal (
380- Ptr, __spv::StorageClass::Workgroup);
381- } else if constexpr (Space == private_space) {
382- return (dst_type)__spirv_GenericCastToPtr_ToPrivate (
383- Ptr, __spv::StorageClass::Function);
384- #if !defined(__ENABLE_USM_ADDR_SPACE__)
385- } else if constexpr (Space == global_device || Space == global_host) {
386- // If __ENABLE_USM_ADDR_SPACE__ isn't defined then both
387- // global_device/global_host are just aliases for global_space.
388- return (dst_type)__spirv_GenericCastToPtr_ToGlobal (
389- Ptr, __spv::StorageClass::CrossWorkgroup);
390- #endif
391- } else {
392- return (dst_type)Ptr;
393- }
394- #endif
395362}
396363
397364// Previous implementation (`castAS`, used in `multi_ptr` ctors among other
@@ -427,14 +394,13 @@ auto dynamic_address_cast(ElementType *Ptr) {
427394#if defined(__ENABLE_USM_ADDR_SPACE__)
428395 static_assert (SupressNotImplementedAssert || Space != Space,
429396 " Not supported yet!" );
430- return static_address_cast<Space>(Ptr);
397+ return detail:: static_address_cast<Space>(Ptr);
431398#else
432399 // If __ENABLE_USM_ADDR_SPACE__ isn't defined then both
433400 // global_device/global_host are just aliases for global_space.
434401 static_assert (std::is_same_v<dst_type, ElementType *>);
435402 return (dst_type)Ptr;
436403#endif
437- #if defined(__SPIR__)
438404 } else if constexpr (Space == global_space) {
439405 return (dst_type)__spirv_GenericCastToPtrExplicit_ToGlobal (
440406 Ptr, __spv::StorageClass::CrossWorkgroup);
@@ -449,12 +415,11 @@ auto dynamic_address_cast(ElementType *Ptr) {
449415 (Space == global_device || Space == global_host)) {
450416 return (dst_type)__spirv_GenericCastToPtrExplicit_ToGlobal (
451417 Ptr, __spv::StorageClass::CrossWorkgroup);
452- #endif
453418#endif
454419 } else {
455420 static_assert (SupressNotImplementedAssert || Space != Space,
456421 " Not supported yet!" );
457- return static_address_cast<Space>(Ptr);
422+ return detail:: static_address_cast<Space>(Ptr);
458423 }
459424}
460425#else // __SYCL_DEVICE_ONLY__
0 commit comments