blob: d12e959c6b0ca06304d92f5cbf5f972b1ebc4c90 [file] [log] [blame] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
;; RUN: wasm-opt --enable-simd --trace-calls="noparamsnoresults,singleparamnoresults,multiparamsnoresults:tracempnr,noparamssingleresult,multiparamssingleresult" %s -S -o - | filecheck %s
(module
(import "env" "no_params_no_results"
(func $noparamsnoresults))
(import "env" "single_param_no_results"
(func $singleparamnoresults (param f64)))
(import "env" "multi_params_no_results"
(func $multiparamsnoresults (param i32 i64 f32)))
(import "env" "no_params_single_result"
(func $noparamssingleresult (result v128)))
(import "env" "multi_params_single_result"
(func $multiparamssingleresult (param i32 v128)(result v128)))
(import "env" "dont_trace_me"
(func $donttraceme))
;; CHECK: (type $0 (func))
;; CHECK: (type $1 (func (result v128)))
;; CHECK: (type $2 (func (param f64)))
;; CHECK: (type $3 (func (param i32 i64 f32)))
;; CHECK: (type $4 (func (param i32 v128) (result v128)))
;; CHECK: (type $5 (func (param v128 i32 v128)))
;; CHECK: (type $6 (func (param v128)))
;; CHECK: (import "env" "no_params_no_results" (func $noparamsnoresults))
;; CHECK: (import "env" "single_param_no_results" (func $singleparamnoresults (param f64)))
;; CHECK: (import "env" "multi_params_no_results" (func $multiparamsnoresults (param i32 i64 f32)))
;; CHECK: (import "env" "no_params_single_result" (func $noparamssingleresult (result v128)))
;; CHECK: (import "env" "multi_params_single_result" (func $multiparamssingleresult (param i32 v128) (result v128)))
;; CHECK: (import "env" "dont_trace_me" (func $donttraceme))
;; CHECK: (import "env" "tracempnr" (func $tracempnr (param i32 i64 f32)))
;; CHECK: (import "env" "trace_multiparamssingleresult" (func $trace_multiparamssingleresult (param v128 i32 v128)))
;; CHECK: (import "env" "trace_noparamsnoresults" (func $trace_noparamsnoresults))
;; CHECK: (import "env" "trace_noparamssingleresult" (func $trace_noparamssingleresult (param v128)))
;; CHECK: (import "env" "trace_singleparamnoresults" (func $trace_singleparamnoresults (param f64)))
;; CHECK: (func $test_no_params_no_results
;; CHECK-NEXT: (call $noparamsnoresults)
;; CHECK-NEXT: (call $trace_noparamsnoresults)
;; CHECK-NEXT: )
(func $test_no_params_no_results
(call $noparamsnoresults)
)
;; CHECK: (func $test_single_param_no_results
;; CHECK-NEXT: (local $0 f64)
;; CHECK-NEXT: (call $singleparamnoresults
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (f64.const 4.5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $trace_singleparamnoresults
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $test_single_param_no_results
(call $singleparamnoresults (f64.const 4.5))
)
;; we specify a custom name (tracempnr) for the tracer function
;; CHECK: (func $test_multi_params_no_results
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 i64)
;; CHECK-NEXT: (local $2 f32)
;; CHECK-NEXT: (call $multiparamsnoresults
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (i32.const 5)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.tee $1
;; CHECK-NEXT: (i64.const 6)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.tee $2
;; CHECK-NEXT: (f32.const 1.5)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (call $tracempnr
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
;; CHECK-NEXT: (local.get $2)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $test_multi_params_no_results
(call $multiparamsnoresults
(i32.const 5)
(i64.const 6)
(f32.const 1.5)
)
)
;; CHECK: (func $test_no_params_single_result (result v128)
;; CHECK-NEXT: (local $0 v128)
;; CHECK-NEXT: (call $trace_noparamssingleresult
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (call $noparamssingleresult)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: )
(func $test_no_params_single_result (result v128)
call $noparamssingleresult
)
;; CHECK: (func $test_multi_params_single_result (result v128)
;; CHECK-NEXT: (local $0 i32)
;; CHECK-NEXT: (local $1 v128)
;; CHECK-NEXT: (local $2 v128)
;; CHECK-NEXT: (call $trace_multiparamssingleresult
;; CHECK-NEXT: (local.tee $2
;; CHECK-NEXT: (call $multiparamssingleresult
;; CHECK-NEXT: (local.tee $0
;; CHECK-NEXT: (i32.const 3)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.tee $1
;; CHECK-NEXT: (v128.const i32x4 0x00000001 0x00000002 0x00000003 0x00000004)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
;; CHECK-NEXT: )
;; CHECK-NEXT: (local.get $2)
;; CHECK-NEXT: )
(func $test_multi_params_single_result (result v128)
(call $multiparamssingleresult
(i32.const 3)
(v128.const i32x4 1 2 3 4))
)
;; this function should not be traced
;; CHECK: (func $test_dont_trace_me
;; CHECK-NEXT: (call $donttraceme)
;; CHECK-NEXT: )
(func $test_dont_trace_me
(call $donttraceme)
)
)