diff options
| author | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2017-11-06 13:10:31 +0000 |
|---|---|---|
| committer | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2017-11-06 13:10:31 +0000 |
| commit | e54cc1a436e6b76fa714d2a0e735dc51ebe2d030 (patch) | |
| tree | 6fb082f8e10ad97080f7e71ed602c2190de3bd10 /llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp | |
| parent | 1ac16619d243fe095383b245346c7f63c148594d (diff) | |
| download | bcm5719-llvm-e54cc1a436e6b76fa714d2a0e735dc51ebe2d030.tar.gz bcm5719-llvm-e54cc1a436e6b76fa714d2a0e735dc51ebe2d030.zip | |
[SystemZ] implement hasDivRemOp()
SystemZ can do division and remainder in a single instruction for scalar
integer types, which are now reflected by returning true in this hook for
those cases.
Review: Ulrich Weigand
llvm-svn: 317477
Diffstat (limited to 'llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp')
| -rw-r--r-- | llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp b/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp index a4d9421e08a..6d50369e587 100644 --- a/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp +++ b/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp @@ -323,6 +323,11 @@ unsigned SystemZTTIImpl::getRegisterBitWidth(bool Vector) const { return 0; } +bool SystemZTTIImpl::hasDivRemOp(Type *DataType, bool IsSigned) { + EVT VT = TLI->getValueType(DL, DataType); + return (VT.isScalarInteger() && TLI->isTypeLegal(VT)); +} + int SystemZTTIImpl::getArithmeticInstrCost( unsigned Opcode, Type *Ty, TTI::OperandValueKind Op1Info, TTI::OperandValueKind Op2Info, |

