[llvm] [NVPTX] Add a few more missing fence intrinsics (PR #166352)
Pradeep Kumar via llvm-commits
llvm-commits at lists.llvm.org
Mon Nov 10 21:19:51 PST 2025
================
@@ -1747,18 +1747,42 @@ let TargetPrefix = "nvvm" in {
}
//
- // Membar
+ // Membar / Fence
//
let IntrProperties = [IntrNoCallback] in {
def int_nvvm_membar_cta : NVVMBuiltin, Intrinsic<[]>;
def int_nvvm_membar_gl : NVVMBuiltin, Intrinsic<[]>;
def int_nvvm_membar_sys : NVVMBuiltin, Intrinsic<[]>;
def int_nvvm_fence_sc_cluster : Intrinsic<[]>;
+
+ // Operation fence
+ def int_nvvm_fence_mbarrier_init_release_cluster: Intrinsic<[], [], [],
+ "llvm.nvvm.fence.mbarrier_init.release.cluster">;
+
+ // Thread fence
+ def int_nvvm_fence_acquire_sync_restrict_space_cluster_scope_cluster :
+ Intrinsic<[], [], [],
+ "llvm.nvvm.fence.acquire.sync_restrict.space.cluster.scope.cluster">;
+
+ def int_nvvm_fence_release_sync_restrict_space_cta_scope_cluster :
+ Intrinsic<[], [], [],
+ "llvm.nvvm.fence.release.sync_restrict.space.cta.scope.cluster">;
}
- //
- // Proxy fence (uni-directional)
- //
+//
+// Proxy fence (uni-directional)
+//
+
+let IntrProperties = [IntrNoCallback] in {
+ def int_nvvm_fence_proxy_async_generic_acquire_sync_restrict_space_cluster_scope_cluster :
+ Intrinsic<[], [], [],
+ "llvm.nvvm.fence.proxy.async_generic.acquire.sync_restrict.space.cluster.scope.cluster">;
+
+ def int_nvvm_fence_proxy_async_generic_release_sync_restrict_space_cta_scope_cluster :
+ Intrinsic<[], [], [],
+ "llvm.nvvm.fence.proxy.async_generic.release.sync_restrict.space.cta.scope.cluster">;
+}
+
foreach scope = ["cta", "cluster", "gpu", "sys"] in {
----------------
schwarzschild-radius wrote:
`let` overrides the properties defined within the loop (https://godbolt.org/z/zcMrfvjzf)
https://github.com/llvm/llvm-project/pull/166352
More information about the llvm-commits
mailing list