[X86][AVX512] Fix MUL v8i64 costs on non-AVX512DQ targets
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 27 Oct 2016 18:32:06 +0000 (18:32 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Thu, 27 Oct 2016 18:32:06 +0000 (18:32 +0000)
llvm-svn: 285329

llvm/lib/Target/X86/X86TargetTransformInfo.cpp
llvm/test/Analysis/CostModel/X86/arith.ll

index f8d3a04..d115eb2 100644 (file)
@@ -522,6 +522,7 @@ int X86TTIImpl::getArithmeticInstrCost(
     // multiplies(3), shifts(4) and adds(2).
     { ISD::MUL,     MVT::v2i64,    9 },
     { ISD::MUL,     MVT::v4i64,    9 },
+    { ISD::MUL,     MVT::v8i64,    9 }
   };
   if (const auto *Entry = CostTableLookup(CustomLowered, ISD, LT.second))
     return LT.first * Entry->Cost;
index 00ec99f..2f3f0f9 100644 (file)
@@ -446,8 +446,8 @@ define i32 @mul(i32 %arg) {
   ; SSE42: cost of 36 {{.*}} %C = mul
   ; AVX: cost of 36 {{.*}} %C = mul
   ; AVX2: cost of 18 {{.*}} %C = mul
-  ; AVX512F: cost of 2 {{.*}} %C = mul
-  ; AVX512BW: cost of 2 {{.*}} %C = mul
+  ; AVX512F: cost of 9 {{.*}} %C = mul
+  ; AVX512BW: cost of 9 {{.*}} %C = mul
   ; AVX512DQ: cost of 1 {{.*}} %C = mul
   %C = mul <8 x i64> undef, undef