@@ -82,6 +82,10 @@ static LogicalResult transferPreconditions(PatternRewriter &rewriter,
82
82
xferOp, " Buffer must be contiguous in the innermost dimension" );
83
83
84
84
unsigned vecRank = vecTy.getRank ();
85
+ if (xferOp.hasOutOfBoundsDim () && vecRank < 2 )
86
+ return rewriter.notifyMatchFailure (
87
+ xferOp, " Boundary check is available only for block instructions." );
88
+
85
89
AffineMap map = xferOp.getPermutationMap ();
86
90
if (!map.isProjectedPermutation (/* allowZeroInResults=*/ false ))
87
91
return rewriter.notifyMatchFailure (xferOp, " Unsupported permutation map" );
@@ -255,9 +259,12 @@ struct LoadLowering : public OpRewritePattern<vector::LoadOp> {
255
259
if (failed (storeLoadPreconditions (rewriter, loadOp, vecTy)))
256
260
return failure ();
257
261
262
+ // Boundary check is available only for block instructions.
263
+ bool boundaryCheck = vecTy.getRank () > 1 ;
264
+
258
265
auto descType = xegpu::TensorDescType::get (
259
266
vecTy.getShape (), vecTy.getElementType (), /* array_length=*/ 1 ,
260
- /* boundary_check= */ true , xegpu::MemorySpace::Global);
267
+ boundaryCheck , xegpu::MemorySpace::Global);
261
268
xegpu::CreateNdDescOp ndDesc = createNdDescriptor (
262
269
rewriter, loc, descType, loadOp.getBase (), loadOp.getIndices ());
263
270
@@ -285,10 +292,12 @@ struct StoreLowering : public OpRewritePattern<vector::StoreOp> {
285
292
if (failed (storeLoadPreconditions (rewriter, storeOp, vecTy)))
286
293
return failure ();
287
294
288
- auto descType =
289
- xegpu::TensorDescType::get (vecTy.getShape (), vecTy.getElementType (),
290
- /* array_length=*/ 1 , /* boundary_check=*/ true ,
291
- xegpu::MemorySpace::Global);
295
+ // Boundary check is available only for block instructions.
296
+ bool boundaryCheck = vecTy.getRank () > 1 ;
297
+
298
+ auto descType = xegpu::TensorDescType::get (
299
+ vecTy.getShape (), vecTy.getElementType (),
300
+ /* array_length=*/ 1 , boundaryCheck, xegpu::MemorySpace::Global);
292
301
xegpu::CreateNdDescOp ndDesc = createNdDescriptor (
293
302
rewriter, loc, descType, storeOp.getBase (), storeOp.getIndices ());
294
303
0 commit comments