Lines Matching defs:packOp
374 bubbleUpPackOpThroughGenericOp(RewriterBase &rewriter, tensor::PackOp packOp,
376 auto genericOp = packOp.getSource().getDefiningOp<GenericOp>();
381 if (!controlFn(&packOp.getSourceMutable()))
412 Value packOpDest = packOp.getDest();
429 if (packOp.getPaddingValue())
433 auto packInfo = getPackingInfoFromOperand(opOperand, genericOp, packOp);
462 LogicalResult matchAndRewrite(tensor::PackOp packOp,
465 bubbleUpPackOpThroughGenericOp(rewriter, packOp, controlFn);
468 rewriter.replaceOp(packOp, genericOp->getResults());
484 LogicalResult matchAndRewrite(tensor::PackOp packOp,
486 auto padOp = packOp.getSource().getDefiningOp<tensor::PadOp>();
491 if (!controlFn(&packOp.getSourceMutable()))
495 if (packOp.getPaddingValue())
506 if (!packOp.getDest().getDefiningOp<tensor::EmptyOp>())
509 ArrayRef<int64_t> innerDimsPos = packOp.getInnerDimsPos();
523 ArrayRef<int64_t> outerDimsPerm = packOp.getOuterDimsPerm();
524 SmallVector<OpFoldResult> mixedTiles = packOp.getMixedTiles();
560 rewriter.replaceOp(packOp, newPadOp.getResult());
652 tensor::PackOp packOp,
654 SmallVector<int64_t> innerTileSizes = packOp.getStaticTiles();
655 ArrayRef<int64_t> innerDimsPos = packOp.getInnerDimsPos();
656 ArrayRef<int64_t> outerDimsPerm = packOp.getOuterDimsPerm();
686 rewriter, packOp.getLoc(), collapseOp.getSrc(), packOp.getMixedTiles(),
689 packOp.getLoc(), collapseOp.getSrc(), emptyOp, projectedInnerDimsPos,
690 packOp.getMixedTiles(), packOp.getPaddingValue(), newOuterDimsPerm);
705 collapseOp.getLoc(), packOp.getType(), newPackOp, newReassocIndices);
706 rewriter.replaceOp(packOp, newCollapseOp);
758 tensor::PackOp packOp,
762 ArrayRef<int64_t> outerDimsPerm = packOp.getOuterDimsPerm();
764 return rewriter.notifyMatchFailure(packOp,
771 ArrayRef<int64_t> packInnerDims = packOp.getInnerDimsPos();
791 packOp, "only one of the expanded dimensions can be packed");
796 packOp, "can only pack the inner-most expanded dimension");
812 expandOp.getSrcType(), packOp.getStaticInnerTiles(),
815 getReassociationIndicesForReshape(newPackType, packOp.getDestType());
818 packOp, "could not reassociate dims after bubbling up");
821 rewriter, packOp.getLoc(), expandOp.getSrc(), packOp.getMixedTiles(),
824 packOp.getLoc(), expandOp.getSrc(), destTensor, projectedInnerDimsPos,
825 packOp.getMixedTiles(), packOp.getPaddingValue(),
829 packOp.getLoc(), packOp.getDestType(), packedVal, *reassocExpand);
830 rewriter.replaceOp(packOp, newExpandOp);
841 LogicalResult matchAndRewrite(tensor::PackOp packOp,
843 Operation *srcOp = packOp.getSource().getDefiningOp();
850 if (llvm::any_of(packOp.getStaticTiles(), [](int64_t size) {
857 if (!controlFn(&packOp.getSourceMutable()))
862 return bubbleUpPackOpThroughCollapseShape(op, packOp, rewriter);
865 return bubbleUpPackOpThroughExpandShape(op, packOp, rewriter);