[llvm] [NVPTX] Add prefetch tensormap variant (PR #146203)
Alex MacLean via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 7 08:33:46 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];",
----------------
AlexMaclean wrote:
Use BasicNVPTXInst
https://github.com/llvm/llvm-project/pull/146203
More information about the llvm-commits
mailing list