blob: c6e08b83ab3dce73de2a64a2b044135bfe03066b [file] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: wasm-opt %s --merge-blocks -all -S -o - | filecheck %s
;;
;; Similar to merge-blocks.wast, but without --remove-unused-names. This tests
;; the pass entirely by itself.
(module
;; CHECK: (func $nested-dropped-blocks (type $0)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (i32.const 42)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $nested-dropped-blocks
;; Fully removing unneeded blocks here requires multiple operations to happen.
;; Specifically, we remove all the outer blocks first, and only then get to
;; the inner named block, which we can then infer is not needed either.
(block
(drop
(block (result i32)
(block $named (result i32)
(i32.const 42)
)
)
)
)
)
)