1;;! test = "optimize"
2;;! target = "x86_64"
3;;! flags = ["-Omemory-reservation=0x20000"]
4
5(module
6  (memory 1 200 shared)
7  (func $load (param i32) (result i32)
8    (i32.load (local.get 0)))
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+24
14;;     gv3 = vmctx
15;;     gv4 = load.i64 notrap aligned readonly can_move gv3+48
16;;     gv5 = load.i64 notrap aligned gv4+8
17;;     gv6 = load.i64 notrap aligned readonly can_move gv4
18;;     stack_limit = gv2
19;;
20;;                                 block0(v0: i64, v1: i64, v2: i32):
21;; @0022                               v4 = uextend.i64 v2
22;; @0022                               v5 = iconst.i64 0x0001_fffc
23;; @0022                               v6 = icmp ugt v4, v5  ; v5 = 0x0001_fffc
24;; @0022                               v9 = iconst.i64 0
25;; @0022                               v12 = load.i64 notrap aligned readonly can_move v0+48
26;; @0022                               v7 = load.i64 notrap aligned readonly can_move v12
27;; @0022                               v8 = iadd v7, v4
28;; @0022                               v10 = select_spectre_guard v6, v9, v8  ; v9 = 0
29;; @0022                               v11 = load.i32 little heap v10
30;; @0025                               jump block1
31;;
32;;                                 block1:
33;; @0025                               return v11
34;; }
35