diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-05 14:33:32 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-05 14:33:32 +0000 |
commit | a62395a4bd397d7225e549fe0f3300218de9b472 (patch) | |
tree | 5a91a045a0c48dda427f3755a7f555692ddcf1b1 | |
parent | 519465b993268b5b07b676a5224d858169507f1b (diff) | |
download | bcm5719-llvm-a62395a4bd397d7225e549fe0f3300218de9b472.tar.gz bcm5719-llvm-a62395a4bd397d7225e549fe0f3300218de9b472.zip |
[CostModel][X86] Pulled out common type legalization code
llvm-svn: 291109
-rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 11 |
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 |