summaryrefslogtreecommitdiff
path: root/test/lit
diff options
context:
space:
mode:
Diffstat (limited to 'test/lit')
-rw-r--r--test/lit/array-new-fixed.wast36
-rw-r--r--test/lit/if-then-else.wast48
-rw-r--r--test/lit/ref_cast_test.wast173
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)
+ )
+ )
+ )
+)