1;;! test = "optimize"
2;;! target = "x86_64"
3;;! flags = ["-Wmemory64", "-Omemory-may-move=n"]
4
5(module
6  (memory i64 1)
7  (func $load (param i64) (result i32)
8    (i32.load (local.get 0)))
9)
10;; function u0:0(i64 vmctx, i64, i64) -> 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: i64):
20;; @0020                               v4 = iconst.i64 0xffff_fffc
21;; @0020                               v5 = icmp ugt v2, v4  ; v4 = 0xffff_fffc
22;; @0020                               v8 = iconst.i64 0
23;; @0020                               v6 = load.i64 notrap aligned readonly can_move v0+56
24;; @0020                               v7 = iadd v6, v2
25;; @0020                               v9 = select_spectre_guard v5, v8, v7  ; v8 = 0
26;; @0020                               v10 = load.i32 little heap v9
27;; @0023                               jump block1
28;;
29;;                                 block1:
30;; @0023                               return v10
31;; }
32