Lines Matching defs:extractOp
778 tensor::ExtractOp extractOp = dyn_cast<tensor::ExtractOp>(op);
779 if (!extractOp)
782 if (extractOp.getIndices().size() != 1 && !vectorizeNDExtract)
787 if (not extractOp.getIndices().empty()) {
788 if (!VectorType::isValidElementType(extractOp.getIndices()[0].getType()))
792 if (llvm::any_of(extractOp->getResultTypes(), [](Type type) {
805 /// offset = extractOp.indices[0]
807 /// offset = extractOp.dimSize[i] * offset + extractOp.indices[i];
813 tensor::ExtractOp extractOp,
817 auto loc = extractOp.getLoc();
820 rewriter, bvm.lookup(extractOp.getIndices()[0]), indexVecType);
822 const size_t numIndices = extractOp.getIndices().size();
828 rewriter.create<tensor::DimOp>(loc, extractOp.getTensor(), dimIdx),
834 rewriter, bvm.lookup(extractOp.getIndices()[i]), indexVecType);
991 /// that `extractOp` is a gather load.
993 getTensorExtractMemoryAccessPattern(tensor::ExtractOp extractOp,
996 auto inputShape = cast<ShapedType>(extractOp.getTensor().getType());
1013 // 2. Analyze the leading indices of `extractOp`.
1017 auto indices = extractOp.getIndices();
1028 LDBG("Found gather load: " << extractOp);
1032 // 3. Analyze the trailing index for `extractOp`.
1042 LDBG("Found scalar broadcast load: " << extractOp);
1048 // The trailing `extractOp` index should increment with every loop iteration.
1060 LDBG("Found contigous load: " << extractOp);
1065 LDBG("Found gather load: " << extractOp);
1076 tensor::ExtractOp extractOp = dyn_cast<tensor::ExtractOp>(op);
1077 if (!extractOp)
1079 auto loc = extractOp.getLoc();
1082 auto resultType = state.getCanonicalVecType(extractOp.getResult().getType());
1093 extractOp.getIndices().size(),
1097 getTensorExtractMemoryAccessPattern(extractOp, linalgOp, resultType);
1101 Value offset = calculateGatherOffset(rewriter, state, extractOp, bvm);
1105 loc, resultType, extractOp.getTensor(), baseIndices, offset,
1109 LDBG("Vectorised as gather load: " << extractOp << "\n");
1132 for (size_t i = 0; i < extractOp.getIndices().size(); i++) {
1133 Value idx = bvm.lookup(extractOp.getIndices()[i]);
1150 auto srcRank = extractOp.getTensor().getType().getRank();
1160 loc, resultType, extractOp.getTensor(), transferReadIdxs,
1173 LDBG("Vectorised as scalar broadcast load: " << extractOp << "\n");
1196 loc, resultType, extractOp.getTensor(), transferReadIdxs, permutationMap,
1199 LDBG("Vectorised as contiguous load: " << extractOp);
1445 // 4c. Register CustomVectorizationHook for extractOp.
1897 // Register CustomVectorizationPrecondition for extractOp.