| ;; 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) |
| ) |
| ) |
| |