[X86][Vector Cost Model] Add a comment to explain the workaround
authorQuentin Colombet <qcolombet@apple.com>
Thu, 27 Mar 2014 22:27:41 +0000 (22:27 +0000)
committerQuentin Colombet <qcolombet@apple.com>
Thu, 27 Mar 2014 22:27:41 +0000 (22:27 +0000)
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

lib/Target/X86/X86TargetTransformInfo.cpp

index 2d44db0acdbc999cfe07d55aae7fd00d090dee84..f58c94683fdc6c984560c0d5c23586e916f7d876 100644 (file)
@@ -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 },