[TTI] Add generic cost handling of SK_Reverse shuffles
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 23 Oct 2018 09:42:10 +0000 (09:42 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Tue, 23 Oct 2018 09:42:10 +0000 (09:42 +0000)
These can be treated as a general permute.

This required a fix for missing reverse patterns on ARM

llvm-svn: 345015

llvm/include/llvm/CodeGen/BasicTTIImpl.h
llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp

index e740fe5..18c9a61 100644 (file)
@@ -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:
index 90e0cd9..39a72f0 100644 (file)
@@ -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},