xref: /llvm-project/mlir/test/Dialect/MLProgram/ops.mlir (revision d30c0221cf5aa36c079b7cc0d36fb89f7b32149b)
161352a58SStella Laurenzo// RUN: mlir-opt %s --allow-unregistered-dialect | mlir-opt --allow-unregistered-dialect | FileCheck %s
261352a58SStella Laurenzo// RUN: mlir-opt %s --allow-unregistered-dialect --mlir-print-op-generic | mlir-opt --allow-unregistered-dialect | FileCheck %s
361352a58SStella Laurenzo
461352a58SStella Laurenzo// CHECK-LABEL: ml_program.func private @extern_func
561352a58SStella Laurenzoml_program.func private @extern_func(i32) -> i32
661352a58SStella Laurenzo
761352a58SStella Laurenzo// CHECK-LABEL: ml_program.func @defined_func
861352a58SStella Laurenzoml_program.func @defined_func(%arg0 : i32) -> i32 {
961352a58SStella Laurenzo  ml_program.return %arg0 : i32
1061352a58SStella Laurenzo}
1161352a58SStella Laurenzo
1261352a58SStella Laurenzo// CHECK-LABEL: ml_program.subgraph private @extern_subgraph
1361352a58SStella Laurenzoml_program.subgraph private @extern_subgraph(i32) -> i32
1461352a58SStella Laurenzo
1561352a58SStella Laurenzo// CHECK-LABEL: ml_program.subgraph @compute_subgraph
1661352a58SStella Laurenzoml_program.subgraph @compute_subgraph(%arg0 : i32) -> i32 {
173bb79993SStella Laurenzo  %token = ml_program.token
183bb79993SStella Laurenzo  %1 = "unregistered.dummy"(%0, %token) : (i32, !ml_program.token) -> i32
1961352a58SStella Laurenzo  %0 = "unregistered.dummy"(%arg0) : (i32) -> i32
2061352a58SStella Laurenzo  ml_program.output %0 : i32
2161352a58SStella Laurenzo}
222bb25285SStella Laurenzo
232bb25285SStella Laurenzo// CHECK: ml_program.global private @global_same_type(dense<4> : tensor<4xi32>) : tensor<4xi32>
242bb25285SStella Laurenzoml_program.global private @global_same_type(dense<4> : tensor<4xi32>) : tensor<4xi32>
252bb25285SStella Laurenzo
262bb25285SStella Laurenzo// CHECK: ml_program.global private mutable @global_mutable_undef : tensor<?xi32>
272bb25285SStella Laurenzoml_program.global private mutable @global_mutable_undef : tensor<?xi32>
282bb25285SStella Laurenzo
292bb25285SStella Laurenzo// CHECK: ml_program.global private mutable @global_extern(#extern) : tensor<?xi32>
302bb25285SStella Laurenzoml_program.global private mutable @global_extern(#ml_program.extern : tensor<4xi32>) : tensor<?xi32>
313bb79993SStella Laurenzo
323bb79993SStella Laurenzo// CHECK-LABEL: @global_load_const
333bb79993SStella Laurenzoml_program.func @global_load_const() -> tensor<4xi32> {
343bb79993SStella Laurenzo  %0 = ml_program.global_load_const @global_same_type : tensor<4xi32>
353bb79993SStella Laurenzo  ml_program.return %0 : tensor<4xi32>
363bb79993SStella Laurenzo}
373bb79993SStella Laurenzo
383bb79993SStella Laurenzo// CHECK-LABEL: @global_load_store
393bb79993SStella Laurenzoml_program.func @global_load_store() {
403bb79993SStella Laurenzo  %0 = ml_program.global_load @global_mutable_undef : tensor<?xi32>
413bb79993SStella Laurenzo  ml_program.global_store @global_mutable_undef = %0 : tensor<?xi32>
423bb79993SStella Laurenzo  ml_program.return
433bb79993SStella Laurenzo}
443bb79993SStella Laurenzo
453bb79993SStella Laurenzo// CHECK-LABEL: @global_load_store_tokens
463bb79993SStella Laurenzoml_program.subgraph @global_load_store_tokens() -> (tensor<?xi32>, !ml_program.token) {
473bb79993SStella Laurenzo  %token1 = ml_program.token
48*d30c0221SJacques Pienaar  %0, %token2 = ml_program.global_load_graph @global_mutable_undef
493bb79993SStella Laurenzo      ordering(() -> !ml_program.token) : tensor<?xi32>
50*d30c0221SJacques Pienaar  %token3 = ml_program.global_store_graph @global_mutable_undef = %0
513bb79993SStella Laurenzo      ordering(%token1, %token2 -> !ml_program.token) : tensor<?xi32>
52*d30c0221SJacques Pienaar  %token4 = ml_program.global_store_graph @global_mutable_undef = %0
53*d30c0221SJacques Pienaar      ordering(%token3 -> !ml_program.token) : tensor<?xi32>
543bb79993SStella Laurenzo
553bb79993SStella Laurenzo  ml_program.output %0, %token3 : tensor<?xi32>, !ml_program.token
563bb79993SStella Laurenzo}
57