Lines Matching defs:packOp
92 PackOp packOp) const {
93 auto outerDimsPerm = packOp.getOuterDimsPerm();
96 packOp,
100 int64_t srcRank = packOp.getSourceRank();
101 ArrayRef<int64_t> dimsPos = packOp.getInnerDimsPos();
104 packOp, "expects packing at the innermost dimension");
109 LogicalResult matchAndRewrite(PackOp packOp,
111 if (packOp.getPaddingValue())
112 return rewriter.notifyMatchFailure(packOp, "expects no padding value");
114 RankedTensorType sourceType = packOp.getSourceType();
115 if (failed(isPackOnInnerMostDim(rewriter, packOp)) &&
116 failed(isPackOn1D(rewriter, packOp, sourceType.getShape(),
117 packOp.getStaticTiles())) &&
118 !packOp.isLikePad()) {
122 RankedTensorType destType = packOp.getDestType();
128 insertExpand(rewriter, packOp.getLoc(), packOp.getSource(), destType,
132 packOp, "unable to expand source of tensor.pack");
134 rewriter.replaceOp(packOp, *expanded);
202 LogicalResult matchAndRewrite(PackOp packOp,
204 auto padOp = packOp.getSource().getDefiningOp<PadOp>();
213 if (auto paddingValue = packOp.getPaddingValue())
218 packOp, padOp.getSource(), packOp.getDest(), packOp.getInnerDimsPos(),
219 packOp.getMixedTiles(), constantPaddingValue,
220 packOp.getOuterDimsPerm());
290 auto packOp = linalgOp->getOperand(0).getDefiningOp<PackOp>();
292 if (!packOp)
300 auto innerDimsPos = packOp.getInnerDimsPos();
301 auto mixedInnerTiles = packOp.getMixedTiles();
302 auto outerDimsPerm = packOp.getOuterDimsPerm();
307 int64_t srcRank = packOp.getSourceRank();
323 Value output = packOp.createDestinationTensor(
324 rewriter, linalgOp.getLoc(), packOp.getSource(), newMixedInnerTilesVec,
328 linalgOp, packOp.getSource(), output, newInnerDimsPosVec,
329 newMixedInnerTilesVec, packOp.getPaddingValue(), newOuterDimsPermVec);
341 LogicalResult matchAndRewrite(PackOp packOp,
343 auto linalgOp = packOp.getSource().getDefiningOp<linalg::LinalgOp>();
353 auto outerDimsPerm = packOp.getOuterDimsPerm();
354 auto innerDimsPos = packOp.getInnerDimsPos();
367 Value output = packOp.createDestinationTensor(
368 rewriter, packOp.getLoc(), linalgOp->getOperand(0),
369 packOp.getMixedTiles(), newInnerDimsPosVec, newOuterDimsPermVec);
372 packOp, linalgOp->getOperand(0), output, newInnerDimsPosVec,
373 packOp.getMixedTiles(), packOp.getPaddingValue(), newOuterDimsPermVec);