1;;! target = "x86_64"
2;;! flags = "-W function-references,gc -C collector=null"
3;;! test = "optimize"
4
5(module
6  (func (param anyref) (result i32)
7    (ref.test (ref array) (local.get 0))
8  )
9)
10;; function u0:0(i64 vmctx, i64, i32) -> i32 tail {
11;;     gv0 = vmctx
12;;     gv1 = load.i64 notrap aligned readonly gv0+8
13;;     gv2 = load.i64 notrap aligned gv1+16
14;;     gv3 = vmctx
15;;     stack_limit = gv2
16;;
17;;                                 block0(v0: i64, v1: i64, v2: i32):
18;;                                     v28 = iconst.i32 0
19;; @001b                               v4 = icmp eq v2, v28  ; v28 = 0
20;; @001b                               v5 = uextend.i32 v4
21;; @001b                               brif v5, block4(v28), block2  ; v28 = 0
22;;
23;;                                 block2:
24;; @001b                               v7 = iconst.i32 1
25;; @001b                               v8 = band.i32 v2, v7  ; v7 = 1
26;;                                     v30 = iconst.i32 0
27;; @001b                               brif v8, block4(v30), block3  ; v30 = 0
28;;
29;;                                 block3:
30;; @001b                               v15 = uextend.i64 v2
31;; @001b                               v16 = iconst.i64 0
32;; @001b                               v17 = uadd_overflow_trap v15, v16, user1  ; v16 = 0
33;;                                     v29 = iconst.i64 8
34;; @001b                               v19 = uadd_overflow_trap v15, v29, user1  ; v29 = 8
35;; @001b                               v14 = load.i64 notrap aligned readonly can_move v0+48
36;; @001b                               v20 = icmp ule v19, v14
37;; @001b                               trapz v20, user1
38;; @001b                               v12 = load.i64 notrap aligned readonly can_move v0+40
39;; @001b                               v21 = iadd v12, v17
40;; @001b                               v22 = load.i32 notrap aligned readonly v21
41;; @001b                               v23 = iconst.i32 -1476395008
42;; @001b                               v24 = band v22, v23  ; v23 = -1476395008
43;; @001b                               v25 = icmp eq v24, v23  ; v23 = -1476395008
44;; @001b                               v26 = uextend.i32 v25
45;; @001b                               jump block4(v26)
46;;
47;;                                 block4(v27: i32):
48;; @001e                               jump block1(v27)
49;;
50;;                                 block1(v3: i32):
51;; @001e                               return v3
52;; }
53