[llvm] [AArch64] Consider negated powers of 2 when calculating throughput cost (PR #143013)
David Green via llvm-commits
llvm-commits at lists.llvm.org
Tue Jun 10 05:58:16 PDT 2025
================
@@ -4005,25 +4005,34 @@ InstructionCost AArch64TTIImpl::getArithmeticInstrCost(
// have similar cost.
auto VT = TLI->getValueType(DL, Ty);
if (VT.isScalarInteger() && VT.getSizeInBits() <= 64) {
- if (Op2Info.isPowerOf2()) {
+ if (Op2Info.isPowerOf2() || Op2Info.isNegatedPowerOf2()) {
+ // Neg can be folded into the asr instruction.
+ // FIXME: Is the throughput cost of asr + neg the same as just asr?
----------------
davemgreen wrote:
You can remove this FIXME I think. It will just mean that the cost of scalar is a little lower than vector. Or make it part of the note above, that we are assuming that the neg and the neg+asr share the same cost.
https://github.com/llvm/llvm-project/pull/143013
More information about the llvm-commits
mailing list