xref: /llvm-project/mlir/test/Bytecode/general.mlir (revision bb0bbed610d86ba155f9c066c23038f7f34e2dbb)
1// RUN: mlir-opt -allow-unregistered-dialect -emit-bytecode %s | mlir-opt -allow-unregistered-dialect | FileCheck %s
2
3// CHECK-LABEL: "bytecode.test1"
4// CHECK-NEXT:    "unregistered.op"() {test_attr = #test.dynamic_singleton} : () -> ()
5// CHECK-NEXT:    "bytecode.empty"() : () -> ()
6// CHECK-NEXT:    "bytecode.attributes"() {attra = 10 : i64, attrb = #bytecode.attr} : () -> ()
7// CHECK-NEXT{LITERAL}: "bytecode.sparse"() {value = sparse<[[2, 1], [1, 1], [1, 2]], [1.
8// CHECK-NEXT:    test.graph_region {
9// CHECK-NEXT:      "bytecode.operands"(%[[RESULTS:.*]]#0, %[[RESULTS]]#1, %[[RESULTS]]#2) : (i32, i64, i32) -> ()
10// CHECK-NEXT:      %[[RESULTS]]:3 = "bytecode.results"() : () -> (i32, i64, i32)
11// CHECK-NEXT:    }
12// CHECK-NEXT:    "bytecode.branch"()[^[[BLOCK:.*]]] : () -> ()
13// CHECK-NEXT:  ^[[BLOCK]](%[[ARG0:.*]]: i32, %[[ARG1:.*]]: !bytecode.int, %[[ARG2:.*]]: !pdl.operation):
14// CHECK-NEXT:    "bytecode.regions"() ({
15// CHECK-NEXT:      "bytecode.operands"(%[[ARG0]], %[[ARG1]], %[[ARG2]]) : (i32, !bytecode.int, !pdl.operation) -> ()
16// CHECK-NEXT:      "bytecode.return"() : () -> ()
17// CHECK-NEXT:    }) : () -> ()
18// CHECK-NEXT:    "bytecode.return"() : () -> ()
19// CHECK-NEXT:  }) : () -> ()
20
21"bytecode.test1"() ({
22  "unregistered.op"() {test_attr = #test.dynamic_singleton} : () -> ()
23  "bytecode.empty"() : () -> ()
24  "bytecode.attributes"() {attra = 10, attrb = #bytecode.attr} : () -> ()
25  %cst = "bytecode.sparse"() {value = sparse<[[2, 1], [1, 1], [1, 2]], [1.0, 5.0, 6.0]> : tensor<8x7xf32>} : () -> (tensor<8x7xf32>)
26  test.graph_region {
27    "bytecode.operands"(%results#0, %results#1, %results#2) : (i32, i64, i32) -> ()
28    %results:3 = "bytecode.results"() : () -> (i32, i64, i32)
29  }
30  "bytecode.branch"()[^secondBlock] : () -> ()
31
32^secondBlock(%arg1: i32 loc(unknown), %arg2: !bytecode.int, %arg3: !pdl.operation loc(unknown)):
33  "bytecode.regions"() ({
34    "bytecode.operands"(%arg1, %arg2, %arg3) : (i32, !bytecode.int, !pdl.operation) -> ()
35    "bytecode.return"() : () -> ()
36  }) : () -> ()
37  "bytecode.return"() : () -> ()
38}) : () -> ()
39