summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorSimon Pilgrim <llvm-dev@redking.me.uk>2017-01-05 14:33:32 +0000
committerSimon Pilgrim <llvm-dev@redking.me.uk>2017-01-05 14:33:32 +0000
commita62395a4bd397d7225e549fe0f3300218de9b472 (patch)
tree5a91a045a0c48dda427f3755a7f555692ddcf1b1 /llvm/lib
parent519465b993268b5b07b676a5224d858169507f1b (diff)
downloadbcm5719-llvm-a62395a4bd397d7225e549fe0f3300218de9b472.tar.gz
bcm5719-llvm-a62395a4bd397d7225e549fe0f3300218de9b472.zip
[CostModel][X86] Pulled out common type legalization code
llvm-svn: 291109
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86TargetTransformInfo.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
index c2f542fd4b1..190702491a3 100644
--- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -601,11 +601,11 @@ int X86TTIImpl::getArithmeticInstrCost(
int X86TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
Type *SubTp) {
- if (Kind == TTI::SK_Reverse || Kind == TTI::SK_Alternate) {
- // 64-bit packed float vectors (v2f32) are widened to type v4f32.
- // 64-bit packed integer vectors (v2i32) are promoted to type v2i64.
- std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
+ // 64-bit packed float vectors (v2f32) are widened to type v4f32.
+ // 64-bit packed integer vectors (v2i32) are promoted to type v2i64.
+ std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
+ if (Kind == TTI::SK_Reverse || Kind == TTI::SK_Alternate) {
static const CostTblEntry AVX512VBMIShuffleTbl[] = {
{ TTI::SK_Reverse, MVT::v64i8, 1 }, // vpermb
{ TTI::SK_Reverse, MVT::v32i8, 1 } // vpermb
@@ -733,7 +733,6 @@ int X86TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
} else if (Kind == TTI::SK_PermuteTwoSrc) {
// We assume that source and destination have the same vector type.
- std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
int NumOfDests = LT.first;
int NumOfShufflesPerDest = LT.first * 2 - 1;
int NumOfShuffles = NumOfDests * NumOfShufflesPerDest;
@@ -784,9 +783,7 @@ int X86TTIImpl::getShuffleCost(TTI::ShuffleKind Kind, Type *Tp, int Index,
return NumOfShuffles * Entry->Cost;
} else if (Kind == TTI::SK_PermuteSingleSrc) {
- std::pair<int, MVT> LT = TLI->getTypeLegalizationCost(DL, Tp);
if (LT.first == 1) {
-
static const CostTblEntry AVX512VBMIShuffleTbl[] = {
{ISD::VECTOR_SHUFFLE, MVT::v64i8, 1}, // vpermb
{ISD::VECTOR_SHUFFLE, MVT::v32i8, 1} // vpermb
OpenPOWER on IntegriCloud