blob: 623970cd39aad5f0de68ddf8dea60175ffb8d0cd [file] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s --remove-unused-names --precompute-propagate --fuzz-exec -all -S -o - \
;; RUN: | filecheck %s
(module
(rec
;; CHECK: (rec
;; CHECK-NEXT: (type $struct (descriptor $desc) (struct))
(type $struct (descriptor $desc) (struct))
;; CHECK: (type $desc (describes $struct) (struct))
(type $desc (describes $struct) (struct))
)
;; CHECK: (global $desc (ref (exact $desc)) (struct.new_default $desc))
(global $desc (ref (exact $desc)) (struct.new $desc))
;; CHECK: (global $struct (ref $struct) (struct.new_default_desc $struct
;; CHECK-NEXT: (global.get $desc)
;; CHECK-NEXT: ))
(global $struct (ref $struct) (struct.new_desc $struct (global.get $desc)))
;; CHECK: (func $eq-descs (type $0) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $eq-descs (result i32)
(ref.eq
(ref.get_desc $struct
(struct.new_desc $struct
(global.get $desc)
)
)
(global.get $desc)
)
)
;; CHECK: (func $different-descs (type $0) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $different-descs (result i32)
(ref.eq
(ref.get_desc $struct
(struct.new_desc $struct
(struct.new $desc)
)
)
(global.get $desc)
)
)
;; CHECK: (func $br-on-cast-desc-eq (type $0) (result i32)
;; CHECK-NEXT: (i32.const 1)
;; CHECK-NEXT: )
(func $br-on-cast-desc-eq (result i32)
(ref.eq
(block $l (result eqref)
(drop
(br_on_cast_desc_eq $l eqref (ref $struct)
(global.get $struct)
(global.get $desc)
)
)
(ref.null none)
)
(global.get $struct)
)
)
;; CHECK: (func $br-on-cast-desc-eq-fail (type $0) (result i32)
;; CHECK-NEXT: (i32.const 0)
;; CHECK-NEXT: )
(func $br-on-cast-desc-eq-fail (result i32)
(ref.eq
(block $l (result eqref)
(drop
(br_on_cast_desc_eq_fail $l eqref (ref $struct)
(global.get $struct)
(global.get $desc)
)
)
(ref.null none)
)
(global.get $struct)
)
)
)