[llvm] [LLVM][NVPTX] Add support for TMA prefetch Rubin extensions (PR #217630)

Durgadoss R via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 21 04:59:54 PDT 2026


================
@@ -3123,6 +3261,59 @@ let IntrProperties = [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<
     : DefaultAttrsIntrinsic<[], [llvm_ptr_ty, llvm_i64_ty]>;
 }
 
+// Aapplypriority bulk variants.
+def int_nvvm_applypriority_async_bulk_evict_priority
+  : DefaultAttrsIntrinsic<[],
+      [llvm_global_ptr_ty, // global_ptr
+       llvm_i32_ty,        // size (byte length; must be a multiple of 16)
+       llvm_i32_ty],       // evict_policy
+      !listconcat([IntrConvergent, IntrArgMemOnly,
+                   ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>],
+                   NVVM_EVICT_POLICY_ARGPROP<2, 1>.Prop)>;
+
+// Applypriority TMA variants.
+foreach dim = 1...5 in {
+  foreach mode = !if(!ge(dim, 3),
+      ["tile", "im2col", "im2col_w", "im2col_w_128"], ["tile"]) in {
+    foreach ap_tensor =
+        [APPLYPRIORITY_BULK_TENSOR_INTR<dim, mode>] in
+      def ap_tensor.Name : DefaultAttrsIntrinsic<[], ap_tensor.ArgsTy,
+                                                 ap_tensor.IntrProp>;
+  }
+}
+// Applypriority TMA variants for tile::gather4.
+def int_nvvm_applypriority_async_bulk_tensor_evict_priority_tile_gather4_2d
+  : DefaultAttrsIntrinsic<[],
+      !listconcat([llvm_ptr_ty],              // tensormap_ptr
+                  !listsplat(llvm_i32_ty, 5), // co-ordinates (d0..d4)
+                  [llvm_i32_ty]),             // evict_policy
+      !listconcat([IntrConvergent, ReadOnly<ArgIndex<0>>],
+                   NVVM_EVICT_POLICY_ARGPROP<6, 1>.Prop)>;
+
+// Applypriority TMA variants with override global address.
+foreach dim = 1...5 in {
+  foreach mode = !if(!ge(dim, 3),
+      ["tile", "im2col", "im2col_w", "im2col_w_128"], ["tile"]) in {
----------------
durga4github wrote:

nit: as a separate NFC, seems we should move this also to the TMA_UTILS base class..

https://github.com/llvm/llvm-project/pull/217630


More information about the llvm-commits mailing list