]> git.proxmox.com Git - rustc.git/blob - src/binaryen/test/passes/merge-blocks.wast
New upstream version 1.23.0+dfsg1
[rustc.git] / src / binaryen / test / passes / merge-blocks.wast
1 (module
2 (func $drop-block
3 (block
4 (drop
5 (block $x (result i32)
6 (i32.const 0)
7 )
8 )
9 )
10 )
11 (func $drop-block-br
12 (block
13 (drop
14 (block $x (result i32)
15 (br $x (i32.const 1))
16 (i32.const 0)
17 )
18 )
19 )
20 )
21 (func $drop-block-br-if
22 (block
23 (drop
24 (block $x (result i32)
25 (drop (br_if $x (i32.const 1) (i32.const 2)))
26 (i32.const 0)
27 )
28 )
29 )
30 )
31 (func $undroppable-block-br-if (param i32)
32 (block
33 (drop
34 (block $x (result i32)
35 (call $undroppable-block-br-if (br_if $x (i32.const 1) (i32.const 2)))
36 (i32.const 0)
37 )
38 )
39 )
40 )
41 (func $drop-block-nested-br-if
42 (block
43 (drop
44 (block $x (result i32)
45 (if (i32.const 100)
46 (block
47 (drop (br_if $x (i32.const 1) (i32.const 2)))
48 (nop)
49 )
50 )
51 (i32.const 0)
52 )
53 )
54 )
55 )
56 (func $drop-unreachable-br_if (result i32)
57 (block $label$0 (result i32)
58 (block $label$2 (result i32)
59 (br_if $label$2
60 (br $label$0
61 (i32.const 538976371)
62 )
63 (i32.const 1918987552)
64 )
65 )
66 )
67 )
68 (func $drop-block-squared-iloop
69 (drop
70 (block $label$0 (result i32) ;; this block's type should not change, so the drop remains none and valid
71 (drop
72 (block $label$1
73 (loop $label$2
74 (br $label$2)
75 )
76 )
77 )
78 )
79 )
80 )
81 (func $br-goes-away-label2-becomes-unreachable
82 (block
83 (drop
84 (block $label$1 (result i32)
85 (block $label$2
86 (drop
87 (br_if $label$1
88 (unreachable)
89 (i32.eqz
90 (br $label$2)
91 )
92 )
93 )
94 )
95 (i32.const 1)
96 )
97 )
98 )
99 )
100 (func $loop-block-drop-block-return
101 (loop $label$4
102 (block $label$5
103 (drop
104 (block $label$6 (result i32)
105 (return)
106 )
107 )
108 )
109 )
110 )
111 )
112