| // RUN: iree-compile \ | |
| // RUN: %s \ | |
| // RUN: --compile-mode=vm \ | |
| // RUN: -o=%t.vmfb && \ | |
| // RUN: iree-dump-module \ | |
| // RUN: --output=disassembly \ | |
| // RUN: %t.vmfb | \ | |
| // RUN: FileCheck --check-prefix=CHECK %s | |
| // RUN: iree-dump-module \ | |
| // RUN: --output=disassembly \ | |
| // RUN: --bytecode_offsets \ | |
| // RUN: %t.vmfb | \ | |
| // RUN: FileCheck --check-prefix=OFFSETS %s | |
| vm.module @dump_control_flow { | |
| vm.export @branch | |
| vm.func @branch(%cond: i32) -> i32 { | |
| %c1 = vm.const.i32 1 | |
| %c2 = vm.const.i32 2 | |
| vm.cond_br %cond, ^left, ^right | |
| ^left: | |
| vm.br ^exit(%c1 : i32) | |
| ^right: | |
| vm.br ^exit(%c2 : i32) | |
| ^exit(%value : i32): | |
| vm.return %value : i32 | |
| } | |
| } | |
| // CHECK: vm.module @dump_control_flow version 0 | |
| // CHECK-NEXT: vm.type i32 | |
| // CHECK-EMPTY: | |
| // CHECK-NEXT: vm.export @branch | |
| // CHECK-NEXT: vm.func @branch(%i0: i32) -> (i32) { | |
| // CHECK: ^bb0: | |
| // CHECK: vm.cond_br %i0, ^bb1({{.*}}), ^bb1({{.*}}) | |
| // CHECK: ^bb1: | |
| // OFFSETS: [00000000]^bb0: |