summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2018-10-23 16:45:26 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2018-10-23 16:45:26 +0000
commitf04a04c2b6e9f005f4e90401d23ccf725e46a1d8 (patch)
tree784f408dac64c77698dda9c840545f30c4f6d160 /llvm/lib/Target/X86/X86TargetTransformInfo.cpp
parent2f7efbc9ce62d84a215529133f1c384c25a7858e (diff)
downloadbcm5719-llvm-f04a04c2b6e9f005f4e90401d23ccf725e46a1d8.tar.gz
bcm5719-llvm-f04a04c2b6e9f005f4e90401d23ccf725e46a1d8.zip
[TTI][X86] Treat SK_Transpose shuffles as SK_PermuteTwoSrc - there's no difference in lowering.
llvm-svn: 345048
Diffstat (limited to 'llvm/lib/Target/X86/X86TargetTransformInfo.cpp')
-rw-r--r--llvm/lib/Target/X86/X86TargetTransformInfo.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index 82e4dfe25b7..ffc5a029040 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -810,6 +810,10 @@ int X86TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
// 64-bit packed integer vectors (v2i32) are promoted to type v2i64.
std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
+ // Treat Transpose as 2-op shuffles - there's no difference in lowering.
+ if (Kind == TTI::SK_Transpose)
+ Kind = TTI::SK_PermuteTwoSrc;
+
// For Broadcasts we are splatting the first element from the first input
// register, so only need to reference that input and all the output
// registers are the same.
OpenPOWER on IntegriCloud