Lines Matching defs:padOp
96 Location loc, PadOp padOp,
99 RankedTensorType resultType = padOp.getResultType();
104 cast<tensor::YieldOp>(padOp.getBody()->getTerminator()).getValue();
110 padOp.getOperation();
114 yieldedValue.getDefiningOp()->getParentOp() != padOp.getOperation();
152 rewriter.mergeBlocks(padOp.getBody(), body, bbArgReplacements);
223 PadOp padOp, Attribute memorySpace, Operation *insertionPoint) {
228 rewriter.setInsertionPoint(insertionPoint ? insertionPoint : padOp);
229 Location loc = padOp.getLoc();
232 Value alloc = createAllocationForTensor(rewriter, loc, padOp.getResult(),
234 rewriter.setInsertionPoint(padOp);
236 if (!padOp.hasZeroLowPad() || !padOp.hasZeroHighPad()) {
239 movePaddingToFillOrGenericOp(rewriter, loc, padOp, alloc);
245 getMixedSizes(rewriter, loc, padOp.getSource());
246 SmallVector<OpFoldResult> strides(padOp.getResultType().getRank(),
249 loc, alloc, /*offsets=*/padOp.getMixedLowPad(), sizes, strides);
250 createMemcpy(rewriter, loc, padOp.getSource(), subview, options);
256 rewriter.replaceOp(padOp, toTensorOp);
424 tensor::PadOp padOp) {
426 if (!padOp.getBodyRegion().hasOneBlock())
430 Location loc = padOp.getLoc();
431 RankedTensorType resultType = padOp.getResultType();
433 if (failed(reifyResultShapes(rewriter, padOp, reifiedShape)))
435 padOp, "failed to reify tensor.pad op result shape");
441 // If the `padOp` has a nofold attribute and all paddings are known to be 0,
443 if (padOp.getNofoldAttr() &&
444 llvm::all_of(padOp.getMixedLowPad(), isZeroIndex) &&
445 llvm::all_of(padOp.getMixedHighPad(), isZeroIndex)) {
450 padOp, padOp.getSource(), allocated);
456 Operation *fillOp = movePaddingToFillOrGenericOp(rewriter, loc, padOp, empty);
461 getMixedSizes(rewriter, loc, padOp.getSource());
465 padOp, padOp.getSource(), fillOp->getResult(0),
466 /*offsets=*/padOp.getMixedLowPad(), sliceSizes, sliceStrides);
476 if (auto padOp = dyn_cast<tensor::PadOp>(op))
477 return bufferizeToAllocation(rewriter, options, padOp, memorySpace);