[llvm] [RISCV][CostModel] Correct the cost of some reductions (PR #118072)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Nov 30 20:32:52 PST 2024
================
@@ -1534,6 +1534,13 @@ RISCVTTIImpl::getArithmeticReductionCost(unsigned Opcode, VectorType *Ty,
getRISCVInstructionCost(Opcodes, LT.second, CostKind) +
getCmpSelInstrCost(Instruction::ICmp, ElementTy, ElementTy,
CmpInst::ICMP_EQ, CostKind);
+ } else if (ISD == ISD::XOR) {
+ // Example sequences:
+ // vsetvli a0, zero, e8, mf8, ta, ma
+ // vcpop.m a0, v0
+ // andi a0, a0, 1
+ Opcodes = {RISCV::VCPOP_M};
+ return LT.first + getRISCVInstructionCost(Opcodes, LT.second, CostKind);
----------------
LiqinWeng wrote:
mycost : LT.first - 1 + getRISCVInstructionCost + 1(1 is cost of the andi)
https://github.com/llvm/llvm-project/pull/118072
More information about the llvm-commits
mailing list