blob: a2973ad9f65df51fee758050179bb2a8ab055b1b [file] [edit]
;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited.
;; RUN: wasm-ctor-eval %s --ctors=return,drop,passthrough --kept-exports=return,drop,passthrough --quiet -all -S -o - | filecheck %s
;; The relaxed SIMD operation here cannot be optimized by wasm-ctor-eval, as we
;; do not know how the VM that the code will run on should execute it. We can
;; optimize nothing here, and should not error.
(module
;; CHECK: (type $0 (func (result v128)))
;; CHECK: (type $1 (func))
;; CHECK: (export "return" (func $return))
;; CHECK: (export "drop" (func $drop))
;; CHECK: (export "passthrough" (func $passthrough))
;; CHECK: (func $return (type $0) (result v128)
;; CHECK-NEXT: (f32x4.relaxed_max
;; CHECK-NEXT: (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
;; CHECK-NEXT: (v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $return (export "return") (result v128)
;; This function returns a nonconstant value directly.
(f32x4.relaxed_max
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
(v128.const i32x4 0x00000000 0x00000000 0x00000000 0x00000000)
)
)
;; CHECK: (func $drop (type $1)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (call $return)
;; CHECK-NEXT: )
;; CHECK-NEXT: )
(func $drop (export "drop")
;; This function swallows a nonconstant value.
(drop
(call $return)
)
)
;; CHECK: (func $passthrough (type $0) (result v128)
;; CHECK-NEXT: (call $return)
;; CHECK-NEXT: )
(func $passthrough (export "passthrough") (result v128)
;; This function passes through a nonconstant value.
(call $return)
)
)