1 # RUN: llc -mtriple=wasm32-unknown-unknown -start-after xray-instrumentation -wasm-keep-registers %s -o - | FileCheck %s
4 # Tests if block/loop/try/catch/end instructions are correctly printed with
10 # CHECK: br 0 # 0: down to label1
11 # CHECK: catch_all # catch0:
13 # CHECK: br_if 0, 1 # 0: down to label2
14 # CHECK: loop # label3:
15 # CHECK: br_if 0, 1 # 0: up to label3
17 # CHECK: end_block # label2:
19 # CHECK: rethrow 0 # 0: down to catch1
20 # CHECK: catch_all # catch1:
23 # CHECK: br 0 # 0: down to label6
24 # CHECK: catch_all # catch2:
26 # CHECK: end_try # label6:
27 # CHECK: end_block # label5:
28 # CHECK: rethrow 0 # 0: to caller
29 # CHECK: end_try # label4:
30 # CHECK: end_try # label1:
31 # CHECK: end_block # label0:
35 - { reg: '$arguments', reg: '$value_stack' }
38 successors: %bb.7, %bb.1
39 BLOCK 64, implicit-def $value_stack, implicit $value_stack
40 TRY 64, implicit-def $value_stack, implicit $value_stack
41 BR 0, implicit-def $arguments
45 successors: %bb.2, %bb.3
47 CATCH_ALL implicit-def $arguments
48 BLOCK 64, implicit-def $value_stack, implicit $value_stack
49 BR_IF 0, 1, implicit-def $arguments, implicit-def $value_stack, implicit $value_stack
52 ; predecessors: %bb.1, %bb.2
53 successors: %bb.2, %bb.3
55 LOOP 64, implicit-def $value_stack, implicit $value_stack
56 BR_IF 0, 1, implicit-def $arguments
59 ; predecessors: %bb.1, %bb.2
62 END_LOOP implicit-def $value_stack, implicit $value_stack
63 END_BLOCK implicit-def $value_stack, implicit $value_stack
64 TRY 64, implicit-def $value_stack, implicit $value_stack
65 RETHROW 0, implicit-def $arguments
69 successors: %bb.6, %bb.5
71 CATCH_ALL implicit-def $arguments
72 BLOCK 64, implicit-def $value_stack, implicit $value_stack
73 TRY 64, implicit-def $value_stack, implicit $value_stack
74 BR 0, implicit-def $arguments
78 CATCH_ALL implicit-def $arguments
79 UNREACHABLE implicit-def dead $arguments
83 END_TRY implicit-def $value_stack, implicit $value_stack
84 END_BLOCK implicit-def $value_stack, implicit $value_stack
85 RETHROW 0, implicit-def $arguments
89 END_TRY implicit-def $value_stack, implicit $value_stack
90 END_TRY implicit-def $value_stack, implicit $value_stack
91 END_BLOCK implicit-def $value_stack, implicit $value_stack
92 FALLTHROUGH_RETURN_VOID implicit-def dead $arguments
93 END_FUNCTION implicit-def $value_stack, implicit $value_stack