diff --git a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp index 4fee81aa2ef67..27b661781f10f 100644 --- a/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp +++ b/mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp @@ -791,9 +791,8 @@ struct FoldFillWithPad final : public OpRewritePattern { tensor::EmptyOp::create(rewriter, padOp.getLoc(), reifiedShape.front(), padOp.getResultType().getElementType()); Value replacement = - rewriter - .create(fillOp.getLoc(), ValueRange{padValue}, - ValueRange{emptyTensor}) + FillOp::create(rewriter, fillOp.getLoc(), ValueRange{padValue}, + ValueRange{emptyTensor}) .getResult(0); if (replacement.getType() != padOp.getResultType()) { replacement = tensor::CastOp::create(rewriter, fillOp.getLoc(), @@ -2154,9 +2153,8 @@ struct SwapTransposeWithBroadcast : OpRewritePattern { // Create broadcast(transpose(input)). Value transposeResult = - rewriter - .create(loc, broadcastOp.getInput(), transposeInit, - resultPerms) + TransposeOp::create(rewriter, loc, broadcastOp.getInput(), + transposeInit, resultPerms) ->getResult(0); rewriter.replaceOpWithNewOp( transposeOp, transposeResult, transposeOp.getInit(), resultDimensions); diff --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp index bb0861340ad92..bdfc8d020e58f 100644 --- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp +++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp @@ -4133,9 +4133,8 @@ DiagnosedSilenceableFailure doit(RewriterBase &rewriter, OpTy target, Value extracted = tensor::ExtractSliceOp::create( rewriter, target.getLoc(), target.getDest(), target.getMixedOffsets(), target.getMixedSizes(), target.getMixedStrides()); - Value copied = rewriter - .create(target.getLoc(), - target.getSource(), extracted) + Value copied = linalg::CopyOp::create(rewriter, target.getLoc(), + target.getSource(), extracted) .getResult(0); // Reset the insertion point. rewriter.setInsertionPoint(target); diff --git a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp index 91a297f7b9db7..0a9c1766425bd 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/DataLayoutPropagation.cpp @@ -1143,10 +1143,9 @@ pushDownUnPackOpThroughGenericOp(RewriterBase &rewriter, GenericOp genericOp, // Insert an unPackOp right after the packed generic. Value unPackOpRes = - rewriter - .create(genericOp.getLoc(), newResult, - destPack.getSource(), innerDimsPos, - mixedTiles, outerDimsPerm) + linalg::UnPackOp::create(rewriter, genericOp.getLoc(), newResult, + destPack.getSource(), innerDimsPos, mixedTiles, + outerDimsPerm) .getResult(); return std::make_tuple(newGenericOp, unPackOpRes); diff --git a/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp b/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp index 745a40dbc4eea..7f9ba1bdd2692 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp @@ -267,8 +267,8 @@ expandValue(RewriterBase &rewriter, Location loc, Value result, Value origDest, assert(rankReductionStrategy == ControlDropUnitDims::RankReductionStrategy::ReassociativeReshape && "unknown rank reduction strategy"); - return rewriter - .create(loc, origResultType, result, reassociation) + return tensor::ExpandShapeOp::create(rewriter, loc, origResultType, result, + reassociation) .getResult(); } diff --git a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp index 4a66b8b9619f4..3bd763ea00cd7 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp @@ -1572,12 +1572,12 @@ static Value getCollapsedOpOperand(Location loc, LinalgOp op, // Insert a reshape to collapse the dimensions. if (isa(operand.getType())) { - return builder - .create(loc, operand, operandReassociation) + return memref::CollapseShapeOp::create(builder, loc, operand, + operandReassociation) .getResult(); } - return builder - .create(loc, operand, operandReassociation) + return tensor::CollapseShapeOp::create(builder, loc, operand, + operandReassociation) .getResult(); } diff --git a/mlir/lib/Dialect/Linalg/Transforms/PackAndUnpackPatterns.cpp b/mlir/lib/Dialect/Linalg/Transforms/PackAndUnpackPatterns.cpp index a45a4e314e511..277e50bd5c9ec 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/PackAndUnpackPatterns.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/PackAndUnpackPatterns.cpp @@ -81,9 +81,8 @@ struct SimplifyPackToExpandShape : public OpRewritePattern { ArrayRef reassociation) const { if (operand.getType() == newOperandType) return operand; - return rewriter - .create(loc, newOperandType, operand, - reassociation) + return tensor::ExpandShapeOp::create(rewriter, loc, newOperandType, operand, + reassociation) .getResult(); } diff --git a/mlir/lib/Dialect/Linalg/Transforms/Padding.cpp b/mlir/lib/Dialect/Linalg/Transforms/Padding.cpp index b5c5aea56a998..dd8437985197d 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Padding.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Padding.cpp @@ -333,17 +333,16 @@ linalg::rewriteAsPaddedOp(RewriterBase &rewriter, LinalgOp opToPad, for (auto it : llvm::zip(paddedSubtensorResults, opToPad.getDpsInitsMutable())) { if (options.copyBackOp == LinalgPaddingOptions::CopyBackOp::LinalgCopy) { - replacements.push_back(rewriter - .create(loc, std::get<0>(it), - std::get<1>(it).get()) + replacements.push_back(linalg::CopyOp::create(rewriter, loc, + std::get<0>(it), + std::get<1>(it).get()) .getResult(0)); } else if (options.copyBackOp == LinalgPaddingOptions::CopyBackOp:: BufferizationMaterializeInDestination) { replacements.push_back( - rewriter - .create( - loc, std::get<0>(it), std::get<1>(it).get()) + bufferization::MaterializeInDestinationOp::create( + rewriter, loc, std::get<0>(it), std::get<1>(it).get()) ->getResult(0)); } else { llvm_unreachable("unsupported copy back op"); diff --git a/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp b/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp index 1f1e617738981..bb725f2ad6a68 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Transforms.cpp @@ -947,9 +947,9 @@ DecomposePadOpPattern::matchAndRewrite(tensor::PadOp padOp, auto getIdxValue = [&](OpFoldResult ofr) { if (auto val = llvm::dyn_cast_if_present(ofr)) return val; - return rewriter - .create( - padOp.getLoc(), cast(cast(ofr)).getInt()) + return arith::ConstantIndexOp::create( + rewriter, padOp.getLoc(), + cast(cast(ofr)).getInt()) .getResult(); }; diff --git a/mlir/lib/Dialect/Linalg/Transforms/TransposeConv2D.cpp b/mlir/lib/Dialect/Linalg/Transforms/TransposeConv2D.cpp index 99fb8c796cf06..35453e2d2e104 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/TransposeConv2D.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/TransposeConv2D.cpp @@ -70,9 +70,8 @@ FailureOr transposeConv2DHelper(RewriterBase &rewriter, input = tensor::EmptyOp::create(rewriter, loc, newFilterShape, elementTy) .getResult(); } else { - input = rewriter - .create( - loc, MemRefType::get(newFilterShape, elementTy)) + input = memref::AllocOp::create(rewriter, loc, + MemRefType::get(newFilterShape, elementTy)) .getResult(); } diff --git a/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp b/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp index ae627da5445a8..0170837cf81e4 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp @@ -3714,8 +3714,8 @@ struct Conv1DGenerator } } - return rewriter - .create(loc, res, resShaped, resPadding) + return vector::TransferWriteOp::create(rewriter, loc, res, resShaped, + resPadding) .getOperation(); } diff --git a/mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp b/mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp index 669fefcd86de1..b80b27fe5fcc5 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/WinogradConv2D.cpp @@ -398,10 +398,9 @@ Value filterTransform(RewriterBase &rewriter, Location loc, Value filter, retRows = GMatrix.rows; auto matmulType = RankedTensorType::get({retRows, filterW}, elementType); - auto empty = - builder - .create(loc, matmulType.getShape(), elementType) - .getResult(); + auto empty = tensor::EmptyOp::create(builder, loc, matmulType.getShape(), + elementType) + .getResult(); auto init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); @@ -422,10 +421,9 @@ Value filterTransform(RewriterBase &rewriter, Location loc, Value filter, auto matmulType = RankedTensorType::get({retRows, GTMatrix.cols}, elementType); - auto empty = - builder - .create(loc, matmulType.getShape(), elementType) - .getResult(); + auto empty = tensor::EmptyOp::create(builder, loc, matmulType.getShape(), + elementType) + .getResult(); auto init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); @@ -547,10 +545,9 @@ Value inputTransform(RewriterBase &rewriter, Location loc, Value input, retRows = BTMatrix.rows; auto matmulType = RankedTensorType::get({retRows, alphaW}, elementType); - auto empty = - builder - .create(loc, matmulType.getShape(), elementType) - .getResult(); + auto empty = tensor::EmptyOp::create(builder, loc, matmulType.getShape(), + elementType) + .getResult(); auto init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); @@ -572,10 +569,9 @@ Value inputTransform(RewriterBase &rewriter, Location loc, Value input, retCols = BMatrix.cols; auto matmulType = RankedTensorType::get({retRows, retCols}, elementType); - auto empty = - builder - .create(loc, matmulType.getShape(), elementType) - .getResult(); + auto empty = tensor::EmptyOp::create(builder, loc, matmulType.getShape(), + elementType) + .getResult(); auto init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); Value B = @@ -661,9 +657,8 @@ static Value matrixMultiply(RewriterBase &rewriter, Location loc, {inputShape[0] * inputShape[1], inputShape[2] * inputShape[3] * inputShape[4], filterShape[3]}, outputElementType); - Value empty = rewriter - .create(loc, matmulType.getShape(), - outputElementType) + Value empty = tensor::EmptyOp::create(rewriter, loc, matmulType.getShape(), + outputElementType) .getResult(); Value zero = arith::ConstantOp::create( rewriter, loc, rewriter.getZeroAttr(outputElementType)); @@ -782,9 +777,8 @@ Value outputTransform(RewriterBase &rewriter, Location loc, Value value, auto matmulType = RankedTensorType::get({retRows, valueW}, elementType); Value init = outInitVal; if (rightTransform || scalarFactor != 1) { - auto empty = builder - .create(loc, matmulType.getShape(), - elementType) + auto empty = tensor::EmptyOp::create(builder, loc, + matmulType.getShape(), elementType) .getResult(); init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); } @@ -802,9 +796,8 @@ Value outputTransform(RewriterBase &rewriter, Location loc, Value value, RankedTensorType::get({retRows, AMatrix.cols}, elementType); Value init = outInitVal; if (scalarFactor != 1) { - auto empty = builder - .create(loc, matmulType.getShape(), - elementType) + auto empty = tensor::EmptyOp::create(builder, loc, + matmulType.getShape(), elementType) .getResult(); init = linalg::FillOp::create(builder, loc, zero, empty).getResult(0); } @@ -827,23 +820,21 @@ Value outputTransform(RewriterBase &rewriter, Location loc, Value value, AffineMap::get(2, 0, context), identityAffineMap, identityAffineMap}; matmulRetValue = - rewriter - .create( - loc, matmulType, - ValueRange{scalarFactorValue, matmulRetValue}, - ValueRange{outInitVal}, affineMaps, - llvm::ArrayRef{ - utils::IteratorType::parallel, - utils::IteratorType::parallel}, - [&](OpBuilder &nestedBuilder, Location nestedLoc, - ValueRange args) { - auto mulf = arith::MulFOp::create(nestedBuilder, nestedLoc, - args[0], args[1]); - auto addf = arith::AddFOp::create( - nestedBuilder, nestedLoc, mulf.getResult(), args[2]); - linalg::YieldOp::create(nestedBuilder, nestedLoc, - addf.getResult()); - }) + linalg::GenericOp::create( + rewriter, loc, matmulType, + ValueRange{scalarFactorValue, matmulRetValue}, + ValueRange{outInitVal}, affineMaps, + llvm::ArrayRef{ + utils::IteratorType::parallel, utils::IteratorType::parallel}, + [&](OpBuilder &nestedBuilder, Location nestedLoc, + ValueRange args) { + auto mulf = arith::MulFOp::create(nestedBuilder, nestedLoc, + args[0], args[1]); + auto addf = arith::AddFOp::create(nestedBuilder, nestedLoc, + mulf.getResult(), args[2]); + linalg::YieldOp::create(nestedBuilder, nestedLoc, + addf.getResult()); + }) .getResult(0); } diff --git a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp index 4e9f93b9cae6f..bce358d8903eb 100644 --- a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp +++ b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp @@ -372,9 +372,8 @@ SmallVector vector::getAsValues(OpBuilder &builder, Location loc, llvm::transform(foldResults, std::back_inserter(values), [&](OpFoldResult foldResult) { if (auto attr = dyn_cast(foldResult)) - return builder - .create( - loc, cast(attr).getInt()) + return arith::ConstantIndexOp::create( + builder, loc, cast(attr).getInt()) .getResult(); return cast(foldResult); diff --git a/mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp b/mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp index 2484670c39caa..e062f55f87679 100644 --- a/mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/LowerVectorGather.cpp @@ -248,11 +248,10 @@ struct Gather1DToConditionalLoads : OpRewritePattern { scf::YieldOp::create(b, loc, result); }; - result = - rewriter - .create(loc, condition, /*thenBuilder=*/loadBuilder, + result = scf::IfOp::create(rewriter, loc, condition, + /*thenBuilder=*/loadBuilder, /*elseBuilder=*/passThruBuilder) - .getResult(0); + .getResult(0); } rewriter.replaceOp(op, result); diff --git a/mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp b/mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp index e9109322ed3d8..4baeb1145d25b 100644 --- a/mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/LowerVectorTransfer.cpp @@ -142,8 +142,8 @@ struct TransferReadPermutationLowering // Transpose result of transfer_read. SmallVector transposePerm(permutation.begin(), permutation.end()); - return rewriter - .create(op.getLoc(), newRead, transposePerm) + return vector::TransposeOp::create(rewriter, op.getLoc(), newRead, + transposePerm) .getResult(); } }; @@ -371,8 +371,8 @@ struct TransferOpReduceRank rewriter, op.getLoc(), newReadType, op.getBase(), op.getIndices(), AffineMapAttr::get(newMap), op.getPadding(), op.getMask(), newInBoundsAttr); - return rewriter - .create(op.getLoc(), originalVecType, newRead) + return vector::BroadcastOp::create(rewriter, op.getLoc(), originalVecType, + newRead) .getVector(); } }; diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp index 58e94ea00189f..bb0f339a26e43 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorDistribute.cpp @@ -451,10 +451,9 @@ struct WarpOpTransferWrite : public WarpDistributionPattern { } SmallVector delinearized; if (map.getNumResults() > 1) { - delinearized = rewriter - .create( - newWarpOp.getLoc(), newWarpOp.getLaneid(), - delinearizedIdSizes) + delinearized = mlir::affine::AffineDelinearizeIndexOp::create( + rewriter, newWarpOp.getLoc(), newWarpOp.getLaneid(), + delinearizedIdSizes) .getResults(); } else { // If there is only one map result, we can elide the delinearization @@ -1538,19 +1537,18 @@ struct WarpOpInsertScalar : public WarpDistributionPattern { arith::CmpIOp::create(rewriter, loc, arith::CmpIPredicate::eq, newWarpOp.getLaneid(), insertingLane); Value newResult = - rewriter - .create( - loc, isInsertingLane, - /*thenBuilder=*/ - [&](OpBuilder &builder, Location loc) { - Value newInsert = vector::InsertOp::create( - builder, loc, newSource, distributedVec, newPos); - scf::YieldOp::create(builder, loc, newInsert); - }, - /*elseBuilder=*/ - [&](OpBuilder &builder, Location loc) { - scf::YieldOp::create(builder, loc, distributedVec); - }) + scf::IfOp::create( + rewriter, loc, isInsertingLane, + /*thenBuilder=*/ + [&](OpBuilder &builder, Location loc) { + Value newInsert = vector::InsertOp::create( + builder, loc, newSource, distributedVec, newPos); + scf::YieldOp::create(builder, loc, newInsert); + }, + /*elseBuilder=*/ + [&](OpBuilder &builder, Location loc) { + scf::YieldOp::create(builder, loc, distributedVec); + }) .getResult(0); rewriter.replaceAllUsesWith(newWarpOp->getResult(operandNumber), newResult); return success(); @@ -1661,10 +1659,9 @@ struct WarpOpInsert : public WarpDistributionPattern { auto nonInsertingBuilder = [&](OpBuilder &builder, Location loc) { scf::YieldOp::create(builder, loc, distributedDest); }; - newResult = rewriter - .create(loc, isInsertingLane, - /*thenBuilder=*/insertingBuilder, - /*elseBuilder=*/nonInsertingBuilder) + newResult = scf::IfOp::create(rewriter, loc, isInsertingLane, + /*thenBuilder=*/insertingBuilder, + /*elseBuilder=*/nonInsertingBuilder) .getResult(0); } diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp index 73388a5da3e4f..9889d7f221fe6 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorDropLeadUnitDim.cpp @@ -466,9 +466,9 @@ mlir::vector::castAwayContractionLeadingOneDim(vector::ContractionOp contractOp, newOp = mlir::vector::maskOperation(rewriter, newOp, newMask); } - return rewriter - .create(loc, contractOp->getResultTypes()[0], - newOp->getResults()[0]) + return vector::BroadcastOp::create(rewriter, loc, + contractOp->getResultTypes()[0], + newOp->getResults()[0]) .getResult(); } diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp index 91a484f7d463c..f78e579d6c099 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp @@ -132,17 +132,16 @@ static FailureOr getCompressedMaskOp(OpBuilder &rewriter, return vector::CreateMaskOp::create(rewriter, loc, newMaskType, newMaskOperands); }) - .Case( - [&](auto constantMaskOp) -> std::optional { - // Take the shape of mask, compress its trailing dimension: - SmallVector maskDimSizes( - constantMaskOp.getMaskDimSizes()); - int64_t &maskIndex = maskDimSizes.back(); - maskIndex = llvm::divideCeil(numFrontPadElems + maskIndex, - numSrcElemsPerDest); - return vector::ConstantMaskOp::create( - rewriter, loc, newMaskType, maskDimSizes); - }) + .Case([&](auto constantMaskOp) + -> std::optional { + // Take the shape of mask, compress its trailing dimension: + SmallVector maskDimSizes(constantMaskOp.getMaskDimSizes()); + int64_t &maskIndex = maskDimSizes.back(); + maskIndex = llvm::divideCeil(numFrontPadElems + maskIndex, + numSrcElemsPerDest); + return vector::ConstantMaskOp::create(rewriter, loc, newMaskType, + maskDimSizes); + }) .Case([&](auto constantOp) -> std::optional { // TODO: Support multiple dimensions. @@ -229,9 +228,8 @@ static Value staticallyExtractSubvector(OpBuilder &rewriter, Location loc, auto resultVectorType = VectorType::get({numElemsToExtract}, vectorType.getElementType()); - return rewriter - .create(loc, resultVectorType, src, - offsets, sizes, strides) + return vector::ExtractStridedSliceOp::create(rewriter, loc, resultVectorType, + src, offsets, sizes, strides) ->getResult(0); } diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp index 2676d254c9b64..48d680c03489b 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransferOpTransforms.cpp @@ -330,8 +330,8 @@ createMaskDropNonScalableUnitDims(PatternRewriter &rewriter, Location loc, } reducedOperands.push_back(operand); } - return rewriter - .create(loc, reducedType, reducedOperands) + return vector::CreateMaskOp::create(rewriter, loc, reducedType, + reducedOperands) .getResult(); } diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp index 05b00744beea2..5e12dc486e595 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransferSplitRewritePatterns.cpp @@ -348,24 +348,23 @@ getLocationToWriteFullVec(RewriterBase &b, vector::TransferWriteOp xferOp, Location loc = xferOp.getLoc(); Value zero = arith::ConstantIndexOp::create(b, loc, 0); Value memref = xferOp.getBase(); - return b - .create( - loc, inBoundsCond, - [&](OpBuilder &b, Location loc) { - Value res = - castToCompatibleMemRefType(b, memref, compatibleMemRefType); - scf::ValueVector viewAndIndices{res}; - llvm::append_range(viewAndIndices, xferOp.getIndices()); - scf::YieldOp::create(b, loc, viewAndIndices); - }, - [&](OpBuilder &b, Location loc) { - Value casted = - castToCompatibleMemRefType(b, alloc, compatibleMemRefType); - scf::ValueVector viewAndIndices{casted}; - viewAndIndices.insert(viewAndIndices.end(), - xferOp.getTransferRank(), zero); - scf::YieldOp::create(b, loc, viewAndIndices); - }) + return scf::IfOp::create( + b, loc, inBoundsCond, + [&](OpBuilder &b, Location loc) { + Value res = + castToCompatibleMemRefType(b, memref, compatibleMemRefType); + scf::ValueVector viewAndIndices{res}; + llvm::append_range(viewAndIndices, xferOp.getIndices()); + scf::YieldOp::create(b, loc, viewAndIndices); + }, + [&](OpBuilder &b, Location loc) { + Value casted = + castToCompatibleMemRefType(b, alloc, compatibleMemRefType); + scf::ValueVector viewAndIndices{casted}; + viewAndIndices.insert(viewAndIndices.end(), + xferOp.getTransferRank(), zero); + scf::YieldOp::create(b, loc, viewAndIndices); + }) ->getResults(); } diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp index 73ca327bb49c5..8de87fef904fa 100644 --- a/mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp +++ b/mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp @@ -410,9 +410,8 @@ FailureOr combineContractAndBroadcast(vector::ContractionOp contractOp, oldMaskType.getScalableDims().drop_front(unusedDimsBitVector.count()); VectorType maskOpType = VectorType::get(newShape, rewriter.getI1Type(), newShapeScalableDims); - mask = rewriter - .create(contractOp.getLoc(), maskOpType, - maskingOp.getMask()) + mask = vector::ShapeCastOp::create(rewriter, contractOp.getLoc(), + maskOpType, maskingOp.getMask()) .getResult(); }