summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
diff options
context:
space:
mode:
authorSam Tebbs <sam.tebbs@arm.com>2019-09-13 09:11:46 +0000
committerSam Tebbs <sam.tebbs@arm.com>2019-09-13 09:11:46 +0000
commit1572b68509571ef8e52db9e54ff7b0a284a23974 (patch)
tree81fb53de18286cc3d0fd34ae1b522d56268deb8e /llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
parentd70690833908f1fbb1fce1d18831901594e43860 (diff)
downloadbcm5719-llvm-1572b68509571ef8e52db9e54ff7b0a284a23974.tar.gz
bcm5719-llvm-1572b68509571ef8e52db9e54ff7b0a284a23974.zip
[ARM] Add support for MVE vmaxv and vminv
This patch adds vecreduce_smax, vecredude_umax, vecreduce_smin, vecreduce_umin and selection for vmaxv and minv. Differential Revision: https://reviews.llvm.org/D66413 llvm-svn: 371827
Diffstat (limited to 'llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
index 3dbf5b9efc4..e74b2b1a2ba 100644
--- a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
+++ b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp
@@ -1059,11 +1059,11 @@ bool ARMTTIImpl::useReductionIntrinsic(unsigned Opcode, Type *Ty,
case Instruction::Or:
case Instruction::Xor:
case Instruction::Mul:
- case Instruction::ICmp:
case Instruction::FCmp:
return false;
+ case Instruction::ICmp:
case Instruction::Add:
- return ScalarBits * Ty->getVectorNumElements() == 128;
+ return ScalarBits < 64 && ScalarBits * Ty->getVectorNumElements() == 128;
default:
llvm_unreachable("Unhandled reduction opcode");
}
OpenPOWER on IntegriCloud