diff options
-rw-r--r-- | llvm/lib/Target/X86/X86TargetTransformInfo.cpp | 4 | ||||
-rw-r--r-- | llvm/test/Analysis/CostModel/X86/arith.ll | 4 |
2 files changed, 4 insertions, 4 deletions
diff --git a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp index a5958f57422..719f7e7b345 100644 --- a/llvm/lib/Target/X86/X86TargetTransformInfo.cpp +++ b/llvm/lib/Target/X86/X86TargetTransformInfo.cpp @@ -556,9 +556,9 @@ int X86TTIImpl::getArithmeticInstrCost( // A v4i64 multiply is custom lowered as two split v2i64 vectors that then // are lowered as a series of long multiplies(3), shifts(3) and adds(2) // Because we believe v4i64 to be a legal type, we must also include the - // split factor of two in the cost table. Therefore, the cost here is 16 + // extract+insert in the cost table. Therefore, the cost here is 18 // instead of 8. - { ISD::MUL, MVT::v4i64, 16 }, + { ISD::MUL, MVT::v4i64, 18 }, }; // Look for AVX1 lowering tricks. diff --git a/llvm/test/Analysis/CostModel/X86/arith.ll b/llvm/test/Analysis/CostModel/X86/arith.ll index 7319efb413d..b7a615f55cd 100644 --- a/llvm/test/Analysis/CostModel/X86/arith.ll +++ b/llvm/test/Analysis/CostModel/X86/arith.ll @@ -436,7 +436,7 @@ define i32 @mul(i32 %arg) { %A = mul <2 x i64> undef, undef ; SSSE3: cost of 16 {{.*}} %B = mul ; SSE42: cost of 16 {{.*}} %B = mul - ; AVX: cost of 16 {{.*}} %B = mul + ; AVX: cost of 18 {{.*}} %B = mul ; AVX2: cost of 8 {{.*}} %B = mul ; AVX512F: cost of 8 {{.*}} %B = mul ; AVX512BW: cost of 8 {{.*}} %B = mul @@ -444,7 +444,7 @@ define i32 @mul(i32 %arg) { %B = mul <4 x i64> undef, undef ; SSSE3: cost of 32 {{.*}} %C = mul ; SSE42: cost of 32 {{.*}} %C = mul - ; AVX: cost of 32 {{.*}} %C = mul + ; AVX: cost of 36 {{.*}} %C = mul ; AVX2: cost of 16 {{.*}} %C = mul ; AVX512F: cost of 8 {{.*}} %C = mul ; AVX512BW: cost of 8 {{.*}} %C = mul |