diff options
author | Benjamin Maxwell <benjamin.maxwell@arm.com> | 2024-03-01 10:08:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-01 10:08:18 +0000 |
commit | 195744cca7fd7f1b33971e0f2cf07b8ae47f16b5 (patch) | |
tree | 7f986aa413cbd2e1926fd594948dd861a3179005 | |
parent | 199bbe2b380b6fa4a23932739ae55f8890af459b (diff) | |
download | llvm-195744cca7fd7f1b33971e0f2cf07b8ae47f16b5.zip llvm-195744cca7fd7f1b33971e0f2cf07b8ae47f16b5.tar.gz llvm-195744cca7fd7f1b33971e0f2cf07b8ae47f16b5.tar.bz2 |
[mlir][VectorOps][nfc] Add result pretty printing to `vector.vscale` (#83439)
This will now print the value of `vector.vscale` as `%vscale` in IR
dumps which makes it easier to spot where things are scalable.
One test that depended on the value names has also been fixed.
-rw-r--r-- | mlir/include/mlir/Dialect/Vector/IR/VectorOps.td | 10 | ||||
-rw-r--r-- | mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td index 6d50b06..06360bd 100644 --- a/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td +++ b/mlir/include/mlir/Dialect/Vector/IR/VectorOps.td @@ -2809,7 +2809,8 @@ def Vector_SplatOp : Vector_Op<"splat", [ // call to the function. For that, it might be useful to have a // 'vector.scale.global' and a 'vector.scale.local' operation. def VectorScaleOp : Vector_Op<"vscale", - [Pure]> { + [Pure, DeclareOpInterfaceMethods<OpAsmOpInterface, ["getAsmResultNames"]>] +> { let summary = "Load vector scale size"; let description = [{ The `vscale` op returns the scale of the scalable vectors, a positive @@ -2825,6 +2826,13 @@ def VectorScaleOp : Vector_Op<"vscale", }]; let results = (outs Index:$res); let assemblyFormat = "attr-dict"; + + let extraClassDefinition = [{ + void $cppClass::getAsmResultNames( + ::llvm::function_ref<void(mlir::Value, mlir::StringRef)> setNameFn) { + setNameFn(getResult(), "vscale"); + } + }]; } //===----------------------------------------------------------------------===// diff --git a/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir b/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir index d54cace..b7e316f 100644 --- a/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir +++ b/mlir/test/Dialect/Linalg/transform-op-peel-and-vectorize.mlir @@ -19,7 +19,7 @@ func.func @matmul(%A: tensor<1024x512xf32>, // CHECK-DAG: %[[C16:.*]] = arith.constant 16 : index // CHECK: %[[VSCALE:.*]] = vector.vscale // CHECK: %[[STEP:.*]] = arith.muli %[[VSCALE]], %[[C16]] : index -// CHECK: %2 = scf.for {{.*}} %[[C0]] to %[[C1024]] step %[[C8]] iter_args(%arg4 = %arg2) -> (tensor<1024x2000xf32>) { +// CHECK: scf.for {{.*}} %[[C0]] to %[[C1024]] step %[[C8]] iter_args(%arg4 = %arg2) -> (tensor<1024x2000xf32>) { // Main loop after vectorisation (without masking) |