@@ -152,9 +152,10 @@ struct LinearizeVectorExtractStridedSlice final
152
152
matchAndRewrite (vector::ExtractStridedSliceOp extractOp, OpAdaptor adaptor,
153
153
ConversionPatternRewriter &rewriter) const override {
154
154
Type dstType = getTypeConverter ()->convertType (extractOp.getType ());
155
- assert (!(extractOp.getVector ().getType ().isScalable () ||
156
- cast<VectorType>(dstType).isScalable ()) &&
157
- " scalable vectors are not supported." );
155
+ if (extractOp.getVector ().getType ().isScalable () ||
156
+ cast<VectorType>(dstType).isScalable ())
157
+ return rewriter.notifyMatchFailure (extractOp,
158
+ " scalable vectors are not supported." );
158
159
if (!isLessThanTargetBitWidth (extractOp, targetVectorBitWidth))
159
160
return rewriter.notifyMatchFailure (
160
161
extractOp, " Can't flatten since targetBitWidth <= OpSize" );
@@ -265,6 +266,8 @@ struct LinearizeVectorShuffle final
265
266
matchAndRewrite (vector::ShuffleOp shuffleOp, OpAdaptor adaptor,
266
267
ConversionPatternRewriter &rewriter) const override {
267
268
Type dstType = getTypeConverter ()->convertType (shuffleOp.getType ());
269
+ // The assert is used because vector.shuffle does not support scalable
270
+ // vectors.
268
271
assert (!(shuffleOp.getV1VectorType ().isScalable () ||
269
272
shuffleOp.getV2VectorType ().isScalable () ||
270
273
cast<VectorType>(dstType).isScalable ()) &&
@@ -336,9 +339,10 @@ struct LinearizeVectorExtract final
336
339
matchAndRewrite (vector::ExtractOp extractOp, OpAdaptor adaptor,
337
340
ConversionPatternRewriter &rewriter) const override {
338
341
Type dstTy = getTypeConverter ()->convertType (extractOp.getType ());
339
- assert (!(extractOp.getVector ().getType ().isScalable () ||
340
- cast<VectorType>(dstTy).isScalable ()) &&
341
- " scalable vectors are not supported." );
342
+ if (extractOp.getVector ().getType ().isScalable () ||
343
+ cast<VectorType>(dstTy).isScalable ())
344
+ return rewriter.notifyMatchFailure (extractOp,
345
+ " scalable vectors are not supported." );
342
346
if (!isLessThanTargetBitWidth (extractOp, targetVectorBitWidth))
343
347
return rewriter.notifyMatchFailure (
344
348
extractOp, " Can't flatten since targetBitWidth <= OpSize" );
@@ -395,9 +399,10 @@ struct LinearizeVectorInsert final
395
399
matchAndRewrite (vector::InsertOp insertOp, OpAdaptor adaptor,
396
400
ConversionPatternRewriter &rewriter) const override {
397
401
Type dstTy = getTypeConverter ()->convertType (insertOp.getDestVectorType ());
398
- assert (!(insertOp.getDestVectorType ().isScalable () ||
399
- cast<VectorType>(dstTy).isScalable ()) &&
400
- " scalable vectors are not supported." );
402
+ if (insertOp.getDestVectorType ().isScalable () ||
403
+ cast<VectorType>(dstTy).isScalable ())
404
+ return rewriter.notifyMatchFailure (insertOp,
405
+ " scalable vectors are not supported." );
401
406
402
407
if (!isLessThanOrEqualTargetBitWidth (insertOp.getSourceType (),
403
408
targetVectorBitWidth))
0 commit comments