[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