diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/array-new-fixed.wast | 36 | ||||
-rw-r--r-- | test/lit/if-then-else.wast | 48 | ||||
-rw-r--r-- | test/lit/ref_cast_test.wast | 173 |
3 files changed, 257 insertions, 0 deletions
diff --git a/test/lit/array-new-fixed.wast b/test/lit/array-new-fixed.wast new file mode 100644 index 000000000..ef20bf5f8 --- /dev/null +++ b/test/lit/array-new-fixed.wast @@ -0,0 +1,36 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. +;; RUN: wasm-opt -all %s -S -o - | filecheck %s + +;; Check that we can optionally specify the size of the array. +(module + ;; CHECK: (type $array (array i32)) + (type $array (array i32)) + ;; CHECK: (func $test (type $none_=>_none) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (array.new_fixed $array + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (array.new_fixed $array + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $test + (drop + (array.new_fixed $array + (i32.const 0) + (i32.const 1) + ) + ) + (drop + (array.new_fixed $array 2 + (i32.const 0) + (i32.const 1) + ) + ) + ) +) diff --git a/test/lit/if-then-else.wast b/test/lit/if-then-else.wast new file mode 100644 index 000000000..9d457bef1 --- /dev/null +++ b/test/lit/if-then-else.wast @@ -0,0 +1,48 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. +;; RUN: wasm-opt %s -S -o - | filecheck %s + +;; Check that an empty then or else clause is allowed. +(module + ;; CHECK: (func $test (param $0 i32) (result i32) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (if + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: (return + ;; CHECK-NEXT: (i32.const 1) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (block + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (return + ;; CHECK-NEXT: (i32.const 2) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $test (param i32) (result i32) + (if + (local.get $0) + (then) + (else + (return (i32.const 0)) + ) + ) + (if + (local.get $0) + (then + (return + (i32.const 1) + ) + ) + (else) + ) + (return + (i32.const 2) + ) + ) +) diff --git a/test/lit/ref_cast_test.wast b/test/lit/ref_cast_test.wast new file mode 100644 index 000000000..c44278c13 --- /dev/null +++ b/test/lit/ref_cast_test.wast @@ -0,0 +1,173 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. +;; RUN: wasm-opt -all %s -S -o - | filecheck %s + +;; Check that both the legacy and the standard syntax for ref.test and +;; ref.cast work +(module + ;; CHECK: (type $array (array i32)) + (type $array (array i32)) + ;; CHECK: (func $test (type $eqref_=>_none) (param $0 eqref) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast null $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast null i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast null $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.cast null i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test null $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test null i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test null $array + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.test null i31 + ;; CHECK-NEXT: (local.get $0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $test (param eqref) + (drop + (ref.cast $array + (local.get 0) + ) + ) + (drop + (ref.cast null $array + (local.get 0) + ) + ) + (drop + (ref.cast i31 + (local.get 0) + ) + ) + (drop + (ref.cast null i31 + (local.get 0) + ) + ) + (drop + (ref.cast (ref $array) + (local.get 0) + ) + ) + (drop + (ref.cast (ref null $array) + (local.get 0) + ) + ) + (drop + (ref.cast (ref i31) + (local.get 0) + ) + ) + (drop + (ref.cast i31ref + (local.get 0) + ) + ) + (drop + (ref.test $array + (local.get 0) + ) + ) + (drop + (ref.test null $array + (local.get 0) + ) + ) + (drop + (ref.test i31 + (local.get 0) + ) + ) + (drop + (ref.test null i31 + (local.get 0) + ) + ) + (drop + (ref.test (ref $array) + (local.get 0) + ) + ) + (drop + (ref.test (ref null $array) + (local.get 0) + ) + ) + (drop + (ref.test (ref i31) + (local.get 0) + ) + ) + (drop + (ref.test i31ref + (local.get 0) + ) + ) + ) +) |