diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-05 19:19:39 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2017-01-05 19:19:39 +0000 |
commit | 5b06e4d319a58f96dc68c9bb8459a14daa2e28c2 (patch) | |
tree | 737357b4f678489dae6121a0a816a495860742e5 | |
parent | e3041688531925319b16b89e183e8ef275e2aeb0 (diff) | |
download | bcm5719-llvm-5b06e4d319a58f96dc68c9bb8459a14daa2e28c2.tar.gz bcm5719-llvm-5b06e4d319a58f96dc68c9bb8459a14daa2e28c2.zip |
[CostModel][X86] Reordered SSE42 arithmetic cost LUT into descending order. NFCI.
llvm-svn: 291162
-rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp index a4a040f6620..8a98501abea 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -383,19 +383,6 @@ int X86TTIImpl::getArithmeticInstrCost( return LT.first * Entry->Cost; } - static const CostTblEntry SSE42FloatCostTable[] = { - { ISD::FDIV, MVT::f32, 14 }, // Nehalem from http://www.agner.org/ - { ISD::FDIV, MVT::v4f32, 14 }, // Nehalem from http://www.agner.org/ - { ISD::FDIV, MVT::f64, 22 }, // Nehalem from http://www.agner.org/ - { ISD::FDIV, MVT::v2f64, 22 }, // Nehalem from http://www.agner.org/ - }; - - if (ST->hasSSE42()) { - if (const auto *Entry = CostTableLookup(SSE42FloatCostTable, ISD, - LT.second)) - return LT.first * Entry->Cost; - } - static const CostTblEntry SSE2UniformCostTable[] = { // Uniform splats are cheaper for the following instructions. @@ -457,6 +444,17 @@ int X86TTIImpl::getArithmeticInstrCost( ISD = ISD::MUL; } + static const CostTblEntry SSE42CostTable[] = { + { ISD::FDIV, MVT::f32, 14 }, // Nehalem from http://www.agner.org/ + { ISD::FDIV, MVT::v4f32, 14 }, // Nehalem from http://www.agner.org/ + { ISD::FDIV, MVT::f64, 22 }, // Nehalem from http://www.agner.org/ + { ISD::FDIV, MVT::v2f64, 22 }, // Nehalem from http://www.agner.org/ + }; + + if (ST->hasSSE42()) + if (const auto *Entry = CostTableLookup(SSE42CostTable, ISD, LT.second)) + return LT.first * Entry->Cost; + static const CostTblEntry SSE41CostTable[] = { { ISD::SHL, MVT::v16i8, 11 }, // pblendvb sequence. { ISD::SHL, MVT::v32i8, 2*11 }, // pblendvb sequence. |