[llvm] [CostModel][X86] Update logic vector reduction costs to match llvm-mca estimates (PR #214191)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 6 01:15:10 PDT 2026


================
@@ -5729,13 +5743,75 @@ X86TTIImpl::getArithmeticReductionCost(unsigned Opcode, VectorType *ValTy,
     { ISD::ADD,   MVT::v8i32,   {5, 5, 5, 5} },
     { ISD::ADD,   MVT::v16i16,  {5, 5, 5, 5} },
     { ISD::ADD,   MVT::v32i8,   {4, 4, 4, 4} },
+
+    { ISD::AND,   MVT::v4i64,   {3, 7, 5, 5} },
+    { ISD::AND,   MVT::v8i32,   {4, 9, 7, 7} },
+    { ISD::AND,   MVT::v16i16,  {5,11, 9, 9} },
+    { ISD::AND,   MVT::v8i16,   {4, 7, 7, 7} },
+    { ISD::AND,   MVT::v32i8,   {6,13,11,11} },
+    { ISD::AND,   MVT::v16i8,   {5,10, 9, 9} },
----------------
ParkHanbum wrote:

I compared all the values, and this only happens for SSE2 and AVX512F `v16i8`: why is `5.5` rounded down to `5`, while `1.5` is rounded up to `2`?


https://github.com/llvm/llvm-project/pull/214191


More information about the llvm-commits mailing list