@@ -263,22 +263,25 @@ class VectorGatherOpConversion
263
263
LogicalResult
264
264
matchAndRewrite (vector::GatherOp gather, OpAdaptor adaptor,
265
265
ConversionPatternRewriter &rewriter) const override {
266
+ Location loc = gather->getLoc ();
266
267
MemRefType memRefType = dyn_cast<MemRefType>(gather.getBaseType ());
267
268
assert (memRefType && " The base should be bufferized" );
268
269
269
270
if (failed (isMemRefTypeSupported (memRefType, *this ->getTypeConverter ())))
270
- return failure ( );
271
+ return rewriter. notifyMatchFailure (gather, " memref type not supported " );
271
272
272
273
VectorType vType = gather.getVectorType ();
273
- if (vType.getRank () > 1 )
274
- return failure ();
275
-
276
- Location loc = gather-> getLoc ();
274
+ if (vType.getRank () > 1 ) {
275
+ return rewriter. notifyMatchFailure (
276
+ gather, " only 1-D vectors can be lowered to LLVM " );
277
+ }
277
278
278
279
// Resolve alignment.
279
280
unsigned align;
280
- if (failed (getMemRefAlignment (*getTypeConverter (), memRefType, align)))
281
- return failure ();
281
+ if (failed (getMemRefAlignment (*getTypeConverter (), memRefType, align))) {
282
+ return rewriter.notifyMatchFailure (gather,
283
+ " could not resolve memref alignment" );
284
+ }
282
285
283
286
// Resolve address.
284
287
Value ptr = getStridedElementPtr (loc, memRefType, adaptor.getBase (),
@@ -309,16 +312,20 @@ class VectorScatterOpConversion
309
312
MemRefType memRefType = scatter.getMemRefType ();
310
313
311
314
if (failed (isMemRefTypeSupported (memRefType, *this ->getTypeConverter ())))
312
- return failure ( );
315
+ return rewriter. notifyMatchFailure (scatter, " memref type not supported " );
313
316
314
317
VectorType vType = scatter.getVectorType ();
315
- if (vType.getRank () > 1 )
316
- return failure ();
318
+ if (vType.getRank () > 1 ) {
319
+ return rewriter.notifyMatchFailure (
320
+ scatter, " only 1-D vectors can be lowered to LLVM" );
321
+ }
317
322
318
323
// Resolve alignment.
319
324
unsigned align;
320
- if (failed (getMemRefAlignment (*getTypeConverter (), memRefType, align)))
321
- return failure ();
325
+ if (failed (getMemRefAlignment (*getTypeConverter (), memRefType, align))) {
326
+ return rewriter.notifyMatchFailure (scatter,
327
+ " could not resolve memref alignment" );
328
+ }
322
329
323
330
// Resolve address.
324
331
Value ptr = getStridedElementPtr (loc, memRefType, adaptor.getBase (),
0 commit comments