diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-10-23 09:42:10 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2018-10-23 09:42:10 +0000 |
commit | 816e57be35bd9eef85657862fca128dcf99a0a5b (patch) | |
tree | d601f725360f7184ad8968c9e0a69a1a117639bd /llvm | |
parent | 1c95b2f7793214fc874ebce933c77d2d79dd7256 (diff) | |
download | bcm5719-llvm-816e57be35bd9eef85657862fca128dcf99a0a5b.tar.gz bcm5719-llvm-816e57be35bd9eef85657862fca128dcf99a0a5b.zip |
[TTI] Add generic cost handling of SK_Reverse shuffles
These can be treated as a general permute.
This required a fix for missing reverse patterns on ARM
llvm-svn: 345015
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/CodeGen/BasicTTIImpl.h | 1 | ||||
-rw-r--r-- | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp | 2 |
2 files changed, 3 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/BasicTTIImpl.h b/llvm/include/llvm/CodeGen/BasicTTIImpl.h index e740fe57172..18c9a61d19b 100644 --- a/llvm/include/llvm/CodeGen/BasicTTIImpl.h +++ b/llvm/include/llvm/CodeGen/BasicTTIImpl.h @@ -555,6 +555,7 @@ public: Type *SubTp) { switch (Kind) { case TTI::SK_Select: + case TTI::SK_Reverse: case TTI::SK_Transpose: case TTI::SK_PermuteSingleSrc: case TTI::SK_PermuteTwoSrc: diff --git a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp index 90e0cd96682..39a72f0edeb 100644 --- a/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp +++ b/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp @@ -412,6 +412,8 @@ int ARMTTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index, {ISD::VECTOR_SHUFFLE, MVT::v2f32, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2i64, 1}, {ISD::VECTOR_SHUFFLE, MVT::v2f64, 1}, + {ISD::VECTOR_SHUFFLE, MVT::v4i16, 1}, + {ISD::VECTOR_SHUFFLE, MVT::v8i8, 1}, {ISD::VECTOR_SHUFFLE, MVT::v4i32, 2}, {ISD::VECTOR_SHUFFLE, MVT::v4f32, 2}, |