diff options
| author | Aart Bik <ajcbik@google.com> | 2019-12-18 11:23:16 -0800 |
|---|---|---|
| committer | A. Unique TensorFlower <gardener@tensorflow.org> | 2019-12-18 11:31:34 -0800 |
| commit | d9b500d3bb151bfb96073b0d66e8338a5c0186d5 (patch) | |
| tree | fd385a47ba52f5c4f274882f50cad6aecb3a2d0b /mlir/test/Dialect | |
| parent | c169852fc5c5efb4b01600477da00e6ef2517231 (diff) | |
| download | bcm5719-llvm-d9b500d3bb151bfb96073b0d66e8338a5c0186d5.tar.gz bcm5719-llvm-d9b500d3bb151bfb96073b0d66e8338a5c0186d5.zip | |
[VectorOps] Add vector.print definition, with lowering support
Examples:
vector.print %f : f32
vector.print %x : vector<4xf32>
vector.print %y : vector<3x4xf32>
vector.print %z : vector<2x3x4xf32>
LLVM lowering replaces these with fully unrolled calls
into a small runtime support library that provides some
basic printing operations (single value, opening closing
bracket, comma, newline).
PiperOrigin-RevId: 286230325
Diffstat (limited to 'mlir/test/Dialect')
| -rw-r--r-- | mlir/test/Dialect/VectorOps/invalid.mlir | 8 | ||||
| -rw-r--r-- | mlir/test/Dialect/VectorOps/ops.mlir | 7 |
2 files changed, 15 insertions, 0 deletions
diff --git a/mlir/test/Dialect/VectorOps/invalid.mlir b/mlir/test/Dialect/VectorOps/invalid.mlir index 3c2dd6075c8..7e8fce93294 100644 --- a/mlir/test/Dialect/VectorOps/invalid.mlir +++ b/mlir/test/Dialect/VectorOps/invalid.mlir @@ -818,3 +818,11 @@ func @insert_slices_invalid_tuple_element_type(%arg0 : tuple<vector<2x2xf32>, ve : tuple<vector<2x2xf32>, vector<4x2xf32>> into vector<4x2xf32> return } + +// ----- + +func @print_no_result(%arg0 : f32) -> i32 { + // expected-error@+1 {{cannot name an operation with no results}} + %0 = vector.print %arg0 : f32 + return %0 +} diff --git a/mlir/test/Dialect/VectorOps/ops.mlir b/mlir/test/Dialect/VectorOps/ops.mlir index f1db45e2716..b43c675893e 100644 --- a/mlir/test/Dialect/VectorOps/ops.mlir +++ b/mlir/test/Dialect/VectorOps/ops.mlir @@ -198,3 +198,10 @@ func @insert_slices(%arg0 : tuple<vector<2x2xf32>, vector<2x2xf32>>) : tuple<vector<2x2xf32>, vector<2x2xf32>> into vector<4x2xf32> return %0 : vector<4x2xf32> } + +// CHECK-LABEL: @vector_print +func @vector_print(%arg0: vector<8x4xf32>) { + // CHECK: vector.print %{{.*}} : vector<8x4xf32> + vector.print %arg0 : vector<8x4xf32> + return +} |

