[Mlir-commits] [mlir] [mlir][x86vector] Shuffle BF16 vector.contract output for Flat layout. (PR #174590)
Arun Thangamani
llvmlistbot at llvm.org
Thu Feb 12 02:13:36 PST 2026
================
@@ -297,6 +372,104 @@ struct VectorContractBF16ToFMA
VectorType dstType =
VectorType::get(nonUnitDimAcc.front(), rewriter.getF32Type());
+ if (!isVnni) {
+
+ // Validate and shuffle the accumulator
+ Operation *accReadOp0 =
+ traceToVectorReadLikeParentOperation(contractOp.getAcc());
+ Operation *accReadOp1 =
+ traceToVectorReadLikeParentOperation(pairContractOp.getAcc());
+
+ // Iterate dowm to find the users of contact operations until it is store
+ // or transfer_write.
+ Operation *resultWriteOp0 =
+ traceToVectorWriteLikeUserOperation(contractOp.getResult());
+ Operation *resultWriteOp1 =
+ traceToVectorWriteLikeUserOperation(pairContractOp.getResult());
+
+ if (!accReadOp0 || !accReadOp1)
+ return rewriter.notifyMatchFailure(
+ contractOp,
+ "Operands doesn't have load or transfer_read as it's parent op");
----------------
arun-thmn wrote:
okay. Fixed.
https://github.com/llvm/llvm-project/pull/174590
More information about the Mlir-commits
mailing list