For block arg locs a common case is no/uknown location (where the producer signifies they don't care about blockarg location). Also avoid needing to dynamically resize opnames during parsing. Assumed to be post lazy loading change, so chose version 3. Differential Revision: https://reviews.llvm.org/D151038
42 lines
2.1 KiB
MLIR
42 lines
2.1 KiB
MLIR
// RUN: mlir-opt -allow-unregistered-dialect -emit-bytecode %s | mlir-opt -allow-unregistered-dialect | FileCheck %s
|
|
|
|
// Bytecode currently does not support big-endian platforms
|
|
// UNSUPPORTED: target=s390x-{{.*}}
|
|
|
|
// CHECK-LABEL: "bytecode.test1"
|
|
// CHECK-NEXT: "unregistered.op"() {test_attr = #test.dynamic_singleton} : () -> ()
|
|
// CHECK-NEXT: "bytecode.empty"() : () -> ()
|
|
// CHECK-NEXT: "bytecode.attributes"() {attra = 10 : i64, attrb = #bytecode.attr} : () -> ()
|
|
// CHECK-NEXT{LITERAL}: "bytecode.sparse"() {value = sparse<[[2, 1], [1, 1], [1, 2]], [1.
|
|
// CHECK-NEXT: test.graph_region {
|
|
// CHECK-NEXT: "bytecode.operands"(%[[RESULTS:.*]]#0, %[[RESULTS]]#1, %[[RESULTS]]#2) : (i32, i64, i32) -> ()
|
|
// CHECK-NEXT: %[[RESULTS]]:3 = "bytecode.results"() : () -> (i32, i64, i32)
|
|
// CHECK-NEXT: }
|
|
// CHECK-NEXT: "bytecode.branch"()[^[[BLOCK:.*]]] : () -> ()
|
|
// CHECK-NEXT: ^[[BLOCK]](%[[ARG0:.*]]: i32, %[[ARG1:.*]]: !bytecode.int, %[[ARG2:.*]]: !pdl.operation):
|
|
// CHECK-NEXT: "bytecode.regions"() ({
|
|
// CHECK-NEXT: "bytecode.operands"(%[[ARG0]], %[[ARG1]], %[[ARG2]]) : (i32, !bytecode.int, !pdl.operation) -> ()
|
|
// CHECK-NEXT: "bytecode.return"() : () -> ()
|
|
// CHECK-NEXT: }) : () -> ()
|
|
// CHECK-NEXT: "bytecode.return"() : () -> ()
|
|
// CHECK-NEXT: }) : () -> ()
|
|
|
|
"bytecode.test1"() ({
|
|
"unregistered.op"() {test_attr = #test.dynamic_singleton} : () -> ()
|
|
"bytecode.empty"() : () -> ()
|
|
"bytecode.attributes"() {attra = 10, attrb = #bytecode.attr} : () -> ()
|
|
%cst = "bytecode.sparse"() {value = sparse<[[2, 1], [1, 1], [1, 2]], [1.0, 5.0, 6.0]> : tensor<8x7xf32>} : () -> (tensor<8x7xf32>)
|
|
test.graph_region {
|
|
"bytecode.operands"(%results#0, %results#1, %results#2) : (i32, i64, i32) -> ()
|
|
%results:3 = "bytecode.results"() : () -> (i32, i64, i32)
|
|
}
|
|
"bytecode.branch"()[^secondBlock] : () -> ()
|
|
|
|
^secondBlock(%arg1: i32 loc(unknown), %arg2: !bytecode.int, %arg3: !pdl.operation loc(unknown)):
|
|
"bytecode.regions"() ({
|
|
"bytecode.operands"(%arg1, %arg2, %arg3) : (i32, !bytecode.int, !pdl.operation) -> ()
|
|
"bytecode.return"() : () -> ()
|
|
}) : () -> ()
|
|
"bytecode.return"() : () -> ()
|
|
}) : () -> ()
|