diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2017-07-13 19:25:18 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2017-07-13 19:25:18 +0000 | 
| commit | ca089b24d48ef6fa8da2d0bb8c25bb802c4a95c0 (patch) | |
| tree | 3a28a772df9b17aef34f49e3c727965ad28c0c93 /lib/Target/X86/X86TargetTransformInfo.cpp | |
| parent | 9df3605dea17e84f8183581f6103bd0c79e2a606 (diff) | |
Notes
Diffstat (limited to 'lib/Target/X86/X86TargetTransformInfo.cpp')
| -rw-r--r-- | lib/Target/X86/X86TargetTransformInfo.cpp | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/Target/X86/X86TargetTransformInfo.cpp b/lib/Target/X86/X86TargetTransformInfo.cpp index 5ba8534d32d3..c9924f264939 100644 --- a/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/lib/Target/X86/X86TargetTransformInfo.cpp @@ -142,10 +142,15 @@ int X86TTIImpl::getArithmeticInstrCost(      { ISD::FDIV, MVT::v2f64, 69 }, // divpd      { ISD::FADD, MVT::v2f64, 2  }, // addpd      { ISD::FSUB, MVT::v2f64, 2  }, // subpd -    // v2i64/v4i64 mul is custom lowered as a series of long -    // multiplies(3), shifts(3) and adds(2). -    // slm muldq version throughput is 2 -    { ISD::MUL,  MVT::v2i64, 11 }, +    // v2i64/v4i64 mul is custom lowered as a series of long: +    // multiplies(3), shifts(3) and adds(2) +    // slm muldq version throughput is 2 and addq throughput 4  +    // thus: 3X2 (muldq throughput) + 3X1 (shift throuput) + +    //       3X4 (addq throughput) = 17  +    { ISD::MUL,  MVT::v2i64, 17 }, +    // slm addq\subq throughput is 4 +    { ISD::ADD,  MVT::v2i64, 4  }, +    { ISD::SUB,  MVT::v2i64, 4  },    };    if (ST->isSLM()) {  | 
