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