Lines Matching defs:genericOp

38 static bool hasGatherSemantics(linalg::GenericOp genericOp) {
39 for (Operation &op : genericOp.getBody()->getOperations())
62 getPackingInfoFromOperand(OpOperand *opOperand, linalg::GenericOp genericOp,
69 AffineMap indexingMap = genericOp.getMatchingIndexingMap(opOperand);
70 SmallVector<AffineMap> indexingMaps = genericOp.getIndexingMapsArray();
72 genericOp.getIteratorTypesArray();
228 GenericOp genericOp, OpOperand *opOperand) {
229 int64_t numOrigLoops = genericOp.getNumLoops();
232 AffineMap origIndexingMap = genericOp.getMatchingIndexingMap(opOperand);
237 if (genericOp.isScalar(opOperand) || exprs.empty())
301 /// Pack a genericOp and return it.
302 static GenericOp packGenericOp(RewriterBase &rewriter, GenericOp genericOp,
305 Location loc = genericOp.getLoc();
308 for (OpOperand *inputOperand : genericOp.getDpsInputOperands()) {
310 rewriter, loc, packInfo, genericOp, inputOperand);
317 genericOp.getIteratorTypesArray();
324 /*bodyBuild=*/nullptr, linalg::getPrunedAttributeList(genericOp));
325 rewriter.cloneRegionBefore(genericOp.getRegion(), newGenericOp.getRegion(),
376 auto genericOp = packOp.getSource().getDefiningOp<GenericOp>();
377 if (!genericOp)
387 if (hasGatherSemantics(genericOp))
392 if (genericOp.getNumResults() != 1)
399 if (!genericOp->getResult(0).hasOneUse())
404 rewriter.setInsertionPoint(genericOp);
417 genericOp->getLoc(), emptyOp.getMixedSizes(),
420 DominanceInfo dom(genericOp);
421 if (!dom.properlyDominates(packOpDest, genericOp))
432 OpOperand *opOperand = genericOp.getDpsInitOperand(0);
433 auto packInfo = getPackingInfoFromOperand(opOperand, genericOp, packOp);
439 getOrCreatePackedViewOfOperand(rewriter, genericOp.getLoc(), *packInfo,
440 genericOp, opOperand);
445 if (auto initTensor = genericOp.getDpsInitOperand(0)
450 return packGenericOp(rewriter, genericOp, dest, packedOutIndexingMap,
464 auto genericOp =
466 if (failed(genericOp))
468 rewriter.replaceOp(packOp, genericOp->getResults());
1001 static FailureOr<OpOperand *> getUnPackedOperand(GenericOp genericOp) {
1003 for (OpOperand &operand : genericOp->getOpOperands()) {
1051 pushDownUnPackOpThroughGenericOp(RewriterBase &rewriter, GenericOp genericOp,
1053 if (genericOp.getNumResults() != 1)
1056 if (hasGatherSemantics(genericOp))
1060 auto maybeUnPackedOperand = getUnPackedOperand(genericOp);
1074 getPackingInfoFromOperand(unPackedOperand, genericOp, producerUnPackOp);
1080 getOrCreatePackedViewOfOperand(rewriter, genericOp.getLoc(), *packInfo,
1081 genericOp, genericOp.getDpsInitOperand(0));
1087 if (auto initTensor = genericOp.getDpsInitOperand(0)
1094 // Pack the genericOp.
1096 packGenericOp(rewriter, genericOp, dest, packedOutIndexingMap, *packInfo);
1111 .create<tensor::UnPackOp>(genericOp.getLoc(), newResult,
1126 LogicalResult matchAndRewrite(GenericOp genericOp,
1129 pushDownUnPackOpThroughGenericOp(rewriter, genericOp, controlFn);
1132 rewriter.replaceOp(genericOp, std::get<1>(*genericAndRepl));