1;;! target = "x86_64" 2;;! test = "optimize" 3;;! flags = [ 4;;! "-Ccranelift-enable-heap-access-spectre-mitigation", 5;;! "-Oopt-level=s", 6;;! "-Ostatic-memory-maximum-size=0", 7;;! ] 8 9(module 10 (memory (export "memory") 0) 11 (func (export "load-without-offset") (param i32) (result i32 i32) 12 local.get 0 13 i32.load 14 local.get 0 15 i32.load 16 ) 17 (func (export "load-with-offset") (param i32) (result i32 i32) 18 local.get 0 19 i32.load offset=1234 20 local.get 0 21 i32.load offset=1234 22 ) 23) 24 25;; function u0:0(i64 vmctx, i64, i32) -> i32, i32 tail { 26;; gv0 = vmctx 27;; gv1 = load.i64 notrap aligned readonly gv0+8 28;; gv2 = load.i64 notrap aligned gv1+24 29;; gv3 = vmctx 30;; gv4 = load.i64 notrap aligned gv3+64 31;; gv5 = load.i64 notrap aligned can_move gv3+56 32;; stack_limit = gv2 33;; 34;; block0(v0: i64, v1: i64, v2: i32): 35;; @0057 v6 = load.i64 notrap aligned v0+64 36;; @0057 v8 = load.i64 notrap aligned can_move v0+56 37;; @0057 v5 = uextend.i64 v2 38;; @0057 v7 = icmp ugt v5, v6 39;; @0057 v10 = iconst.i64 0 40;; @0057 v9 = iadd v8, v5 41;; @0057 v11 = select_spectre_guard v7, v10, v9 ; v10 = 0 42;; @0057 v12 = load.i32 little heap v11 43;; @005f jump block1 44;; 45;; block1: 46;; @005f return v12, v12 47;; } 48;; 49;; function u0:1(i64 vmctx, i64, i32) -> i32, i32 tail { 50;; gv0 = vmctx 51;; gv1 = load.i64 notrap aligned readonly gv0+8 52;; gv2 = load.i64 notrap aligned gv1+24 53;; gv3 = vmctx 54;; gv4 = load.i64 notrap aligned gv3+64 55;; gv5 = load.i64 notrap aligned can_move gv3+56 56;; stack_limit = gv2 57;; 58;; block0(v0: i64, v1: i64, v2: i32): 59;; @0064 v6 = load.i64 notrap aligned v0+64 60;; @0064 v8 = load.i64 notrap aligned can_move v0+56 61;; @0064 v5 = uextend.i64 v2 62;; @0064 v7 = icmp ugt v5, v6 63;; @0064 v12 = iconst.i64 0 64;; @0064 v9 = iadd v8, v5 65;; @0064 v10 = iconst.i64 1234 66;; @0064 v11 = iadd v9, v10 ; v10 = 1234 67;; @0064 v13 = select_spectre_guard v7, v12, v11 ; v12 = 0 68;; @0064 v14 = load.i32 little heap v13 69;; @006e jump block1 70;; 71;; block1: 72;; @006e return v14, v14 73;; } 74