https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/138626
Backport dfcb8cb Requested by: @ye-luo >From dd2f2eeb12fe3349944a12caf30ec874752dea34 Mon Sep 17 00:00:00 2001 From: Joseph Huber <hube...@outlook.com> Date: Mon, 5 May 2025 16:33:41 -0500 Subject: [PATCH] [OpenMP] Add pre sm_70 load hack back in (#138589) Summary: Different ordering modes aren't supported for an atomic load, so we just do an add of zero as the same thing. It's less efficient, but it works. Fixes https://github.com/llvm/llvm-project/issues/138560 (cherry picked from commit dfcb8cb2a92c9f72ddde5ea08dadf2f640197d32) --- offload/DeviceRTL/include/Synchronization.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/offload/DeviceRTL/include/Synchronization.h b/offload/DeviceRTL/include/Synchronization.h index 5a789441b9d35..c510fbf0774c2 100644 --- a/offload/DeviceRTL/include/Synchronization.h +++ b/offload/DeviceRTL/include/Synchronization.h @@ -61,7 +61,11 @@ V add(Ty *Address, V Val, atomic::OrderingTy Ordering, template <typename Ty, typename V = utils::remove_addrspace_t<Ty>> V load(Ty *Address, atomic::OrderingTy Ordering, MemScopeTy MemScope = MemScopeTy::device) { +#ifdef __NVPTX__ + return __scoped_atomic_fetch_add(Address, V(0), Ordering, MemScope); +#else return __scoped_atomic_load_n(Address, Ordering, MemScope); +#endif } template <typename Ty, typename V = utils::remove_addrspace_t<Ty>> _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits