[Mlir-commits] [mlir] [mlir][vector] Consistently name Vector op results (PR #238070)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Nov 2 11:03:08 PST 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-gpu
@llvm/pr-subscribers-mlir
Author: Andrzej WarzyĆski (banach-space)
<details>
<summary>Changes</summary>
This continues the cleanup tracked in #<!-- -->131602.
Use result consistently in Vector op definitions, replacing names such
as dest and res. For DeinterleaveOp, rename res1 and res2 to resultEven
and resultOdd, respectively, to reflect their contents.
---
Patch is 30.45 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/238070.diff
14 Files Affected:
- (modified) mlir/include/mlir/Dialect/Vector/IR/VectorOps.td (+13-13)
- (modified) mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp (+4-4)
- (modified) mlir/lib/Dialect/Vector/IR/VectorOps.cpp (+8-8)
- (modified) mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp (+2-2)
- (modified) mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp (+3-3)
- (modified) mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp (+2-2)
- (modified) mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp (+2-2)
- (modified) mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp (+2-2)
- (modified) mlir/test/Dialect/Vector/CPU/ArmSVE/vector-bfmmla.mlir (+6-6)
- (modified) mlir/test/Dialect/Vector/CPU/ArmSVE/vector-smmla.mlir (+12-12)
- (modified) mlir/test/Dialect/Vector/CPU/ArmSVE/vector-summla.mlir (+2-2)
- (modified) mlir/test/Dialect/Vector/CPU/ArmSVE/vector-ummla.mlir (+6-6)
- (modified) mlir/test/Dialect/Vector/CPU/ArmSVE/vector-usmmla.mlir (+6-6)
- (modified) mlir/test/Dialect/Vector/invalid.mlir (+3-3)
``````````diff
diff --git a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
index db422ceb086c37..61c28f9d9176fe 100644
--- a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
+++ b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td
@@ -328,7 +328,7 @@ def Vector_ReductionOp :
def Vector_MultiDimReductionOp :
Vector_Op<"multi_reduction", [Pure,
- AllTypesMatch<["dest", "acc"]>,
+ AllTypesMatch<["result", "acc"]>,
PredOpTrait<"source operand and result have same element type",
TCresVTEtIsSameAsOpBase<0, 0>>,
DeclareOpInterfaceMethods<ArithFastMathInterface>,
@@ -343,7 +343,7 @@ def Vector_MultiDimReductionOp :
DefaultValuedAttr<
Arith_FastMathAttr,
"::mlir::arith::FastMathFlags::none">:$fastmath)>,
- Results<(outs AnyType:$dest)> {
+ Results<(outs AnyType:$result)> {
let summary = "Multi-dimensional reduction operation";
let description = [{
Reduces an n-D vector into an (n-k)-D vector (or a scalar when k == n)
@@ -382,7 +382,7 @@ def Vector_MultiDimReductionOp :
return ::llvm::cast<VectorType>(getSource().getType());
}
Type getDestType() {
- return getDest().getType();
+ return getResult().getType();
}
bool isReducedDim(int64_t d) {
@@ -407,7 +407,7 @@ def Vector_MultiDimReductionOp :
}];
let assemblyFormat =
"$kind `,` $source `,` $acc (`fastmath` `` $fastmath^)? attr-dict "
- "$reduction_dims `:` type($source) `to` type($dest)";
+ "$reduction_dims `:` type($source) `to` type($result)";
let hasFolder = 1;
let hasCanonicalizer = 1;
let hasVerifier = 1;
@@ -666,8 +666,8 @@ def SourceVectorEvenElementCount : PredOpTrait<
def Vector_DeinterleaveOp :
Vector_Op<"deinterleave", [Pure,
SourceVectorEvenElementCount,
- ResultIsHalfSourceVectorType<"res1">,
- AllTypesMatch<["res1", "res2"]>,
+ ResultIsHalfSourceVectorType<"resultEven">,
+ AllTypesMatch<["resultEven", "resultOdd"]>,
DeclareOpInterfaceMethods<VectorUnrollOpInterface, ["getIterationShapeToUnroll"]>
]> {
let summary = "constructs two vectors by deinterleaving an input vector";
@@ -702,10 +702,10 @@ def Vector_DeinterleaveOp :
}];
let arguments = (ins AnyVectorOfNonZeroRank:$source);
- let results = (outs AnyVectorOfNonZeroRank:$res1, AnyVectorOfNonZeroRank:$res2);
+ let results = (outs AnyVectorOfNonZeroRank:$resultEven, AnyVectorOfNonZeroRank:$resultOdd);
let assemblyFormat = [{
- $source attr-dict `:` type($source) `->` type($res1)
+ $source attr-dict `:` type($source) `->` type($resultEven)
}];
let extraClassDeclaration = [{
@@ -713,7 +713,7 @@ def Vector_DeinterleaveOp :
return ::llvm::cast<VectorType>(getSource().getType());
}
VectorType getResultVectorType() {
- return ::llvm::cast<VectorType>(getRes1().getType());
+ return ::llvm::cast<VectorType>(getResultEven().getType());
}
}];
}
@@ -877,7 +877,7 @@ def Vector_ToElementsOp : Vector_Op<"to_elements", [
def Vector_FromElementsOp : Vector_Op<"from_elements", [
Pure,
- ShapedTypeMatchesElementCountAndTypes<"dest", "elements">]> {
+ ShapedTypeMatchesElementCountAndTypes<"result", "elements">]> {
let summary = "operation that defines a vector from scalar elements";
let description = [{
This operation defines a vector from one or multiple scalar elements. The
@@ -908,8 +908,8 @@ def Vector_FromElementsOp : Vector_Op<"from_elements", [
}];
let arguments = (ins Variadic<AnyType>:$elements);
- let results = (outs AnyFixedVectorOfAnyRank:$dest);
- let assemblyFormat = "$elements attr-dict `:` type($dest)";
+ let results = (outs AnyFixedVectorOfAnyRank:$result);
+ let assemblyFormat = "$elements attr-dict `:` type($result)";
let hasFolder = 1;
let hasCanonicalizer = 1;
}
@@ -3051,7 +3051,7 @@ def VectorScaleOp : Vector_Op<"vscale",
Right now we only support one contiguous set of scalable dimensions, all of
them grouped and scaled with the value returned by 'vscale'.
}];
- let results = (outs Index:$res);
+ let results = (outs Index:$result);
let assemblyFormat = "attr-dict";
let extraClassDefinition = [{
diff --git a/mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp b/mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp
index 1c82297a9e0c0f..b01415f0980a87 100644
--- a/mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp
+++ b/mlir/lib/Dialect/ArmSVE/Transforms/LowerContractToSVEPatterns.cpp
@@ -401,8 +401,8 @@ Value VectorContractRewriter::lower(vector::ContractionOp op,
Value out0, out1;
if (swapOperands) {
auto tmp = vector::DeinterleaveOp::create(rewriter, loc, row);
- out0 = tmp.getRes1();
- out1 = tmp.getRes2();
+ out0 = tmp.getResultEven();
+ out1 = tmp.getResultOdd();
} else {
// Deinterleave by pairs.
auto row64 = vector::BitCastOp::create(rewriter, loc, accRowX264Ty, row);
@@ -410,9 +410,9 @@ Value VectorContractRewriter::lower(vector::ContractionOp op,
// Bitcast back into original element type and insert into the result.
out0 = vector::BitCastOp::create(rewriter, loc, accRowTy,
- deintr64.getRes1());
+ deintr64.getResultEven());
out1 = vector::BitCastOp::create(rewriter, loc, accRowTy,
- deintr64.getRes2());
+ deintr64.getResultOdd());
}
result = vector::InsertOp::create(rewriter, loc, out0, result, i * 2);
result = vector::InsertOp::create(rewriter, loc, out1, result, i * 2 + 1);
diff --git a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
index 7945ca3ea79634..be34a5e95ee2ac 100644
--- a/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
+++ b/mlir/lib/Dialect/Vector/IR/VectorOps.cpp
@@ -755,7 +755,7 @@ LogicalResult ReductionOp::verify() {
return emitOpError("unsupported reduction rank: ") << rank;
// Verify supported reduction kind.
- Type eltType = getDest().getType();
+ Type eltType = getResult().getType();
if (!isSupportedCombiningKind(getKind(), eltType))
return emitOpError("unsupported reduction type '")
<< eltType << "' for kind '" << stringifyCombiningKind(getKind())
@@ -2883,18 +2883,18 @@ static OpFoldResult foldFromElementsToConstant(FromElementsOp fromElementsOp,
return {};
// DenseElementsAttr only supports int/index/float/complex types.
- auto destVecType = fromElementsOp.getDest().getType();
- auto destEltType = destVecType.getElementType();
- if (!destEltType.isIntOrIndexOrFloat() && !isa<ComplexType>(destEltType))
+ auto resVecType = fromElementsOp.getResult().getType();
+ auto resEltType = resVecType.getElementType();
+ if (!resEltType.isIntOrIndexOrFloat() && !isa<ComplexType>(resEltType))
return {};
// Constant attributes might have a different type than the return type.
// Convert them before creating the dense elements attribute.
auto convertedElements = llvm::map_to_vector(elements, [&](Attribute attr) {
- return convertNumericAttr(attr, destEltType);
+ return convertNumericAttr(attr, resEltType);
});
- return DenseElementsAttr::get(destVecType, convertedElements);
+ return DenseElementsAttr::get(resVecType, convertedElements);
}
OpFoldResult FromElementsOp::fold(FoldAdaptor adaptor) {
@@ -4027,7 +4027,7 @@ static Value foldInsertUseChain(InsertOp insertOp) {
return {};
insertOp.setOperand(1, destInsert.getDest());
- return insertOp.getResult();
+ return insertOp.getDest();
}
void InsertOp::getCanonicalizationPatterns(RewritePatternSet &results,
@@ -7646,7 +7646,7 @@ class FoldTransposeFromElements final : public OpRewritePattern<TransposeOp> {
if (!fromElementsOp)
return failure();
- VectorType srcTy = fromElementsOp.getDest().getType();
+ VectorType srcTy = fromElementsOp.getResult().getType();
VectorType dstTy = transposeOp.getType();
ArrayRef<int64_t> permutation = transposeOp.getPermutation();
diff --git a/mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp b/mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp
index 8f81dbb6363255..f797d9417c1fcd 100644
--- a/mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/LowerVectorInterleave.cpp
@@ -137,9 +137,9 @@ class UnrollDeinterleaveOp final
auto deinterleave =
vector::DeinterleaveOp::create(rewriter, loc, extractSrc);
evenResult = vector::InsertOp::create(
- rewriter, loc, deinterleave.getRes1(), evenResult, position);
+ rewriter, loc, deinterleave.getResultEven(), evenResult, position);
oddResult = vector::InsertOp::create(
- rewriter, loc, deinterleave.getRes2(), oddResult, position);
+ rewriter, loc, deinterleave.getResultOdd(), oddResult, position);
}
rewriter.replaceOp(op, ValueRange{evenResult, oddResult});
return success();
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
index e237ae0568ae43..b86620c4efdf91 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorEmulateNarrowType.cpp
@@ -1959,14 +1959,14 @@ static Value rewriteI8ToI4Trunc(PatternRewriter &rewriter, Location loc,
Value zeroOutMask = arith::ConstantOp::create(
rewriter, loc, DenseElementsAttr::get(deinterI8VecType, i8LowBitMask));
Value zeroOutLow = arith::AndIOp::create(
- rewriter, loc, deinterleaveOp.getRes1(), zeroOutMask);
+ rewriter, loc, deinterleaveOp.getResultEven(), zeroOutMask);
// 3. Move high i4 values to upper side of the byte.
constexpr int8_t bitsToShift = 4;
auto shiftValues = arith::ConstantOp::create(
rewriter, loc, DenseElementsAttr::get(deinterI8VecType, bitsToShift));
- Value shlHigh = arith::ShLIOp::create(rewriter, loc, deinterleaveOp.getRes2(),
- shiftValues);
+ Value shlHigh = arith::ShLIOp::create(
+ rewriter, loc, deinterleaveOp.getResultOdd(), shiftValues);
// 4. Merge high and low i4 values.
auto mergedHiLowOp = arith::OrIOp::create(rewriter, loc, zeroOutLow, shlHigh);
diff --git a/mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp b/mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
index 19abe44081eb43..b7fdc9ff5186d9 100644
--- a/mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
+++ b/mlir/lib/Dialect/Vector/Transforms/VectorUnroll.cpp
@@ -1714,10 +1714,10 @@ struct UnrollDeinterleavePattern
vector::DeinterleaveOp::create(rewriter, loc, sourceSlice);
resultOdd = rewriter.createOrFold<vector::InsertStridedSliceOp>(
- loc, deinterleaveSlice.getRes1(), resultOdd, resultOffsets,
+ loc, deinterleaveSlice.getResultEven(), resultOdd, resultOffsets,
resultStrides);
resultEven = rewriter.createOrFold<vector::InsertStridedSliceOp>(
- loc, deinterleaveSlice.getRes2(), resultEven, resultOffsets,
+ loc, deinterleaveSlice.getResultOdd(), resultEven, resultOffsets,
resultStrides);
}
diff --git a/mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp b/mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
index 4f9a37851665ca..3a12b589b45f3e 100644
--- a/mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
+++ b/mlir/lib/Dialect/XeGPU/Transforms/XeGPUSgToLaneDistribute.cpp
@@ -2524,8 +2524,8 @@ struct SgToLaneConvertLayoutDeinterleaveSelect
Value isFirstGroup = arith::CmpIOp::create(
rewriter, loc, arith::CmpIPredicate::eq, group, zero);
Value selected = arith::SelectOp::create(rewriter, loc, isFirstGroup,
- deinterleaved.getRes1(),
- deinterleaved.getRes2());
+ deinterleaved.getResultEven(),
+ deinterleaved.getResultOdd());
rewriter.replaceOpWithNewOp<vector::ShapeCastOp>(
op, redistribution->distributedTarget, selected);
return success();
diff --git a/mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp b/mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
index 9e2a0401900e08..0ce267774ba54d 100644
--- a/mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
+++ b/mlir/lib/Dialect/XeGPU/Transforms/XeGPUWgToSgDistribute.cpp
@@ -1465,8 +1465,8 @@ struct WgToSgVectorDeinterleaveOp
for (auto src : adaptor.getSource()) {
auto newDeinterleave =
vector::DeinterleaveOp::create(rewriter, op.getLoc(), src);
- newRes1Ops.push_back(newDeinterleave.getRes1());
- newRes2Ops.push_back(newDeinterleave.getRes2());
+ newRes1Ops.push_back(newDeinterleave.getResultEven());
+ newRes2Ops.push_back(newDeinterleave.getResultOdd());
}
SmallVector<SmallVector<Value>> results = {newRes1Ops, newRes2Ops};
diff --git a/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-bfmmla.mlir b/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-bfmmla.mlir
index ca9d91576b5126..99273c02d14cbb 100644
--- a/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-bfmmla.mlir
+++ b/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-bfmmla.mlir
@@ -67,9 +67,9 @@
// CHECK-NEXT: %[[T36:.+]] = vector.scalable.insert %[[PACK_RES_00]], %[[T0]][0] : vector<[4]xf32> into vector<[8]xf32>
// CHECK-NEXT: %[[T37:.+]] = vector.scalable.insert %[[PACK_RES_01]], %[[T36]][4] : vector<[4]xf32> into vector<[8]xf32>
// CHECK-NEXT: %[[T38:.+]] = vector.bitcast %[[T37]] : vector<[8]xf32> to vector<[4]xi64>
-// CHECK-NEXT: %res1, %res2 = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
-// CHECK-NEXT: %[[UNPACK_RES_00:.+]] = vector.bitcast %res1 : vector<[2]xi64> to vector<[4]xf32>
-// CHECK-NEXT: %[[UNPACK_RES_01:.+]] = vector.bitcast %res2 : vector<[2]xi64> to vector<[4]xf32>
+// CHECK-NEXT: %resultEven, %resultOdd = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
+// CHECK-NEXT: %[[UNPACK_RES_00:.+]] = vector.bitcast %resultEven : vector<[2]xi64> to vector<[4]xf32>
+// CHECK-NEXT: %[[UNPACK_RES_01:.+]] = vector.bitcast %resultOdd : vector<[2]xi64> to vector<[4]xf32>
// CHECK-NEXT: %[[TMP_OUT_0:.+]] = vector.insert %[[UNPACK_RES_00]], %[[UB]] [0] : vector<[4]xf32> into vector<4x[4]xf32>
// CHECK-NEXT: %[[TMP_OUT_1:.+]] = vector.insert %[[UNPACK_RES_01]], %[[TMP_OUT_0]] [1] : vector<[4]xf32> into vector<4x[4]xf32>
@@ -77,9 +77,9 @@
// CHECK-NEXT: %[[T43:.+]] = vector.scalable.insert %[[PACK_RES_10]], %[[T0]][0] : vector<[4]xf32> into vector<[8]xf32>
// CHECK-NEXT: %[[T44:.+]] = vector.scalable.insert %[[PACK_RES_11]], %[[T43]][4] : vector<[4]xf32> into vector<[8]xf32>
// CHECK-NEXT: %[[T45:.+]] = vector.bitcast %[[T44]] : vector<[8]xf32> to vector<[4]xi64>
-// CHECK-NEXT: %res1_0, %res2_1 = vector.deinterleave %[[T45]] : vector<[4]xi64> -> vector<[2]xi64>
-// CHECK-NEXT: %[[UNPACK_RES_10:.+]] = vector.bitcast %res1_0 : vector<[2]xi64> to vector<[4]xf32>
-// CHECK-NEXT: %[[UNPACK_RES_11:.+]] = vector.bitcast %res2_1 : vector<[2]xi64> to vector<[4]xf32>
+// CHECK-NEXT: %resultEven_0, %resultOdd_1 = vector.deinterleave %[[T45]] : vector<[4]xi64> -> vector<[2]xi64>
+// CHECK-NEXT: %[[UNPACK_RES_10:.+]] = vector.bitcast %resultEven_0 : vector<[2]xi64> to vector<[4]xf32>
+// CHECK-NEXT: %[[UNPACK_RES_11:.+]] = vector.bitcast %resultOdd_1 : vector<[2]xi64> to vector<[4]xf32>
// CHECK-NEXT: %[[TMP_OUT_2:.+]] = vector.insert %[[UNPACK_RES_10]], %[[TMP_OUT_1]] [2] : vector<[4]xf32> into vector<4x[4]xf32>
// CHECK-NEXT: %[[OUT:.+]] = vector.insert %[[UNPACK_RES_11]], %[[TMP_OUT_2]] [3] : vector<[4]xf32> into vector<4x[4]xf32>
// CHECK-NEXT: return %[[OUT]] : vector<4x[4]xf32>
diff --git a/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-smmla.mlir b/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-smmla.mlir
index 404ef87380c9c5..e91faeef576e05 100644
--- a/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-smmla.mlir
+++ b/mlir/test/Dialect/Vector/CPU/ArmSVE/vector-smmla.mlir
@@ -71,9 +71,9 @@
// CHECK-NEXT: %[[T36:[0-9]+]] = vector.scalable.insert %[[PACK_RES_00]], %[[P0]][0] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T37:[0-9]+]] = vector.scalable.insert %[[PACK_RES_01]], %[[T36]][4] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T38:[0-9]+]] = vector.bitcast %[[T37]] : vector<[8]xi32> to vector<[4]xi64>
-// CHECK-NEXT: %res1, %res2 = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
-// CHECK-NEXT: %[[UNPACK_RES_0:[0-9]+]] = vector.bitcast %res1 : vector<[2]xi64> to vector<[4]xi32>
-// CHECK-NEXT: %[[UNPACK_RES_1:[0-9]+]] = vector.bitcast %res2 : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %resultEven, %resultOdd = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
+// CHECK-NEXT: %[[UNPACK_RES_0:[0-9]+]] = vector.bitcast %resultEven : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %[[UNPACK_RES_1:[0-9]+]] = vector.bitcast %resultOdd : vector<[2]xi64> to vector<[4]xi32>
// CHECK-NEXT: %[[TMP_OUT_0:[0-9]+]] = vector.insert %[[UNPACK_RES_0]], %[[P1]] [0] : vector<[4]xi32> into vector<4x[4]xi32>
// CHECK-NEXT: %[[TMP_OUT_1:[0-9]+]] = vector.insert %[[UNPACK_RES_1]], %[[TMP_OUT_0]] [1] : vector<[4]xi32> into vector<4x[4]xi32>
@@ -81,9 +81,9 @@
// CHECK-NEXT: %[[T43:[0-9]+]] = vector.scalable.insert %[[PACK_RES_10]], %[[P0]][0] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T44:[0-9]+]] = vector.scalable.insert %[[PACK_RES_11]], %[[T43]][4] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T45:[0-9]+]] = vector.bitcast %[[T44]] : vector<[8]xi32> to vector<[4]xi64>
-// CHECK-NEXT: %res1_0, %res2_1 = vector.deinterleave %[[T45]] : vector<[4]xi64> -> vector<[2]xi64>
-// CHECK-NEXT: %[[UNPACK_RES_2:[0-9]+]] = vector.bitcast %res1_0 : vector<[2]xi64> to vector<[4]xi32>
-// CHECK-NEXT: %[[UNPACK_RES_3:[0-9]+]] = vector.bitcast %res2_1 : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %resultEven_0, %resultOdd_1 = vector.deinterleave %[[T45]] : vector<[4]xi64> -> vector<[2]xi64>
+// CHECK-NEXT: %[[UNPACK_RES_2:[0-9]+]] = vector.bitcast %resultEven_0 : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %[[UNPACK_RES_3:[0-9]+]] = vector.bitcast %resultOdd_1 : vector<[2]xi64> to vector<[4]xi32>
// CHECK-NEXT: %[[TMP_OUT_2:[0-9]+]] = vector.insert %[[UNPACK_RES_2]], %[[TMP_OUT_1]] [2] : vector<[4]xi32> into vector<4x[4]xi32>
// CHECK-NEXT: %[[OUT:[0-9]+]] = vector.insert %[[UNPACK_RES_3]], %[[TMP_OUT_2]] [3] : vector<[4]xi32> into vector<4x[4]xi32>
@@ -161,9 +161,9 @@ func.func @test_vector_contract_to_smmla(%lhs: vector<4x8xi8>,
// CHECK-NEXT: %[[T36:[0-9]+]] = vector.scalable.insert %[[PACK_RES_00]], %[[P0]][0] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T37:[0-9]+]] = vector.scalable.insert %[[PACK_RES_01]], %[[T36]][4] : vector<[4]xi32> into vector<[8]xi32>
// CHECK-NEXT: %[[T38:[0-9]+]] = vector.bitcast %[[T37]] : vector<[8]xi32> to vector<[4]xi64>
-// CHECK-NEXT: %res1, %res2 = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
-// CHECK-NEXT: %[[UNPACK_RES_0:[0-9]+]] = vector.bitcast %res1 : vector<[2]xi64> to vector<[4]xi32>
-// CHECK-NEXT: %[[UNPACK_RES_1:[0-9]+]] = vector.bitcast %res2 : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %resultEven, %resultOdd = vector.deinterleave %[[T38]] : vector<[4]xi64> -> vector<[2]xi64>
+// CHECK-NEXT: %[[UNPACK_RES_0:[0-9]+]] = vector.bitcast %resultEven : vector<[2]xi64> to vector<[4]xi32>
+// CHECK-NEXT: %[[UNPACK_RES_1:[0-9]+]] = vector.bitcast %resultOdd : vector<[2]xi64> to vector<[4]xi32>
// CHECK-NEXT: %[[TMP_OUT_0:[0-9]+]] = vector.insert %[[UNPACK_RES_0]], %[[P1]] [0] : vector<[4]xi32> into vector<4x[4]xi32>
// CHECK-NEXT: %[[TMP_OUT_1:[0-9]+]] = vector.insert %[[UNPACK_RES_1]], %[[TMP_OUT_0]] [1] : vector<[4]xi32> into vector<4x[4]xi32>
@@ -171,9 +171,9 @@ func.func @test_vector_contract_to_smmla(%lhs: vector<4x8xi8>,
// CHECK-NEXT: %[[T43:[0-9...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/238070
More information about the Mlir-commits
mailing list