Lines Matching defs:linalgOp
46 // If the `linalgOp` represents a transpose, return the permutation vector for
49 getTransposeOpPermutation(linalg::LinalgOp linalgOp) {
50 if (auto transposeOp = dyn_cast<linalg::TransposeOp>(linalgOp.getOperation()))
52 if (linalgOp.getNumParallelLoops() != linalgOp.getNumLoops())
55 if (linalgOp.getNumDpsInputs() != 1 || linalgOp.getNumDpsInits() != 1)
57 auto mapRange = linalgOp.getIndexingMapsArray();
62 if (!llvm::hasSingleElement(linalgOp.getBlock()->getOperations()))
288 LogicalResult matchAndRewrite(linalg::LinalgOp linalgOp,
290 auto packOp = linalgOp->getOperand(0).getDefiningOp<PackOp>();
296 getTransposeOpPermutation(linalgOp);
312 linalgOp,
324 rewriter, linalgOp.getLoc(), packOp.getSource(), newMixedInnerTilesVec,
328 linalgOp, packOp.getSource(), output, newInnerDimsPosVec,
343 auto linalgOp = packOp.getSource().getDefiningOp<linalg::LinalgOp>();
344 if (!linalgOp)
348 getTransposeOpPermutation(linalgOp);
368 rewriter, packOp.getLoc(), linalgOp->getOperand(0),
372 packOp, linalgOp->getOperand(0), output, newInnerDimsPosVec,
385 LogicalResult matchAndRewrite(linalg::LinalgOp linalgOp,
387 auto unPackOp = linalgOp->getOperand(0).getDefiningOp<UnPackOp>();
393 getTransposeOpPermutation(linalgOp);
413 linalgOp, unPackOp.getSource(), linalgOp.getDpsInits()[0],
428 auto linalgOp = unPackOp.getSource().getDefiningOp<linalg::LinalgOp>();
429 if (!linalgOp)
433 getTransposeOpPermutation(linalgOp);
471 unPackOp, linalgOp->getOperand(0), output, newInnerDimsPosVec,