[Mlir-commits] [mlir] [mlir][x86] Decouple Accumulator from ADD-Based Vector Contractions (over loops) (PR #204327)
Julian Oppermann
llvmlistbot at llvm.org
Thu Jul 23 02:05:52 PDT 2026
================
@@ -415,25 +415,21 @@ struct VectorContractBF16ToFMA
Operation *accReadOp1 =
traceToVectorReadLikeParentOperation(pairContractOp.getAcc());
- // Iterate down to find the users of contact operations until it is store
- // or transfer_write.
- Operation *resultWriteOp0 =
- traceToVectorWriteLikeUserOperation(contractOp.getResult());
- Operation *resultWriteOp1 =
- traceToVectorWriteLikeUserOperation(pairContractOp.getResult());
-
- // Shuffle the accumulators of the contract operations.
- LogicalResult readShuffle =
- shuffleAfterReadLikeOp(rewriter, accReadOp0, accReadOp1, contractOp,
- pairContractOp, nonUnitDim, accTy);
-
- if (failed(readShuffle))
- return rewriter.notifyMatchFailure(
- contractOp, "Accumulator read is not by transfer_read or load");
+ if (!(dyn_cast<arith::ConstantOp>(accReadOp0))) {
----------------
jopperm wrote:
Again, what if the accumulator was a non-zero constant?
https://github.com/llvm/llvm-project/pull/204327
More information about the Mlir-commits
mailing list