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