@@ -758,21 +758,17 @@ def prefetch_tensormap_const : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_ma
758
758
def prefetch_tensormap_gen : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_match.generic>;
759
759
def prefetch_tensormap_param : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_match.param>;
760
760
761
- def PREFETCH_CONST_TENSORMAP : BasicNVPTXInst<(outs), (ins ADDR:$addr),
762
- "prefetch.const.tensormap [$addr];",
763
- [(prefetch_tensormap_const addr:$addr)]>,
764
- Requires<[hasPTX<80>, hasSM<90>]>;
765
-
766
- def PREFETCH_GENERIC_TENSORMAP : BasicNVPTXInst<(outs), (ins ADDR:$addr),
767
- "prefetch.tensormap [$addr];",
768
- [(prefetch_tensormap_gen addr:$addr)]>,
769
- Requires<[hasPTX<80>, hasSM<90>]>;
770
-
771
- def PREFETCH_PARAM_TENSORMAP : BasicNVPTXInst<(outs), (ins ADDR:$addr),
772
- "prefetch.param.tensormap [$addr];",
773
- [(prefetch_tensormap_param addr:$addr)]>,
774
- Requires<[hasPTX<80>, hasSM<90>]>;
761
+ multiclass PREFETCH_TENSORMAP_INST<string addrspace_name, PatFrag pattern_frag> {
762
+ def "" : BasicNVPTXInst<(outs), (ins ADDR:$addr),
763
+ !strconcat("prefetch", !if(!eq(addrspace_name, ""), "",
764
+ !strconcat(".", addrspace_name)), ".tensormap [$addr];"),
765
+ [(pattern_frag addr:$addr)]>,
766
+ Requires<[hasPTX<80>, hasSM<90>]>;
767
+ }
775
768
769
+ defm PREFETCH_CONST_TENSORMAP : PREFETCH_TENSORMAP_INST<"const", prefetch_tensormap_const>;
770
+ defm PREFETCH_GENERIC_TENSORMAP : PREFETCH_TENSORMAP_INST<"", prefetch_tensormap_gen>;
771
+ defm PREFETCH_PARAM_TENSORMAP : PREFETCH_TENSORMAP_INST<"param", prefetch_tensormap_param>;
776
772
777
773
class PREFETCH_INTRS<string InstName, Intrinsic Intr> :
778
774
BasicNVPTXInst<(outs), (ins ADDR:$addr),
0 commit comments