@@ -1868,7 +1868,8 @@ vectorizeAsTensorPackOp(RewriterBase &rewriter, linalg::PackOp packOp,
1868
1868
// / // Reshape the data based on the target
1869
1869
// / %sc = vector.shape_cast %tr : vector<1x8x1x8xf32> to vector<8x8xf32>
1870
1870
// / // Write the result vector to the destination tensor.
1871
- // / vector.transfer_write %sc into %dest : vector<8x8xf32>, tensor<8x8xf32>
1871
+ // / %write = vector.transfer_write %sc into %dest
1872
+ // / : vector<8x8xf32>, tensor<8x8xf32>
1872
1873
// / ```
1873
1874
static LogicalResult
1874
1875
vectorizeAsTensorUnpackOp (RewriterBase &rewriter, linalg::UnPackOp unpackOp,
@@ -1901,22 +1902,21 @@ vectorizeAsTensorUnpackOp(RewriterBase &rewriter, linalg::UnPackOp unpackOp,
1901
1902
SmallVector<bool > readScalableVectorFlags;
1902
1903
SmallVector<bool > writeScalableVectorFlags;
1903
1904
1904
- // CASE 1.1: Vector sizes are user-specified.
1905
1905
if (!inputVectorSizes.empty ()) {
1906
- readVectorSizes.append (inputVectorSizes.begin (),
1906
+ // CASE 1.1: Vector sizes are user-specified.
1907
+ readVectorSizes.assign (inputVectorSizes.begin (),
1907
1908
inputVectorSizes.begin () + sourceShape.size ());
1908
- writeVectorSizes.append (inputVectorSizes.begin () + sourceShape.size (),
1909
+ writeVectorSizes.assign (inputVectorSizes.begin () + sourceShape.size (),
1909
1910
inputVectorSizes.end ());
1910
- readScalableVectorFlags.append (inputScalableVecDims.begin (),
1911
+ readScalableVectorFlags.assign (inputScalableVecDims.begin (),
1911
1912
inputScalableVecDims.begin () +
1912
1913
sourceShape.size ());
1913
- writeScalableVectorFlags.append (inputScalableVecDims.begin () +
1914
+ writeScalableVectorFlags.assign (inputScalableVecDims.begin () +
1914
1915
sourceShape.size (),
1915
1916
inputScalableVecDims.end ());
1916
- }
1917
-
1918
- // CASE 1. 2: Vector sizes have to be inferred.
1919
- if (writeVectorSizes.empty ()) {
1917
+ } else {
1918
+ // CASE 1.2: Vector sizes are inferred from the static input tensor
1919
+ // shapes.
1920
1920
if (ShapedType::isDynamicShape (destShape) ||
1921
1921
ShapedType::isDynamicShape (sourceShape))
1922
1922
return failure ();
@@ -2082,12 +2082,11 @@ vectorizeUnPackOpPrecondition(linalg::UnPackOp unpackOp,
2082
2082
2083
2083
// The input vector sizes must be equal to:
2084
2084
// * read-vector-rank + write-vector-rank
2085
- if (!inputVectorSizes.empty ()) {
2086
- if (inputVectorSizes.size () !=
2087
- unpackOp.getDestRank () + unpackOp.getSourceRank ()) {
2088
- LDBG () << " Incorrect number of input vector sizes" ;
2089
- return failure ();
2090
- }
2085
+ if (!inputVectorSizes.empty () &&
2086
+ (inputVectorSizes.size () !=
2087
+ unpackOp.getDestRank () + unpackOp.getSourceRank ())) {
2088
+ LDBG () << " Incorrect number of input vector sizes" ;
2089
+ return failure ();
2091
2090
}
2092
2091
2093
2092
// Check the vector sizes for the read operation.
0 commit comments