[llvm] [NVPTX] Add prefetch tensormap variant (PR #146203)
Abhilash Majumder via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 08:35:34 PDT 2025
================
@@ -744,35 +750,50 @@ foreach dim = [1, 2, 3, 4, 5] in {
}
}
-//Prefetch and Prefetchu
+//Prefetchu and Prefetch
+
+class PREFETCH_CONST_CHK<dag frag>
+ : PatFrag<!setdagop(frag, ops), frag, AS_match.const>;
+class PREFETCH_GENERIC_CHK<dag frag>
+ : PatFrag<!setdagop(frag, ops), frag, AS_match.generic>;
+class PREFETCH_PARAM_CHK<dag frag>
+ : PatFrag<!setdagop(frag, ops), frag, AS_match.param>;
+
+defvar frag_pat = (int_nvvm_prefetch_tensormap node:$addr);
+
+def prefetch_tensormap_const : PREFETCH_CONST_CHK<frag_pat>;
+def prefetch_tensormap_gen : PREFETCH_GENERIC_CHK<frag_pat>;
+def prefetch_tensormap_param : PREFETCH_PARAM_CHK<frag_pat>;
-class PREFETCH_INTRS<string InstName> :
+def PREFETCH_CONST_TENSORMAP : NVPTXInst<(outs), (ins ADDR:$addr),
+ "prefetch.const.tensormap [$addr];",
+ [(prefetch_tensormap_const addr:$addr)]>;
+
+def PREFETCH_GENERIC_TENSORMAP : NVPTXInst<(outs), (ins ADDR:$addr),
+ "prefetch.tensormap [$addr];",
+ [(prefetch_tensormap_gen addr:$addr)]>;
+
+def PREFETCH_PARAM_TENSORMAP : NVPTXInst<(outs), (ins ADDR:$addr),
+ "prefetch.param.tensormap [$addr];",
+ [(prefetch_tensormap_param addr:$addr)]>;
+
+
+class PREFETCH_INTRS<string InstName, Intrinsic Intr> :
BasicNVPTXInst<(outs), (ins ADDR:$addr),
InstName,
- [(!cast<Intrinsic>(!strconcat("int_nvvm_",
- !subst(".", "_", InstName))) addr:$addr)]>,
- Requires<[hasPTX<80>, hasSM<90>]>;
----------------
abhilash1910 wrote:
Yes this needs to be added, fixing in progress. Thanks
https://github.com/llvm/llvm-project/pull/146203
More information about the llvm-commits
mailing list