diff options
Diffstat (limited to 'test/lit')
-rw-r--r-- | test/lit/arrays.wast | 34 | ||||
-rw-r--r-- | test/lit/binary/annotated-array-len.test | 18 | ||||
-rw-r--r-- | test/lit/binary/annotated-array-len.test.wasm | bin | 0 -> 36 bytes | |||
-rw-r--r-- | test/lit/passes/gufa-refs.wast | 2 | ||||
-rw-r--r-- | test/lit/passes/optimize-instructions-gc.wast | 4 |
5 files changed, 46 insertions, 12 deletions
diff --git a/test/lit/arrays.wast b/test/lit/arrays.wast index b79ca1844..31aead1cd 100644 --- a/test/lit/arrays.wast +++ b/test/lit/arrays.wast @@ -11,25 +11,25 @@ (module (type $byte-array (array (mut i8))) + ;; CHECK: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) + ;; CHECK: (type $ref|array|_=>_i32 (func (param (ref array)) (result i32))) ;; CHECK: (type $nullref_=>_i32 (func (param nullref) (result i32))) - ;; CHECK: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) - ;; CHECK: (func $len (param $a (ref array)) (result i32) - ;; CHECK-NEXT: (array.len array + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (local.get $a) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) + ;; ROUNDTRIP: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) + ;; ROUNDTRIP: (type $ref|array|_=>_i32 (func (param (ref array)) (result i32))) ;; ROUNDTRIP: (type $nullref_=>_i32 (func (param nullref) (result i32))) - ;; ROUNDTRIP: (type $arrayref_=>_i32 (func (param arrayref) (result i32))) - ;; ROUNDTRIP: (func $len (param $a (ref array)) (result i32) - ;; ROUNDTRIP-NEXT: (array.len array + ;; ROUNDTRIP-NEXT: (array.len ;; ROUNDTRIP-NEXT: (local.get $a) ;; ROUNDTRIP-NEXT: ) ;; ROUNDTRIP-NEXT: ) @@ -41,12 +41,12 @@ ) ;; CHECK: (func $impossible-len (param $none nullref) (result i32) - ;; CHECK-NEXT: (array.len none + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (local.get $none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; ROUNDTRIP: (func $impossible-len (param $none nullref) (result i32) - ;; ROUNDTRIP-NEXT: (array.len none + ;; ROUNDTRIP-NEXT: (array.len ;; ROUNDTRIP-NEXT: (local.get $none) ;; ROUNDTRIP-NEXT: ) ;; ROUNDTRIP-NEXT: ) @@ -57,7 +57,7 @@ ) ;; CHECK: (func $unreachable-len (param $a arrayref) (result i32) - ;; CHECK-NEXT: (array.len array + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -69,4 +69,20 @@ (unreachable) ) ) + + ;; CHECK: (func $unannotated-len (param $a arrayref) (result i32) + ;; CHECK-NEXT: (array.len + ;; CHECK-NEXT: (local.get $a) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; ROUNDTRIP: (func $unannotated-len (param $a arrayref) (result i32) + ;; ROUNDTRIP-NEXT: (array.len + ;; ROUNDTRIP-NEXT: (local.get $a) + ;; ROUNDTRIP-NEXT: ) + ;; ROUNDTRIP-NEXT: ) + (func $unannotated-len (param $a arrayref) (result i32) + (array.len + (local.get $a) + ) + ) ) diff --git a/test/lit/binary/annotated-array-len.test b/test/lit/binary/annotated-array-len.test new file mode 100644 index 000000000..a8eb08fe7 --- /dev/null +++ b/test/lit/binary/annotated-array-len.test @@ -0,0 +1,18 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. + +;; Test the we can properly parse the annotated array.len format that we no +;; longer emit. + +;; RUN: wasm-dis %s.wasm -all --nominal | filecheck %s + +;; CHECK: (type $none_=>_i32 (func_subtype (result i32) func)) + +;; CHECK: (type $[mut:i8] (array_subtype (mut i8) data)) + +;; CHECK: (func $0 (type $none_=>_i32) (result i32) +;; CHECK-NEXT: (array.len +;; CHECK-NEXT: (array.new_default $[mut:i8] +;; CHECK-NEXT: (i32.const 0) +;; CHECK-NEXT: ) +;; CHECK-NEXT: ) +;; CHECK-NEXT: ) diff --git a/test/lit/binary/annotated-array-len.test.wasm b/test/lit/binary/annotated-array-len.test.wasm Binary files differnew file mode 100644 index 000000000..b199f58de --- /dev/null +++ b/test/lit/binary/annotated-array-len.test.wasm diff --git a/test/lit/passes/gufa-refs.wast b/test/lit/passes/gufa-refs.wast index 09de96fca..ec58e10a0 100644 --- a/test/lit/passes/gufa-refs.wast +++ b/test/lit/passes/gufa-refs.wast @@ -4150,7 +4150,7 @@ ;; CHECK: (func $arrays (type $ref|$B|_=>_none) (param $B (ref $B)) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (array.len $B + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (array.init_static $B ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: (ref.null none) diff --git a/test/lit/passes/optimize-instructions-gc.wast b/test/lit/passes/optimize-instructions-gc.wast index c0d106250..fb50d103f 100644 --- a/test/lit/passes/optimize-instructions-gc.wast +++ b/test/lit/passes/optimize-instructions-gc.wast @@ -766,7 +766,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (array.len $array + ;; CHECK-NEXT: (array.len ;; CHECK-NEXT: (local.get $y) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -801,7 +801,7 @@ ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: (drop - ;; NOMNL-NEXT: (array.len $array + ;; NOMNL-NEXT: (array.len ;; NOMNL-NEXT: (local.get $y) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) |