Skip to content

Commit 2457b1a

Browse files
committed
add isel
1 parent f009291 commit 2457b1a

File tree

2 files changed

+14
-22
lines changed

2 files changed

+14
-22
lines changed

llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3973,6 +3973,17 @@ bool NVPTXTargetLowering::getTgtMemIntrinsic(
39733973
return true;
39743974
}
39753975

3976+
case Intrinsic::nvvm_prefetch_tensormap: {
3977+
auto &DL = I.getDataLayout();
3978+
Info.opc = ISD::INTRINSIC_VOID;
3979+
Info.memVT = getPointerTy(DL);
3980+
Info.ptrVal = I.getArgOperand(0);
3981+
Info.offset = 0;
3982+
Info.flags = MachineMemOperand::MOLoad | MachineMemOperand::MODereferenceable;
3983+
Info.align.reset();
3984+
return true;
3985+
}
3986+
39763987
case Intrinsic::nvvm_ldu_global_i:
39773988
case Intrinsic::nvvm_ldu_global_f:
39783989
case Intrinsic::nvvm_ldu_global_p: {

llvm/lib/Target/NVPTX/NVPTXIntrinsics.td

Lines changed: 3 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -753,30 +753,11 @@ foreach dim = [1, 2, 3, 4, 5] in {
753753
//Prefetchu and Prefetch
754754

755755
class PREFETCH_CONST_CHK<dag frag>
756-
: PatFrag<!setdagop(frag, ops), frag, [{
757-
auto *Addr = N->getOperand(2).getNode();
758-
auto *MemNode = dyn_cast<MemSDNode>(Addr);
759-
bool result = MemNode->getMemOperand()->getAddrSpace() == llvm::ADDRESS_SPACE_CONST;
760-
return result;
761-
}]>;
762-
763-
756+
: PatFrag<!setdagop(frag, ops), frag, AS_match.const>;
764757
class PREFETCH_GENERIC_CHK<dag frag>
765-
: PatFrag<!setdagop(frag, ops), frag, [{
766-
auto *Addr = N->getOperand(2).getNode();
767-
auto *MemNode = dyn_cast<MemSDNode>(Addr);
768-
bool result= MemNode->getMemOperand()->getAddrSpace() == llvm::ADDRESS_SPACE_GENERIC;
769-
return result;
770-
}]>;
771-
772-
758+
: PatFrag<!setdagop(frag, ops), frag, AS_match.generic>;
773759
class PREFETCH_PARAM_CHK<dag frag>
774-
: PatFrag<!setdagop(frag, ops), frag, [{
775-
auto *Addr = N->getOperand(2).getNode();
776-
auto *MemNode = dyn_cast<MemSDNode>(Addr);
777-
bool result = MemNode->getMemOperand()->getAddrSpace() == llvm::ADDRESS_SPACE_PARAM;
778-
return result;
779-
}]>;
760+
: PatFrag<!setdagop(frag, ops), frag, AS_match.param>;
780761

781762
defvar frag_pat = (int_nvvm_prefetch_tensormap node:$addr);
782763

0 commit comments

Comments
 (0)