1;;! target = "x86_64"
2;;! test = "optimize"
3;;! filter = "wasm[2]--function"
4;;! flags = "-C inlining=y"
5
6(component
7  (core module $A
8    (func (export "f0") (result i32) (i32.const 0))
9    (func (export "f1") (result i32) (call $not-inlined) (i32.const 1))
10    (func $not-inlined )
11  )
12
13  (core module $B
14    (import "a" "f0" (func $f0 (result i32)))
15    (import "a" "f1" (func $f1 (result i32)))
16    (func (export "f2") (result i32)
17      (call $f1)
18    )
19  )
20
21  (core module $C
22    (import "b" "f2" (func $f2 (result i32)))
23    (func (export "f3") (result i32)
24      (call $f2)
25    )
26  )
27
28  (core instance $a (instantiate $A))
29  (core instance $b (instantiate $B (with "a" (instance $a))))
30  (core instance $c (instantiate $C (with "b" (instance $b))))
31
32  (func (export "f") (result u32)
33    (canon lift (core func $c "f3"))
34  )
35)
36
37;; function u2:0(i64 vmctx, i64) -> i32 tail {
38;;     gv0 = vmctx
39;;     gv1 = load.i64 notrap aligned readonly gv0+8
40;;     gv2 = load.i64 notrap aligned gv1+24
41;;     gv3 = vmctx
42;;     gv4 = vmctx
43;;     gv5 = load.i64 notrap aligned readonly gv4+8
44;;     gv6 = load.i64 notrap aligned gv5+24
45;;     gv7 = vmctx
46;;     gv8 = vmctx
47;;     gv9 = load.i64 notrap aligned readonly gv8+8
48;;     gv10 = load.i64 notrap aligned gv9+24
49;;     sig0 = (i64 vmctx, i64) -> i32 tail
50;;     sig1 = (i64 vmctx, i64) -> i32 tail
51;;     sig2 = (i64 vmctx, i64) tail
52;;     fn0 = colocated u1:0 sig0
53;;     fn1 = colocated u0:1 sig1
54;;     fn2 = colocated u0:2 sig2
55;;     stack_limit = gv2
56;;
57;;                                 block0(v0: i64, v1: i64):
58;; @00d4                               jump block2
59;;
60;;                                 block2:
61;;                                     jump block4
62;;
63;;                                 block4:
64;; @00d4                               v4 = load.i64 notrap aligned readonly can_move v0+64
65;;                                     v10 = load.i64 notrap aligned readonly can_move v4+88
66;;                                     call fn2(v10, v10)
67;;                                     jump block5
68;;
69;;                                 block5:
70;;                                     jump block6
71;;
72;;                                 block6:
73;;                                     jump block3
74;;
75;;                                 block3:
76;;                                     jump block7
77;;
78;;                                 block7:
79;; @00d6                               jump block1
80;;
81;;                                 block1:
82;;                                     v11 = iconst.i32 1
83;; @00d6                               return v11  ; v11 = 1
84;; }
85