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