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;;                                     v32 = iconst.i32 0
19;; @001b                               v4 = icmp eq v2, v32  ; v32 = 0
20;; @001b                               v5 = uextend.i32 v4
21;; @001b                               v7 = iconst.i32 1
22;;                                     v37 = select v2, v7, v32  ; v7 = 1, v32 = 0
23;; @001b                               brif v5, block4(v37), block2
24;;
25;;                                 block2:
26;;                                     v45 = iconst.i32 1
27;;                                     v46 = band.i32 v2, v45  ; v45 = 1
28;;                                     v47 = iconst.i32 0
29;;                                     v48 = select v46, v47, v45  ; v47 = 0, v45 = 1
30;; @001b                               brif v46, block4(v48), block3
31;;
32;;                                 block3:
33;; @001b                               v19 = uextend.i64 v2
34;; @001b                               v20 = iconst.i64 0
35;; @001b                               v21 = uadd_overflow_trap v19, v20, user1  ; v20 = 0
36;;                                     v44 = iconst.i64 8
37;; @001b                               v23 = uadd_overflow_trap v19, v44, user1  ; v44 = 8
38;; @001b                               v18 = load.i64 notrap aligned readonly v0+48
39;; @001b                               v24 = icmp ule v23, v18
40;; @001b                               trapz v24, user1
41;; @001b                               v16 = load.i64 notrap aligned readonly v0+40
42;; @001b                               v25 = iadd v16, v21
43;; @001b                               v26 = load.i32 notrap aligned readonly v25
44;; @001b                               v27 = iconst.i32 -1476395008
45;; @001b                               v28 = band v26, v27  ; v27 = -1476395008
46;; @001b                               v29 = icmp eq v28, v27  ; v27 = -1476395008
47;; @001b                               v30 = uextend.i32 v29
48;; @001b                               jump block4(v30)
49;;
50;;                                 block4(v31: i32):
51;; @001e                               jump block1(v31)
52;;
53;;                                 block1(v3: i32):
54;; @001e                               return v3
55;; }
56