Skip to content

Commit 1102a58

Browse files
committed
refresh 2
1 parent 4745db5 commit 1102a58

File tree

2 files changed

+17
-15
lines changed

2 files changed

+17
-15
lines changed

llvm/lib/Target/NVPTX/NVPTXIntrinsics.td

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -758,21 +758,17 @@ def prefetch_tensormap_const : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_ma
758758
def prefetch_tensormap_gen : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_match.generic>;
759759
def prefetch_tensormap_param : PatFrag<!setdagop(frag_pat, ops), frag_pat, AS_match.param>;
760760

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+
}
775768

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>;
776772

777773
class PREFETCH_INTRS<string InstName, Intrinsic Intr> :
778774
BasicNVPTXInst<(outs), (ins ADDR:$addr),

llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -589,7 +589,13 @@ Value *NVPTXTTIImpl::rewriteIntrinsicWithAddressSpace(IntrinsicInst *II,
589589
return nullptr;
590590
}
591591
case Intrinsic::nvvm_prefetch_tensormap: {
592-
return nullptr;
592+
IRBuilder<> Builder(II);
593+
Module *M = II->getModule();
594+
Function *NewIntrinsic = Intrinsic::getDeclaration(
595+
M, Intrinsic::nvvm_prefetch_tensormap, {NewV->getType()});
596+
CallInst *NewCall = Builder.CreateCall(NewIntrinsic, {NewV});
597+
NewCall->setAttributes(II->getAttributes());
598+
return NewCall;
593599
}
594600
}
595601
return nullptr;

0 commit comments

Comments
 (0)