Skip to content

Commit 6d280b0

Browse files
Implemented isTruncateFree(EVT FromVT, EVT ToVT) and isZExtFree(EVT FromVT, EVT ToVT) in NVPTX.
1 parent b74e588 commit 6d280b0

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3285,6 +3285,14 @@ bool NVPTXTargetLowering::splitValueIntoRegisterParts(
32853285
return false;
32863286
}
32873287

3288+
bool llvm::NVPTXTargetLowering::isTruncateFree(EVT FromVT, EVT ToVT) const {
3289+
return (FromVT.getSimpleVT() == MVT::i64 && ToVT.getSimpleVT() == MVT::i32);
3290+
}
3291+
3292+
bool llvm::NVPTXTargetLowering::isZExtFree(EVT FromVT, EVT ToVT) const {
3293+
return (FromVT.getSimpleVT() == MVT::i32 && ToVT.getSimpleVT() == MVT::i64);
3294+
}
3295+
32883296
// This creates target external symbol for a function parameter.
32893297
// Name of the symbol is composed from its index and the function name.
32903298
// Negative index corresponds to special parameter (unsized array) used for

llvm/lib/Target/NVPTX/NVPTXISelLowering.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,10 @@ class NVPTXTargetLowering : public TargetLowering {
612612
return true;
613613
}
614614

615+
bool isTruncateFree(EVT FromVT, EVT ToVT) const override;
616+
617+
bool isZExtFree(EVT FromVT, EVT ToVT) const override;
618+
615619
private:
616620
const NVPTXSubtarget &STI; // cache the subtarget here
617621
SDValue getParamSymbol(SelectionDAG &DAG, int idx, EVT) const;

0 commit comments

Comments
 (0)