xref: /wasmtime-44.0.1/tests/disas/multi-4.wat (revision 7e0331c2)
1;;! target = "x86_64"
2
3(module
4  (func (export "multiIf2") (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
10        i64.add
11        i64.const 1)
12      ;; Hits the code path for an `else` after a block that does not end unreachable.
13      (else
14        i64.sub
15        i64.const 2))))
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;; @0037                               brif v2, block2, block4
25;;
26;;                                 block2:
27;; @0039                               v9 = iadd.i64 v4, v3
28;; @003a                               v10 = iconst.i64 1
29;; @003c                               jump block3(v9, v10)  ; v10 = 1
30;;
31;;                                 block4:
32;; @003d                               v13 = isub.i64 v4, v3
33;; @003e                               v14 = iconst.i64 2
34;; @0040                               jump block3(v13, v14)  ; v14 = 2
35;;
36;;                                 block3(v7: i64, v8: i64):
37;; @0041                               jump block1(v7, v8)
38;;
39;;                                 block1(v5: i64, v6: i64):
40;; @0041                               return v5, v6
41;; }
42