blob: 657913b900a28e29cf39237586df567865cc121b [file] [log] [blame]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s -all --disable-gc -S -o - | filecheck %s
;; RUN: wasm-opt %s -all --disable-gc -S -o - | wasm-opt -all --disable-gc -S -o - | filecheck %s
(module
;; RTRIP: (type $tuple (func (result i32 externref)))
;; CHECK: (type $tuple (func (result i32 externref)))
(type $tuple (func (result i32 externref)))
;; CHECK: (func $f (result i32 externref)
;; CHECK-NEXT: (local $scratch (tuple i32 externref))
;; CHECK-NEXT: (block $l (type $tuple) (result i32 externref)
;; CHECK-NEXT: (br $l
;; CHECK-NEXT: (block (type $tuple) (result i32 externref)
;; CHECK-NEXT: (local.set $scratch
;; CHECK-NEXT: (br_if $l
;; CHECK-NEXT: (tuple.make 2
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: (ref.null noextern)
;; CHECK-NEXT: )
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: (local.get $scratch)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $f (result i32 externref)
block $l (type $tuple) (result i32 externref)
i32.const 0
ref.null extern
i32.const 0
br_if $l ;; package the i32 and nullexternref into a tuple
nop ;; force creation of a scratch local
br $l ;; consume a scratch local block with (result i32 nullexternref)
;; the nullexternref will become externref, as gc is disabled.
end
)
)