@@ -5211,34 +5211,34 @@ AArch64TTIImpl::getArithmeticReductionCost(unsigned Opcode, VectorType *ValTy,
52115211 // XOR: llvm/test/CodeGen/AArch64/reduce-xor.ll
52125212 // AND: llvm/test/CodeGen/AArch64/reduce-and.ll
52135213 static const CostTblEntry CostTblNoPairwise[]{
5214- {ISD::ADD, MVT::v8i8, 2 },
5215- {ISD::ADD, MVT::v16i8, 2 },
5216- {ISD::ADD, MVT::v4i16, 2 },
5217- {ISD::ADD, MVT::v8i16, 2 },
5218- {ISD::ADD, MVT::v2i32, 2 },
5219- {ISD::ADD, MVT::v4i32, 2 },
5220- {ISD::ADD, MVT::v2i64, 2 },
5221- {ISD::OR, MVT::v8i8, 15 },
5222- {ISD::OR, MVT::v16i8, 17 },
5223- {ISD::OR, MVT::v4i16, 7 },
5224- {ISD::OR, MVT::v8i16, 9 },
5225- {ISD::OR, MVT::v2i32, 3 },
5226- {ISD::OR, MVT::v4i32, 5 },
5227- {ISD::OR, MVT::v2i64, 3 },
5228- {ISD::XOR, MVT::v8i8, 15 },
5229- {ISD::XOR, MVT::v16i8, 17 },
5230- {ISD::XOR, MVT::v4i16, 7 },
5231- {ISD::XOR, MVT::v8i16, 9 },
5232- {ISD::XOR, MVT::v2i32, 3 },
5233- {ISD::XOR, MVT::v4i32, 5 },
5234- {ISD::XOR, MVT::v2i64, 3 },
5235- {ISD::AND, MVT::v8i8, 15 },
5236- {ISD::AND, MVT::v16i8, 17 },
5237- {ISD::AND, MVT::v4i16, 7 },
5238- {ISD::AND, MVT::v8i16, 9 },
5239- {ISD::AND, MVT::v2i32, 3 },
5240- {ISD::AND, MVT::v4i32, 5 },
5241- {ISD::AND, MVT::v2i64, 3 },
5214+ {ISD::ADD, MVT::v8i8, 2 },
5215+ {ISD::ADD, MVT::v16i8, 2 },
5216+ {ISD::ADD, MVT::v4i16, 2 },
5217+ {ISD::ADD, MVT::v8i16, 2 },
5218+ {ISD::ADD, MVT::v2i32, 2 },
5219+ {ISD::ADD, MVT::v4i32, 2 },
5220+ {ISD::ADD, MVT::v2i64, 2 },
5221+ {ISD::OR, MVT::v8i8, 5 }, // fmov + orr_lsr + orr_lsr + lsr + orr
5222+ {ISD::OR, MVT::v16i8, 7 }, // ext + orr + same as v8i8
5223+ {ISD::OR, MVT::v4i16, 4 }, // fmov + orr_lsr + lsr + orr
5224+ {ISD::OR, MVT::v8i16, 6 }, // ext + orr + same as v4i16
5225+ {ISD::OR, MVT::v2i32, 3 }, // fmov + lsr + orr
5226+ {ISD::OR, MVT::v4i32, 5 }, // ext + orr + same as v2i32
5227+ {ISD::OR, MVT::v2i64, 3 }, // ext + orr + fmov
5228+ {ISD::XOR, MVT::v8i8, 5 }, // Same as above for or...
5229+ {ISD::XOR, MVT::v16i8, 7 },
5230+ {ISD::XOR, MVT::v4i16, 4 },
5231+ {ISD::XOR, MVT::v8i16, 6 },
5232+ {ISD::XOR, MVT::v2i32, 3 },
5233+ {ISD::XOR, MVT::v4i32, 5 },
5234+ {ISD::XOR, MVT::v2i64, 3 },
5235+ {ISD::AND, MVT::v8i8, 5 }, // Same as above for or...
5236+ {ISD::AND, MVT::v16i8, 7 },
5237+ {ISD::AND, MVT::v4i16, 4 },
5238+ {ISD::AND, MVT::v8i16, 6 },
5239+ {ISD::AND, MVT::v2i32, 3 },
5240+ {ISD::AND, MVT::v4i32, 5 },
5241+ {ISD::AND, MVT::v2i64, 3 },
52425242 };
52435243 switch (ISD) {
52445244 default :
0 commit comments