xref: /wasmtime-44.0.1/tests/disas/multi-3.wat (revision 7e0331c2)
1;;! target = "x86_64"
2
3(module
4  (func (export "multiIf") (param i32 i64 i64) (result i64 i64)
5    (local.get 2)
6    (local.get 1)
7    (local.get 0)
8    (if (param i64 i64) (result i64 i64)
9      (then return)
10      ;; Hits the code path for an `else` after a block that ends unreachable.
11      (else
12        (drop)
13        (drop)
14        (i64.const 0)
15        (i64.const 0)))))
16
17;; function u0:0(i64 vmctx, i64, i32, i64, i64) -> i64, i64 tail {
18;;     gv0 = vmctx
19;;     gv1 = load.i64 notrap aligned readonly gv0+8
20;;     gv2 = load.i64 notrap aligned gv1+24
21;;     stack_limit = gv2
22;;
23;;                                 block0(v0: i64, v1: i64, v2: i32, v3: i64, v4: i64):
24;; @0036                               brif v2, block2, block4
25;;
26;;                                 block2:
27;; @0038                               return v4, v3
28;;
29;;                                 block4:
30;; @003c                               v11 = iconst.i64 0
31;; @003e                               v12 = iconst.i64 0
32;; @0040                               jump block3
33;;
34;;                                 block3:
35;; @0041                               jump block1
36;;
37;;                                 block1:
38;; @0041                               return v11, v12  ; v11 = 0, v12 = 0
39;; }
40