wasmtime-cli 46.0.2

Command-line interface for Wasmtime
Documentation
;;! target = "x86_64"
;;! flags = "-W function-references,gc -C collector=null"
;;! test = "optimize"

(module
  (func (param anyref) (result i32)
    (ref.test (ref struct) (local.get 0))
  )
)
;; function u0:0(i64 vmctx, i64, i32) -> i32 tail {
;;     region0 = 2147483648 "GcHeap"
;;     gv0 = vmctx
;;     gv1 = load.i64 notrap aligned readonly gv0+8
;;     gv2 = load.i64 notrap aligned gv1+24
;;     gv3 = vmctx
;;     gv4 = load.i64 notrap aligned readonly can_move gv3+8
;;     gv5 = load.i64 notrap aligned readonly can_move gv4+32
;;     gv6 = load.i64 notrap aligned gv4+40
;;     stack_limit = gv2
;;
;;                                 block0(v0: i64, v1: i64, v2: i32):
;; @001b                               v4 = iconst.i32 0
;; @001b                               v5 = icmp eq v2, v4  ; v4 = 0
;; @001b                               v6 = uextend.i32 v5
;; @001b                               brif v6, block4(v4), block2  ; v4 = 0
;;
;;                                 block2:
;; @001b                               v8 = iconst.i32 1
;; @001b                               v9 = band.i32 v2, v8  ; v8 = 1
;;                                     v24 = iconst.i32 0
;; @001b                               brif v9, block4(v24), block3  ; v24 = 0
;;
;;                                 block3:
;; @001b                               v22 = load.i64 notrap aligned readonly can_move v0+8
;; @001b                               v12 = load.i64 notrap aligned readonly can_move v22+32
;; @001b                               v11 = uextend.i64 v2
;; @001b                               v13 = iadd v12, v11
;; @001b                               v16 = load.i32 user2 readonly region0 v13
;; @001b                               v17 = iconst.i32 -1342177280
;; @001b                               v18 = band v16, v17  ; v17 = -1342177280
;; @001b                               v19 = icmp eq v18, v17  ; v17 = -1342177280
;; @001b                               v20 = uextend.i32 v19
;; @001b                               jump block4(v20)
;;
;;                                 block4(v21: i32):
;; @001e                               jump block1(v21)
;;
;;                                 block1(v3: i32):
;; @001e                               return v3
;; }