[llvm] [NVPTX] Fix and refine prefetch.* intrinsics (PR #126899)

Durgadoss R via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 08:06:20 PST 2025


================
@@ -5001,22 +5001,28 @@ foreach dim = [1, 2, 3, 4, 5] in {
 }
 
 // Intrinsics for Prefetch and Prefetchu
-foreach level = ["L1", "L2"] in {
-   foreach addr = ["global", "local", ""] in {
-     foreach evict = !if(!eq(addr, "global"), ["evictlast", "evictnormal"], ["evictnormal"]) in {
-      defvar suffix = "" # !if(!eq(addr, ""), "", addr # "_") # level # "_" # evict;             
-      def int_nvvm_prefetch_ # suffix : Intrinsic<[], 
-                                        !cond(
-                                        !eq(addr, "global") : [llvm_global_ptr_ty],
-                                        !eq(addr, "local") : [llvm_local_ptr_ty],
-                                        !eq(addr, "") : [llvm_ptr_ty]),
-                                        [IntrArgMemOnly, ReadOnly<ArgIndex<0>>,
-                                        NoCapture<ArgIndex<0>>]>;   
-    }
-  }
-}
+def int_nvvm_prefetch_L1 : Intrinsic<[], [llvm_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+def int_nvvm_prefetch_L2 : Intrinsic<[], [llvm_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+def int_nvvm_prefetch_global_L1 :  Intrinsic<[], [llvm_global_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+def int_nvvm_prefetch_global_L2 :  Intrinsic<[], [llvm_global_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+def int_nvvm_prefetch_local_L1 :  Intrinsic<[], [llvm_local_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+def int_nvvm_prefetch_local_L2 :  Intrinsic<[], [llvm_local_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>]>;
+  
+def int_nvvm_prefetch_global_L2_evict_normal: Intrinsic<[], [llvm_global_ptr_ty],
+  [IntrArgMemOnly, ReadOnly<ArgIndex<0>>, NoCapture<ArgIndex<0>>], 
+  "llvm.nvvm.prefetch.global.L2.evictnormal">;
----------------
durga4github wrote:

We want to keep this line consistent with line 5017. Same for below _last variant also

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


More information about the llvm-commits mailing list