summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorQuentin Colombet <qcolombet@apple.com>2014-03-27 22:27:41 +0000
committerQuentin Colombet <qcolombet@apple.com>2014-03-27 22:27:41 +0000
commitd5f800aab34ae03ecd3b2d4618aa0baba53fe8ab (patch)
tree2cc9b455cc51bc3c01d90eca911c51c3f70bb555 /lib
parent6bdc4ebedd16bc2102edc4bfbc63c76c7c130ef0 (diff)
downloadllvm-d5f800aab34ae03ecd3b2d4618aa0baba53fe8ab.tar.gz
llvm-d5f800aab34ae03ecd3b2d4618aa0baba53fe8ab.tar.bz2
llvm-d5f800aab34ae03ecd3b2d4618aa0baba53fe8ab.tar.xz
[X86][Vector Cost Model] Add a comment to explain the workaround
in my previous commit (r204884). <rdar://problem/16381225> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204972 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Target/X86/X86TargetTransformInfo.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/Target/X86/X86TargetTransformInfo.cpp b/lib/Target/X86/X86TargetTransformInfo.cpp
index 2d44db0acd..f58c94683f 100644
--- a/lib/Target/X86/X86TargetTransformInfo.cpp
+++ b/lib/Target/X86/X86TargetTransformInfo.cpp
@@ -512,6 +512,11 @@ unsigned X86TTI::getCastInstrCost(unsigned Opcode, Type *Dst, Type *Src) const {
{ ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i8, 2 },
{ ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i16, 2 },
{ ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i32, 6 },
+ // The generic code to compute the scalar overhead is currently broken.
+ // Workaround this limitation by estimating the scalarization overhead
+ // here. We have roughly 10 instructions per scalar element.
+ // Multiply that by the vector width.
+ // FIXME: remove that when PR19268 is fixed.
{ ISD::UINT_TO_FP, MVT::v2f64, MVT::v2i64, 2*10 },
{ ISD::UINT_TO_FP, MVT::v4f64, MVT::v4i64, 4*10 },