[llvm] [NFC][NVPTX] Introduce AS aware address matching in TableGen (PR #210309)
Kirill Vedernikov via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 17 06:31:05 PDT 2026
================
@@ -953,26 +931,17 @@ defm TMA_TENSOR_PF_TILE_GATHER4_2D : TMA_TENSOR_PREFETCH_INTR<5, "tile_gather4",
//Prefetchu and Prefetch
-defvar frag_pat = (int_nvvm_prefetch_tensormap node:$addr);
-
-multiclass PREFETCH_TENSORMAP_PATFRAG<string suffix, code predicate> {
- def !tolower(suffix) : PatFrag<!setdagop(frag_pat, ops), frag_pat, predicate>;
-}
-
-defm prefetch_tensormap_ : PREFETCH_TENSORMAP_PATFRAG<"CONST", AS_match.const>;
-defm prefetch_tensormap_ : PREFETCH_TENSORMAP_PATFRAG<"GENERIC", AS_match.generic>;
-defm prefetch_tensormap_ : PREFETCH_TENSORMAP_PATFRAG<"PARAM", AS_match.param>;
-
-multiclass PREFETCH_TENSORMAP_INST<string addrspace_name, PatFrag pattern_frag> {
+multiclass PREFETCH_TENSORMAP_INST<string addrspace_name,
+ ComplexPattern addr_pattern> {
def "" : BasicNVPTXInst<(outs), (ins ADDR:$addr),
"prefetch" # addrspace_name # ".tensormap",
- [(pattern_frag addr:$addr)]>,
+ [(int_nvvm_prefetch_tensormap addr_pattern:$addr)]>,
Requires<[hasPTX<80>, hasSM<90>]>;
}
-defm PREFETCH_CONST_TENSORMAP : PREFETCH_TENSORMAP_INST<".const", prefetch_tensormap_const>;
-defm PREFETCH_GENERIC_TENSORMAP : PREFETCH_TENSORMAP_INST<"", prefetch_tensormap_generic>;
-defm PREFETCH_PARAM_TENSORMAP : PREFETCH_TENSORMAP_INST<".param", prefetch_tensormap_param>;
+defm PREFETCH_CONST_TENSORMAP : PREFETCH_TENSORMAP_INST<".const", addr_const>;
----------------
kvederni wrote:
Can we define `addr_case` as `def addr_case : ADDR_AS<"Case", ".case">` to completely move addrspace names to the `ADDR_AS` class?
https://github.com/llvm/llvm-project/pull/210309
More information about the llvm-commits
mailing list