@@ -54,11 +54,11 @@ static Value createVectorLoadForMaskedLoad(OpBuilder &builder, Location loc,
54
54
vector::MaskedLoadOp maskedOp,
55
55
bool passthru) {
56
56
VectorType vectorType = maskedOp.getVectorType ();
57
- Value load = builder. create < vector::LoadOp> (
58
- loc, vectorType, maskedOp.getBase (), maskedOp.getIndices ());
57
+ Value load = vector::LoadOp::create (
58
+ builder, loc, vectorType, maskedOp.getBase (), maskedOp.getIndices ());
59
59
if (passthru)
60
- load = builder. create < arith::SelectOp>( loc, vectorType, maskedOp.getMask (),
61
- load, maskedOp.getPassThru ());
60
+ load = arith::SelectOp::create (builder, loc, vectorType, maskedOp.getMask (),
61
+ load, maskedOp.getPassThru ());
62
62
return load;
63
63
}
64
64
@@ -108,7 +108,7 @@ struct MaskedLoadLowering final : OpRewritePattern<vector::MaskedLoadOp> {
108
108
SmallVector<OpFoldResult> indices = maskedOp.getIndices ();
109
109
110
110
auto stridedMetadata =
111
- rewriter. create < memref::ExtractStridedMetadataOp>( loc, src);
111
+ memref::ExtractStridedMetadataOp::create (rewriter, loc, src);
112
112
SmallVector<OpFoldResult> strides =
113
113
stridedMetadata.getConstifiedMixedStrides ();
114
114
SmallVector<OpFoldResult> sizes = stridedMetadata.getConstifiedMixedSizes ();
@@ -122,47 +122,47 @@ struct MaskedLoadLowering final : OpRewritePattern<vector::MaskedLoadOp> {
122
122
123
123
// delta = bufferSize - linearizedOffset
124
124
Value vectorSizeOffset =
125
- rewriter. create < arith::ConstantIndexOp>( loc, vectorSize);
125
+ arith::ConstantIndexOp::create (rewriter, loc, vectorSize);
126
126
Value linearIndex =
127
127
getValueOrCreateConstantIndexOp (rewriter, loc, linearizedIndices);
128
128
Value totalSize = getValueOrCreateConstantIndexOp (
129
129
rewriter, loc, linearizedInfo.linearizedSize );
130
- Value delta = rewriter. create < arith::SubIOp>( loc, totalSize, linearIndex);
130
+ Value delta = arith::SubIOp::create (rewriter, loc, totalSize, linearIndex);
131
131
132
132
// 1) check if delta < vectorSize
133
- Value isOutofBounds = rewriter. create < arith::CmpIOp> (
134
- loc, arith::CmpIPredicate::ult, delta, vectorSizeOffset);
133
+ Value isOutofBounds = arith::CmpIOp::create (
134
+ rewriter, loc, arith::CmpIPredicate::ult, delta, vectorSizeOffset);
135
135
136
136
// 2) check if (detla % elements_per_word != 0)
137
- Value elementsPerWord = rewriter. create < arith::ConstantIndexOp> (
138
- loc, llvm::divideCeil (32 , elementBitWidth));
139
- Value isNotWordAligned = rewriter. create < arith::CmpIOp> (
140
- loc, arith::CmpIPredicate::ne,
141
- rewriter. create < arith::RemUIOp>( loc, delta, elementsPerWord),
142
- rewriter. create < arith::ConstantIndexOp>( loc, 0 ));
137
+ Value elementsPerWord = arith::ConstantIndexOp::create (
138
+ rewriter, loc, llvm::divideCeil (32 , elementBitWidth));
139
+ Value isNotWordAligned = arith::CmpIOp::create (
140
+ rewriter, loc, arith::CmpIPredicate::ne,
141
+ arith::RemUIOp::create (rewriter, loc, delta, elementsPerWord),
142
+ arith::ConstantIndexOp::create (rewriter, loc, 0 ));
143
143
144
144
// We take the fallback of maskedload default lowering only it is both
145
145
// out-of-bounds and not word aligned. The fallback ensures correct results
146
146
// when loading at the boundary of the buffer since buffer load returns
147
147
// inconsistent zeros for the whole word when boundary is crossed.
148
148
Value ifCondition =
149
- rewriter. create < arith::AndIOp>( loc, isOutofBounds, isNotWordAligned);
149
+ arith::AndIOp::create (rewriter, loc, isOutofBounds, isNotWordAligned);
150
150
151
151
auto thenBuilder = [&](OpBuilder &builder, Location loc) {
152
152
Operation *read = builder.clone (*maskedOp.getOperation ());
153
153
read->setAttr (kMaskedloadNeedsMask , builder.getUnitAttr ());
154
154
Value readResult = read->getResult (0 );
155
- builder. create < scf::YieldOp>( loc, readResult);
155
+ scf::YieldOp::create (builder, loc, readResult);
156
156
};
157
157
158
158
auto elseBuilder = [&](OpBuilder &builder, Location loc) {
159
159
Value res = createVectorLoadForMaskedLoad (builder, loc, maskedOp,
160
160
/* passthru=*/ true );
161
- rewriter. create < scf::YieldOp>( loc, res);
161
+ scf::YieldOp::create (rewriter, loc, res);
162
162
};
163
163
164
164
auto ifOp =
165
- rewriter. create < scf::IfOp>( loc, ifCondition, thenBuilder, elseBuilder);
165
+ scf::IfOp::create (rewriter, loc, ifCondition, thenBuilder, elseBuilder);
166
166
167
167
rewriter.replaceOp (maskedOp, ifOp);
168
168
@@ -185,13 +185,13 @@ struct FullMaskedLoadToConditionalLoad
185
185
auto trueBuilder = [&](OpBuilder &builder, Location loc) {
186
186
Value res = createVectorLoadForMaskedLoad (builder, loc, loadOp,
187
187
/* passthru=*/ false );
188
- rewriter. create < scf::YieldOp>( loc, res);
188
+ scf::YieldOp::create (rewriter, loc, res);
189
189
};
190
190
auto falseBuilder = [&](OpBuilder &builder, Location loc) {
191
- rewriter. create < scf::YieldOp>( loc, loadOp.getPassThru ());
191
+ scf::YieldOp::create (rewriter, loc, loadOp.getPassThru ());
192
192
};
193
- auto ifOp = rewriter. create < scf::IfOp>( loadOp.getLoc (), cond, trueBuilder,
194
- falseBuilder);
193
+ auto ifOp = scf::IfOp::create (rewriter, loadOp.getLoc (), cond, trueBuilder,
194
+ falseBuilder);
195
195
rewriter.replaceOp (loadOp, ifOp);
196
196
return success ();
197
197
}
@@ -210,11 +210,12 @@ struct FullMaskedStoreToConditionalStore
210
210
Value cond = maybeCond.value ();
211
211
212
212
auto trueBuilder = [&](OpBuilder &builder, Location loc) {
213
- rewriter. create < vector::StoreOp>( loc, storeOp.getValueToStore (),
214
- storeOp.getBase (), storeOp.getIndices ());
215
- rewriter. create < scf::YieldOp>( loc);
213
+ vector::StoreOp::create (rewriter, loc, storeOp.getValueToStore (),
214
+ storeOp.getBase (), storeOp.getIndices ());
215
+ scf::YieldOp::create (rewriter, loc);
216
216
};
217
- auto ifOp = rewriter.create <scf::IfOp>(storeOp.getLoc (), cond, trueBuilder);
217
+ auto ifOp =
218
+ scf::IfOp::create (rewriter, storeOp.getLoc (), cond, trueBuilder);
218
219
rewriter.replaceOp (storeOp, ifOp);
219
220
return success ();
220
221
}
0 commit comments