================
@@ -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

Reply via email to