Skip to content

Commit 28f9bfe

Browse files
committed
[mlir] skip 0-D vector in BubbleUpBitCastForStridedSliceInsert
InsertStridedSliceOp will not get 0-D vector result, so just skip 0-D vector in BubbleUpBitCastForStridedSliceInsert. Fixes llvm#60214 llvm#60214 Differential Revision: https://reviews.llvm.org/D142319
1 parent 6594d05 commit 28f9bfe

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

mlir/lib/Dialect/Vector/Transforms/VectorTransforms.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2462,6 +2462,9 @@ struct BubbleUpBitCastForStridedSliceInsert
24622462
VectorType castSrcType = bitcastOp.getSourceVectorType();
24632463
VectorType castDstType = bitcastOp.getResultVectorType();
24642464
assert(castSrcType.getRank() == castDstType.getRank());
2465+
// Skip 0-D vector which will not from InsertStridedSliceOp.
2466+
if (castSrcType.getRank() == 0)
2467+
return failure();
24652468

24662469
int64_t castSrcLastDim = castSrcType.getShape().back();
24672470
int64_t castDstLastDim = castDstType.getShape().back();

mlir/test/Dialect/Vector/vector-transforms.mlir

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,3 +525,11 @@ func.func @bubble_up_bitcast_in_strided_slice_insert_larger_odd_shape(%dst: vect
525525
%cast = vector.bitcast %0: vector<8xf16> to vector<4xf32>
526526
return %cast: vector<4xf32>
527527
}
528+
529+
// Make sure not crash on 0-D vector.
530+
// CHECK-LABEL:func.func @vec_0D
531+
// CHECK-NEXT:vector.bitcast
532+
func.func @vec_0D(%arg0: vector<f32>) -> vector<i32> {
533+
%0 = vector.bitcast %arg0 : vector<f32> to vector<i32>
534+
return %0 : vector<i32>
535+
}

0 commit comments

Comments
 (0)