1;;! target = "x86_64"
2
3(module
4  (type $ft (func (param v128) (result v128)))
5  (func $foo (export "foo") (param i32) (param v128) (result v128)
6    (call_indirect (type $ft) (local.get 1) (local.get 0))
7  )
8  (table (;0;) 23 23 funcref)
9)
10
11;; function u0:0(i64 vmctx, i64, i32, i8x16) -> i8x16 tail {
12;;     gv0 = vmctx
13;;     gv1 = load.i64 notrap aligned readonly gv0+8
14;;     gv2 = load.i64 notrap aligned gv1+24
15;;     gv3 = vmctx
16;;     gv4 = load.i64 notrap aligned readonly can_move gv3+48
17;;     sig0 = (i64 vmctx, i64, i8x16) -> i8x16 tail
18;;     sig1 = (i64 vmctx, i32, i64) -> i64 tail
19;;     fn0 = colocated u805306368:9 sig1
20;;     stack_limit = gv2
21;;
22;;                                 block0(v0: i64, v1: i64, v2: i32, v3: i8x16):
23;; @0033                               v5 = iconst.i32 23
24;; @0033                               v6 = icmp uge v2, v5  ; v5 = 23
25;; @0033                               v7 = uextend.i64 v2
26;; @0033                               v8 = load.i64 notrap aligned readonly can_move v0+48
27;;                                     v29 = iconst.i64 3
28;; @0033                               v9 = ishl v7, v29  ; v29 = 3
29;; @0033                               v10 = iadd v8, v9
30;; @0033                               v11 = iconst.i64 0
31;; @0033                               v12 = select_spectre_guard v6, v11, v10  ; v11 = 0
32;; @0033                               v13 = load.i64 user5 aligned table v12
33;;                                     v28 = iconst.i64 -2
34;; @0033                               v14 = band v13, v28  ; v28 = -2
35;; @0033                               brif v13, block3(v14), block2
36;;
37;;                                 block2 cold:
38;; @0033                               v16 = iconst.i32 0
39;; @0033                               v18 = uextend.i64 v2
40;; @0033                               v19 = call fn0(v0, v16, v18)  ; v16 = 0
41;; @0033                               jump block3(v19)
42;;
43;;                                 block3(v15: i64):
44;; @0033                               v21 = load.i64 notrap aligned readonly can_move v0+40
45;; @0033                               v22 = load.i32 notrap aligned readonly can_move v21
46;; @0033                               v23 = load.i32 user6 aligned readonly v15+16
47;; @0033                               v24 = icmp eq v23, v22
48;; @0033                               trapz v24, user7
49;; @0033                               v25 = load.i64 notrap aligned readonly v15+8
50;; @0033                               v26 = load.i64 notrap aligned readonly v15+24
51;; @0033                               v27 = call_indirect sig0, v25(v26, v0, v3)
52;; @0036                               jump block1
53;;
54;;                                 block1:
55;; @0036                               return v27
56;; }
57