1;;! test = "optimize"
2;;! target = "x86_64"
3;;! flags = ["-Omemory-reservation=0x20000", "-Omemory-may-move=n"]
4
5(module
6  (memory 1)
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 gv3+64
16;;     gv5 = load.i64 notrap aligned readonly can_move gv3+56
17;;     stack_limit = gv2
18;;
19;;                                 block0(v0: i64, v1: i64, v2: i32):
20;; @0020                               v4 = uextend.i64 v2
21;; @0020                               v5 = iconst.i64 0x0001_fffc
22;; @0020                               v6 = icmp ugt v4, v5  ; v5 = 0x0001_fffc
23;; @0020                               v9 = iconst.i64 0
24;; @0020                               v7 = load.i64 notrap aligned readonly can_move v0+56
25;; @0020                               v8 = iadd v7, v4
26;; @0020                               v10 = select_spectre_guard v6, v9, v8  ; v9 = 0
27;; @0020                               v11 = load.i32 little heap v10
28;; @0023                               jump block1
29;;
30;;                                 block1:
31;; @0023                               return v11
32;; }
33