forked from OSchip/llvm-project
[CostModel][X86] Added missing AVX2 arithmetic costs.
Allows us to correctly fall through to the lower AVX1 costs if look up failed. llvm-svn: 291353
This commit is contained in:
parent
100eae1ee0
commit
df7de7a87e
|
@ -333,8 +333,18 @@ int X86TTIImpl::getArithmeticInstrCost(
|
|||
{ ISD::SRA, MVT::v2i64, 4 }, // srl/xor/sub sequence.
|
||||
{ ISD::SRA, MVT::v4i64, 4 }, // srl/xor/sub sequence.
|
||||
|
||||
{ ISD::SUB, MVT::v32i8, 1 }, // psubb
|
||||
{ ISD::ADD, MVT::v32i8, 1 }, // paddb
|
||||
{ ISD::SUB, MVT::v16i16, 1 }, // psubw
|
||||
{ ISD::ADD, MVT::v16i16, 1 }, // paddw
|
||||
{ ISD::SUB, MVT::v8i32, 1 }, // psubd
|
||||
{ ISD::ADD, MVT::v8i32, 1 }, // paddd
|
||||
{ ISD::SUB, MVT::v4i64, 1 }, // psubq
|
||||
{ ISD::ADD, MVT::v4i64, 1 }, // paddq
|
||||
|
||||
{ ISD::MUL, MVT::v32i8, 17 }, // extend/pmullw/trunc sequence.
|
||||
{ ISD::MUL, MVT::v16i8, 7 }, // extend/pmullw/trunc sequence.
|
||||
{ ISD::MUL, MVT::v16i16, 1 }, // pmullw
|
||||
{ ISD::MUL, MVT::v8i32, 1 }, // pmulld
|
||||
{ ISD::MUL, MVT::v4i64, 8 }, // 3*pmuludq/3*shift/2*add
|
||||
|
||||
|
@ -463,7 +473,7 @@ int X86TTIImpl::getArithmeticInstrCost(
|
|||
{ ISD::MUL, MVT::v4i64, 18 },
|
||||
};
|
||||
|
||||
if (ST->hasAVX() && !ST->hasAVX2())
|
||||
if (ST->hasAVX())
|
||||
if (const auto *Entry = CostTableLookup(AVX1CostTable, ISD, LT.second))
|
||||
return LT.first * Entry->Cost;
|
||||
|
||||
|
|
Loading…
Reference in New Issue