blob: 561c7560f69cd042610ff98222d1b3d9fc6e6ad4 [file] [log] [blame] [edit]
;; 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)
)
)
)