1;;! target = "x86_64"
2;;! flags = "-W function-references,gc -C collector=null"
3;;! test = "optimize"
4
5(module
6  (type $ty (array (mut i64)))
7
8  (func (param (ref $ty) i32 i32) (result i64 i64)
9    (array.get $ty (local.get 0) (local.get 1))
10    (array.get $ty (local.get 0) (local.get 2))
11  )
12)
13;; function u0:0(i64 vmctx, i64, i32, i32, i32) -> i64, i64 tail {
14;;     gv0 = vmctx
15;;     gv1 = load.i64 notrap aligned readonly gv0+8
16;;     gv2 = load.i64 notrap aligned gv1
17;;     gv3 = vmctx
18;;     stack_limit = gv2
19;;
20;;                                 block0(v0: i64, v1: i64, v2: i32, v3: i32, v4: i32):
21;; @0024                               trapz v2, user16
22;; @0024                               v11 = uextend.i64 v2
23;; @0024                               v12 = iconst.i64 8
24;; @0024                               v13 = uadd_overflow_trap v11, v12, user1  ; v12 = 8
25;; @0024                               v14 = iconst.i64 4
26;; @0024                               v15 = uadd_overflow_trap v13, v14, user1  ; v14 = 4
27;; @0024                               v10 = load.i64 notrap aligned readonly v0+48
28;; @0024                               v16 = icmp ule v15, v10
29;; @0024                               trapz v16, user1
30;; @0024                               v8 = load.i64 notrap aligned readonly v0+40
31;; @0024                               v17 = iadd v8, v13
32;; @0024                               v18 = load.i32 notrap aligned v17
33;; @0024                               v19 = icmp ult v3, v18
34;; @0024                               trapz v19, user17
35;; @0024                               v21 = uextend.i64 v18
36;;                                     v79 = iconst.i64 3
37;;                                     v80 = ishl v21, v79  ; v79 = 3
38;;                                     v77 = iconst.i64 32
39;; @0024                               v23 = ushr v80, v77  ; v77 = 32
40;; @0024                               trapnz v23, user1
41;;                                     v89 = iconst.i32 3
42;;                                     v90 = ishl v18, v89  ; v89 = 3
43;; @0024                               v25 = iconst.i32 16
44;; @0024                               v26 = uadd_overflow_trap v90, v25, user1  ; v25 = 16
45;;                                     v97 = ishl v3, v89  ; v89 = 3
46;; @0024                               v29 = iadd v97, v25  ; v25 = 16
47;; @0024                               v35 = uextend.i64 v29
48;; @0024                               v36 = uadd_overflow_trap v11, v35, user1
49;; @0024                               v37 = uextend.i64 v26
50;; @0024                               v38 = uadd_overflow_trap v11, v37, user1
51;; @0024                               v39 = icmp ule v38, v10
52;; @0024                               trapz v39, user1
53;; @0024                               v40 = iadd v8, v36
54;; @0024                               v41 = load.i64 notrap aligned little v40
55;; @002b                               trapz v2, user16
56;; @002b                               trapz v16, user1
57;; @002b                               v53 = load.i32 notrap aligned v17
58;; @002b                               v54 = icmp ult v4, v53
59;; @002b                               trapz v54, user17
60;; @002b                               v56 = uextend.i64 v53
61;;                                     v99 = ishl v56, v79  ; v79 = 3
62;; @002b                               v58 = ushr v99, v77  ; v77 = 32
63;; @002b                               trapnz v58, user1
64;;                                     v106 = ishl v53, v89  ; v89 = 3
65;; @002b                               v61 = uadd_overflow_trap v106, v25, user1  ; v25 = 16
66;;                                     v113 = ishl v4, v89  ; v89 = 3
67;; @002b                               v64 = iadd v113, v25  ; v25 = 16
68;; @002b                               v70 = uextend.i64 v64
69;; @002b                               v71 = uadd_overflow_trap v11, v70, user1
70;; @002b                               v72 = uextend.i64 v61
71;; @002b                               v73 = uadd_overflow_trap v11, v72, user1
72;; @002b                               v74 = icmp ule v73, v10
73;; @002b                               trapz v74, user1
74;; @002b                               v75 = iadd v8, v71
75;; @002b                               v76 = load.i64 notrap aligned little v75
76;; @002e                               jump block1
77;;
78;;                                 block1:
79;; @002e                               return v41, v76
80;; }
81