[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