(module
 (type $0 (func (result i32)))
 (type $1 (func))
 (type $2 (func (param i32)))
 (import "spectest" "print" (func $print (param i32)))
 (memory $0 1 1)
 (export "mem" (memory $0))
 (start $main)
 (func $check (result i32)
  (if
   (i32.ge_u
    (i32.load
     (i32.const 4)
    )
    (i32.const 48)
   )
   (then
    (unreachable)
   )
  )
  (i32.store
   (i32.const 4)
   (i32.add
    (i32.load
     (i32.const 4)
    )
    (i32.const 4)
   )
  )
  (call $print
   (i32.sub
    (i32.const 0)
    (i32.load offset=4
     (i32.load
      (i32.const 4)
     )
    )
   )
  )
  (i32.load offset=4
   (i32.load
    (i32.const 4)
   )
  )
 )
 (func $main
  (local $0 i32)
  (local $1 i32)
  (block
   (block
    (call $print
     (i32.const 0)
    )
    (local.set $0
     (call $check)
    )
   )
   (block
    (call $print
     (i32.const 1)
    )
    (local.set $0
     (call $check)
    )
   )
  )
 )
)
