;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. ;; RUN: foreach %s %t wasm-opt --log-execution -S -o - | filecheck %s (module ;; CHECK: (type $0 (func)) ;; CHECK: (type $1 (func (result i32))) ;; CHECK: (type $2 (func (param i32))) ;; CHECK: (import "env" "func" (func $import)) (import "env" "func" (func $import)) ;; CHECK: (import "env" "log_execution" (func $log_execution (param i32))) ;; CHECK: (func $nopp ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) (func $nopp (nop) ) ;; CHECK: (func $intt (result i32) ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) (func $intt (result i32) (i32.const 10) ) ;; CHECK: (func $workk ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (if ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (nop) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $workk (if (i32.const 0) (then (nop))) (drop (i32.const 1)) ) ;; CHECK: (func $loops ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 8) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (loop $x ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (call $loops) ;; CHECK-NEXT: (br $x) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (if ;; CHECK-NEXT: (call $intt) ;; CHECK-NEXT: (then ;; CHECK-NEXT: (loop $y ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call $loops) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 7) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (loop ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 20) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i32.const 30) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $loops (loop $x (call $loops) (br $x) ) (if (call $intt) (then (loop $y (call $loops) ) ) ) (loop (drop (i32.const 10)) (drop (i32.const 20)) (drop (i32.const 30)) ) ) ;; CHECK: (func $loops-similar ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 10) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (loop $x ;; CHECK-NEXT: (call $log_execution ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (block ;; CHECK-NEXT: (call $loops) ;; CHECK-NEXT: (br $x) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $loops-similar (loop $x (call $loops) (br $x) ) ) )