================
@@ -17575,9 +17575,22 @@ BoUpSLP::getEntryCost(const TreeEntry *E,
ArrayRef<Value *> VectorizedVals,
unsigned OpIdx = isa<UnaryOperator>(VL0) ? 0 : 1;
TTI::OperandValueInfo Op1Info = getOperandInfo(E->getOperand(0));
TTI::OperandValueInfo Op2Info = getOperandInfo(E->getOperand(OpIdx));
+ // A target may price an fmul by the fadd or fsub user of its context.
----------------
MrSidims wrote:
But TTI can't decide it. It gets a vector type and a scalar instruction and
nothing tells it whether the user of that instruction is vectorized. So the
info is wrong here as the only user the only user of the context is a contract
fadd, that user is what the target reads to price the fmul as fused, and the
vector fmul of a root has no such user, its lanes are extracted.
https://github.com/llvm/llvm-project/pull/228902
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits