[Mlir-commits] [mlir] [mlir][Vector] Tighten up application conditions in TransferReadAfter… (PR #143869)
Kunwar Grover
llvmlistbot at llvm.org
Thu Jun 12 04:09:26 PDT 2025
================
@@ -4684,15 +4687,27 @@ struct TransferReadAfterWriteToBroadcast
if (getUnusedDimsBitVector({readOp.getPermutationMap()}) !=
getUnusedDimsBitVector({defWrite.getPermutationMap()}))
return failure();
- if (readOp.getIndices() != defWrite.getIndices() ||
- readOp.getMask() != defWrite.getMask())
+ // This pattern should only catch the broadcast case, the non-broadcast case
+ // should be done separately to keep application conditions clean and
+ // separate.
+ AffineMap readMap = compressUnusedDims(readOp.getPermutationMap());
+ AffineMap writeMap = compressUnusedDims(defWrite.getPermutationMap());
+ bool bcast = !readMap.getBroadcastDims().empty() ||
+ !writeMap.getBroadcastDims().empty();
+ if (!bcast)
+ return failure();
+ // At this point, we know we have a bcast.
+ // The masked case is too complext atm, bail.
+ if (readOp.getMask() || defWrite.getMask())
+ return failure();
----------------
Groverkss wrote:
We should document why we are bailing (i.e. we need to respect the mask for padding)
https://github.com/llvm/llvm-project/pull/143869
More information about the Mlir-commits
mailing list