1;;! target = "x86_64" 2;;! flags = "-W function-references,gc -C collector=null" 3;;! test = "optimize" 4 5(module 6 (type $ty (struct (field (mut f32)) 7 (field (mut i8)) 8 (field (mut anyref)))) 9 10 (func (result (ref $ty)) 11 (struct.new_default $ty) 12 ) 13) 14;; function u0:0(i64 vmctx, i64) -> i32 tail { 15;; gv0 = vmctx 16;; gv1 = load.i64 notrap aligned readonly gv0+8 17;; gv2 = load.i64 notrap aligned gv1+24 18;; gv3 = vmctx 19;; gv4 = load.i64 notrap aligned readonly can_move gv3+8 20;; gv5 = load.i64 notrap aligned gv4+40 21;; gv6 = load.i64 notrap aligned readonly can_move gv4+32 22;; sig0 = (i64 vmctx, i64) -> i8 tail 23;; fn0 = colocated u805306368:26 sig0 24;; stack_limit = gv2 25;; 26;; block0(v0: i64, v1: i64): 27;; @0021 v11 = load.i64 notrap aligned readonly v0+32 28;; @0021 v12 = load.i32 notrap aligned v11 29;; v49 = iconst.i32 7 30;; @0021 v15 = uadd_overflow_trap v12, v49, user17 ; v49 = 7 31;; v56 = iconst.i32 -8 32;; @0021 v17 = band v15, v56 ; v56 = -8 33;; @0021 v6 = iconst.i32 24 34;; @0021 v18 = uadd_overflow_trap v17, v6, user17 ; v6 = 24 35;; @0021 v41 = load.i64 notrap aligned readonly can_move v0+8 36;; @0021 v20 = load.i64 notrap aligned v41+40 37;; @0021 v19 = uextend.i64 v18 38;; @0021 v21 = icmp ule v19, v20 39;; @0021 brif v21, block2, block3 40;; 41;; block2: 42;; v57 = iconst.i32 -1342177256 43;; @0021 v25 = load.i64 notrap aligned readonly can_move v41+32 44;; v64 = band.i32 v15, v56 ; v56 = -8 45;; v65 = uextend.i64 v64 46;; @0021 v27 = iadd v25, v65 47;; @0021 store notrap aligned v57, v27 ; v57 = -1342177256 48;; @0021 v31 = load.i64 notrap aligned readonly can_move v0+40 49;; @0021 v32 = load.i32 notrap aligned readonly can_move v31 50;; @0021 store notrap aligned v32, v27+4 51;; @0021 store.i32 notrap aligned v18, v11 52;; @0021 v3 = f32const 0.0 53;; v38 = iconst.i64 8 54;; @0021 v33 = iadd v27, v38 ; v38 = 8 55;; @0021 store notrap aligned little v3, v33 ; v3 = 0.0 56;; @0021 v4 = iconst.i32 0 57;; v37 = iconst.i64 12 58;; @0021 v34 = iadd v27, v37 ; v37 = 12 59;; @0021 istore8 notrap aligned little v4, v34 ; v4 = 0 60;; v36 = iconst.i64 16 61;; @0021 v35 = iadd v27, v36 ; v36 = 16 62;; @0021 store notrap aligned little v4, v35 ; v4 = 0 63;; @0024 jump block1 64;; 65;; block3 cold: 66;; @0021 v23 = isub.i64 v19, v20 67;; @0021 v24 = call fn0(v0, v23) 68;; @0021 jump block2 69;; 70;; block1: 71;; v66 = band.i32 v15, v56 ; v56 = -8 72;; @0024 return v66 73;; } 74