summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/lit/wat-kitchen-sink.wast91
1 files changed, 71 insertions, 20 deletions
diff --git a/test/lit/wat-kitchen-sink.wast b/test/lit/wat-kitchen-sink.wast
index f23d494af..8da499174 100644
--- a/test/lit/wat-kitchen-sink.wast
+++ b/test/lit/wat-kitchen-sink.wast
@@ -25,18 +25,6 @@
;; CHECK: (type $8 (func (param anyref)))
- ;; CHECK: (type $many (sub (func (param i32 i64 f32 f64) (result anyref (ref func)))))
-
- ;; CHECK: (type $10 (func))
-
- ;; CHECK: (type $11 (func (param i32)))
-
- ;; CHECK: (type $a0 (array i32))
-
- ;; CHECK: (type $13 (func (param i32 i32 i32)))
-
- ;; CHECK: (type $14 (func (param v128 i32) (result v128)))
-
;; CHECK: (rec
;; CHECK-NEXT: (type $s0 (struct ))
(type $s0 (sub (struct)))
@@ -46,6 +34,18 @@
(rec)
+ ;; CHECK: (type $many (sub (func (param i32 i64 f32 f64) (result anyref (ref func)))))
+
+ ;; CHECK: (type $12 (func))
+
+ ;; CHECK: (type $13 (func (param i32)))
+
+ ;; CHECK: (type $a0 (array i32))
+
+ ;; CHECK: (type $15 (func (param i32 i32 i32)))
+
+ ;; CHECK: (type $16 (func (param v128 i32) (result v128)))
+
;; CHECK: (type $packed-i8 (array (mut i8)))
;; CHECK: (type $packed-i16 (array (mut i16)))
@@ -167,6 +167,9 @@
;; imported memories
(memory (export "mem") (export "mem2") (import "" "mem") 0)
+ ;; imported tables
+ (table (export "tab") (export "tab2") (import "" "tab") 0 funcref)
+
;; imported functions
(func (export "f5.0") (export "f5.1") (import "mod" "f5"))
@@ -180,6 +183,8 @@
;; CHECK: (import "" "mem" (memory $mimport$0 0))
+ ;; CHECK: (import "" "tab" (table $timport$0 0 funcref))
+
;; CHECK: (import "mod" "g1" (global $g1 i32))
;; CHECK: (import "mod" "g2" (global $g2 (mut i64)))
@@ -237,10 +242,52 @@
(data (memory 4) (offset i64.const 0) "64-bit")
- ;; tags
- (tag)
+ ;; tables
;; CHECK: (data $1 (memory $mem-i64) (i64.const 0) "64-bit")
+ ;; CHECK: (table $funcs 1 2 funcref)
+ (table $funcs 1 2 (ref null func))
+
+ ;; CHECK: (table $table-any 3 3 anyref)
+ (table $table-any anyref (elem (item i32.const 0 ref.i31) (ref.null any) (item (ref.i31 (i32.const 0)))))
+
+ ;; elems
+ ;; CHECK: (elem $implicit-elem (table $table-any) (i32.const 0) anyref (ref.i31
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: ) (ref.null none) (ref.i31
+ ;; CHECK-NEXT: (i32.const 0)
+ ;; CHECK-NEXT: ))
+
+ ;; CHECK: (elem $implicit-table (table $timport$0) (i32.const 0) funcref (ref.null nofunc) (ref.null nofunc) (ref.null nofunc))
+ (elem $implicit-table (offset i32.const 0) funcref (ref.null func) (item ref.null func) (item (ref.null func)))
+
+ ;; CHECK: (elem $implicit-table-2 (table $timport$0) (i32.const 1) func)
+ (elem $implicit-table-2 (i32.const 1) funcref)
+
+ ;; CHECK: (elem $implicit-table-indices (table $timport$0) (i32.const 2) func $fimport$0 $1 $f1)
+ (elem $implicit-table-indices (offset (i32.const 2)) func 0 1 2)
+
+ ;; CHECK: (elem $implicit-table-legacy-indices (table $timport$0) (i32.const 3) func $fimport$0 $1 $f1 $f2)
+ (elem $implicit-table-legacy-indices (i32.const 3) 0 1 2 3)
+
+ ;; CHECK: (elem $explicit-table (table $timport$0) (i32.const 0) funcref (ref.null nofunc))
+ (elem $explicit-table (table 0) (offset (i32.const 0)) funcref (item ref.null func))
+
+ ;; CHECK: (elem $explicit-table-named (table $table-any) (i32.const 1) anyref)
+ (elem $explicit-table-named (table $table-any) (i32.const 1) anyref)
+
+ ;; CHECK: (elem $passive (ref null $s0) (struct.new_default $s0) (struct.new_default $s0))
+ (elem $passive (ref null $s0) (item struct.new $s0) (struct.new $s0))
+
+ ;; CHECK: (elem $passive-2 anyref (struct.new_default $s0) (struct.new_default $s0))
+ (elem $passive-2 anyref (item struct.new $s0) (struct.new $s0))
+
+ (elem $declare declare func 0 1 2 3)
+
+ (elem $declare-2 declare funcref (item ref.func 0) (ref.func 1) (item (ref.func 2)))
+
+ ;; tags
+ (tag)
;; CHECK: (elem declare func $ref-func)
;; CHECK: (tag $1)
@@ -265,6 +312,10 @@
;; CHECK: (export "mem2" (memory $mimport$0))
+ ;; CHECK: (export "tab" (table $timport$0))
+
+ ;; CHECK: (export "tab2" (table $timport$0))
+
;; CHECK: (export "f5.0" (func $fimport$0))
;; CHECK: (export "f5.1" (func $fimport$0))
@@ -277,11 +328,11 @@
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
- ;; CHECK: (func $f1 (type $11) (param $0 i32)
+ ;; CHECK: (func $f1 (type $13) (param $0 i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $f1 (param i32))
- ;; CHECK: (func $f2 (type $11) (param $x i32)
+ ;; CHECK: (func $f2 (type $13) (param $x i32)
;; CHECK-NEXT: (nop)
;; CHECK-NEXT: )
(func $f2 (param $x i32))
@@ -2294,7 +2345,7 @@
drop
)
- ;; CHECK: (func $select (type $13) (param $0 i32) (param $1 i32) (param $2 i32)
+ ;; CHECK: (func $select (type $15) (param $0 i32) (param $1 i32) (param $2 i32)
;; CHECK-NEXT: (drop
;; CHECK-NEXT: (select
;; CHECK-NEXT: (local.get $0)
@@ -2586,7 +2637,7 @@
i32x4.extract_lane 3
)
- ;; CHECK: (func $simd-replace (type $14) (param $0 v128) (param $1 i32) (result v128)
+ ;; CHECK: (func $simd-replace (type $16) (param $0 v128) (param $1 i32) (result v128)
;; CHECK-NEXT: (i32x4.replace_lane 2
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
@@ -2624,7 +2675,7 @@
v128.bitselect
)
- ;; CHECK: (func $simd-shift (type $14) (param $0 v128) (param $1 i32) (result v128)
+ ;; CHECK: (func $simd-shift (type $16) (param $0 v128) (param $1 i32) (result v128)
;; CHECK-NEXT: (i8x16.shl
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)
@@ -2679,7 +2730,7 @@
v128.store64_lane 4 align=4 0
)
- ;; CHECK: (func $memory-init (type $13) (param $0 i32) (param $1 i32) (param $2 i32)
+ ;; CHECK: (func $memory-init (type $15) (param $0 i32) (param $1 i32) (param $2 i32)
;; CHECK-NEXT: (memory.init $mem-i32 $passive
;; CHECK-NEXT: (local.get $0)
;; CHECK-NEXT: (local.get $1)