blob: d57226c835d83b8f21c2dae60e10e9cff35bf3e6 [file] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited.
;; RUN: env BINARYEN_PRINT_FULL=1 wasm-opt %s --remove-unused-brs -S -o - | filecheck %s
(module
;; CHECK: (func $test
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (loop $loop
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (if
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (i32.const 0) (; i32 ;)
;; CHECK-NEXT: (then
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (block $block (; unreachable ;)
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (br_if $loop
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (block (result i32) (; i32 ;)
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (block (; none ;)
;; CHECK-NEXT: ) ;; end block
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (i32.const 0) (; i32 ;)
;; CHECK-NEXT: ) ;; end block (; i32 ;)
;; CHECK-NEXT: ) (; none ;)
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (unreachable) (; unreachable ;)
;; CHECK-NEXT: ) ;; end block block (; unreachable ;)
;; CHECK-NEXT: )
;; CHECK-NEXT: (else
;; CHECK-NEXT: ;;@
;; CHECK-NEXT: (unreachable) (; unreachable ;)
;; CHECK-NEXT: )
;; CHECK-NEXT: ) ;; end if (; unreachable ;)
;; CHECK-NEXT: ) ;; end loop loop (; unreachable ;)
;; CHECK-NEXT: )
(func $test
(loop $loop
(if
(i32.const 0)
(then
(block $block
(if
(block (result i32)
;; This can be removed, after which $block has no breaks and it will
;; become unreachable, as verified by PRINT_FULL. (The rest of the test
;; around it is needed to avoid remove-unused-brs optimizing it all
;; away as trivial.)
(br_if $block
(i32.const 0)
)
(i32.const 0)
)
(then
(br $loop)
)
(else
(unreachable)
)
)
)
)
(else
(unreachable)
)
)
)
)
)