From ebcc223be6618dff90763be3d4043a637c5fb049 Mon Sep 17 00:00:00 2001 From: PietroGhg Date: Wed, 18 Sep 2024 15:16:01 +0100 Subject: [PATCH] Offset subgroup read/write by subgroup id --- libdevice/nativecpu_utils.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libdevice/nativecpu_utils.cpp b/libdevice/nativecpu_utils.cpp index 8dc2807539653..ab52bea7ce025 100644 --- a/libdevice/nativecpu_utils.cpp +++ b/libdevice/nativecpu_utils.cpp @@ -65,13 +65,13 @@ __spirv_MemoryBarrier(uint32_t Memory, uint32_t Semantics) { template <> \ __SYCL_CONVERGENT__ DEVICE_EXTERNAL Type \ __spirv_SubgroupBlockReadINTEL(const OCL_GLOBAL PType *Ptr) noexcept { \ - return *Ptr; \ + return Ptr[__spirv_SubgroupLocalInvocationId()]; \ } \ template <> \ __SYCL_CONVERGENT__ DEVICE_EXTERNAL void \ __spirv_SubgroupBlockWriteINTEL(PType OCL_GLOBAL * ptr, \ Type v) noexcept { \ - *(Type *)ptr = v; \ + ((Type*)ptr)[__spirv_SubgroupLocalInvocationId()] = v; \ } #define DefSubgroupBlockINTEL_vt(Type, VT_name) \