Lines Matching defs:padOp

1756 /// Vectorize a `padOp` with (1) static result type, (2) constant padding value
1760 vectorizeAsTensorPadOp(RewriterBase &rewriter, tensor::PadOp padOp,
1763 auto padValue = padOp.getConstantPaddingValue();
1764 Location loc = padOp.getLoc();
1768 rewriter.setInsertionPoint(padOp);
1772 cast<ReifyRankedShapedTypeOpInterface>(padOp.getOperation())
1777 rewriter, loc, padOp.getSource(), inputVectorSizes, padValue,
1978 vectorizePadOpPrecondition(tensor::PadOp padOp,
1980 auto padValue = padOp.getConstantPaddingValue();
1982 LDBG("pad value is not constant: " << padOp << "\n");
1986 ArrayRef<int64_t> resultTensorShape = padOp.getResultType().getShape();
1991 if (llvm::any_of(padOp.getLow(), [](Value v) {
1995 LDBG("low pad must all be zero: " << padOp << "\n");
2138 .Case<tensor::PadOp>([&](auto padOp) {
2139 return vectorizePadOpPrecondition(padOp, inputVectorSizes);
2239 .Case<tensor::PadOp>([&](auto padOp) {
2240 return vectorizeAsTensorPadOp(rewriter, padOp, inputVectorSizes,
2310 LogicalResult matchAndRewrite(tensor::PadOp padOp,
2314 for (auto *user : llvm::to_vector<4>(padOp->getUsers()))
2316 changed |= rewriteUser(rewriter, padOp, op).succeeded();
2322 tensor::PadOp padOp, OpTy op) const = 0;
2349 LogicalResult rewriteUser(PatternRewriter &rewriter, tensor::PadOp padOp,
2352 if (!padOp.hasZeroLowPad())
2355 auto padValue = padOp.getConstantPaddingValue();
2366 xferOp.getSourceMutable().assign(padOp.getSource());
2411 LogicalResult rewriteUser(PatternRewriter &rewriter, tensor::PadOp padOp,
2418 if (!padOp.hasZeroLowPad())
2421 auto padValue = padOp.getConstantPaddingValue();
2434 if (!hasSameTensorSize(padOp.getSource(), trimPadding))
2442 xferOp, padOp.getSource().getType(), xferOp.getVector(),
2443 padOp.getSource(), xferOp.getIndices(), xferOp.getPermutationMapAttr(),
2665 // Neither source nor result dim of padOp is static. Cannot vectorize
2711 /// - `padOp` result shape is static.
2716 /// - `padOp` result not used as destination.
2722 LogicalResult rewriteUser(PatternRewriter &rewriter, tensor::PadOp padOp,
2725 if (!padOp.hasZeroLowPad())
2731 auto padValue = padOp.getConstantPaddingValue();
2735 if (!cast<ShapedType>(padOp.getResult().getType()).hasStaticShape())
2738 if (insertOp.getDest() == padOp.getResult())
2741 auto vecType = VectorType::get(padOp.getType().getShape(),
2742 padOp.getType().getElementType());
2763 vecRank, rewriter.create<arith::ConstantIndexOp>(padOp.getLoc(), 0));
2765 padOp.getLoc(), vecType, padOp.getSource(), readIndices, padValue);
2771 rewriter, padOp.getLoc(), insertOp.getMixedOffsets());