diff options
Diffstat (limited to 'test/lit')
-rw-r--r-- | test/lit/fuzz-types/isorecursive.test | 36 | ||||
-rw-r--r-- | test/lit/fuzz-types/nominal.test | 28 | ||||
-rw-r--r-- | test/lit/fuzz-types/structural.test | 30 | ||||
-rw-r--r-- | test/lit/passes/flatten_all-features.wast | 40 | ||||
-rw-r--r-- | test/lit/passes/instrument-locals_all-features_disable-typed-function-references.wast | 20 | ||||
-rw-r--r-- | test/lit/passes/optimize-instructions-gc.wast | 8 |
6 files changed, 74 insertions, 88 deletions
diff --git a/test/lit/fuzz-types/isorecursive.test b/test/lit/fuzz-types/isorecursive.test index 33b7974b3..9165d9265 100644 --- a/test/lit/fuzz-types/isorecursive.test +++ b/test/lit/fuzz-types/isorecursive.test @@ -2,25 +2,25 @@ ;; CHECK: (rec ;; CHECK-NEXT: (type $0 (struct_subtype data)) -;; CHECK-NEXT: (type $1 (func_subtype (param i31ref) (result (ref extern)) func)) -;; CHECK-NEXT: (type $2 (array_subtype (mut (rtt 0 extern)) data)) -;; CHECK-NEXT: (type $3 (array_subtype (mut (rtt 0 extern)) $2)) -;; CHECK-NEXT: (type $4 (array_subtype (mut (rtt 0 extern)) $2)) -;; CHECK-NEXT: (type $5 (array_subtype (mut (rtt 0 extern)) $3)) -;; CHECK-NEXT: (type $6 (array_subtype (mut (rtt 0 extern)) $3)) -;; CHECK-NEXT: (type $7 (struct_subtype (field (mut (ref $8))) $0)) -;; CHECK-NEXT: (type $8 (struct_subtype (field i16 (mut i32) (mut i16)) $0)) -;; CHECK-NEXT: (type $9 (array_subtype (mut (rtt 0 extern)) $6)) +;; CHECK-NEXT: (type $1 (func_subtype (param i31ref) (result dataref) func)) +;; CHECK-NEXT: (type $2 (array_subtype i32 data)) +;; CHECK-NEXT: (type $3 (array_subtype i32 $2)) +;; CHECK-NEXT: (type $4 (array_subtype i32 $2)) +;; CHECK-NEXT: (type $5 (array_subtype i32 $3)) +;; CHECK-NEXT: (type $6 (array_subtype i32 $3)) +;; CHECK-NEXT: (type $7 (struct_subtype $0)) +;; CHECK-NEXT: (type $8 (struct_subtype $0)) +;; CHECK-NEXT: (type $9 (array_subtype i32 $6)) ;; CHECK-NEXT: (type $10 (struct_subtype $0)) -;; CHECK-NEXT: (type $11 (array_subtype (mut (rtt 0 extern)) $2)) -;; CHECK-NEXT: (type $12 (struct_subtype (field (mut i8) (rtt $0)) $0)) -;; CHECK-NEXT: (type $13 (array_subtype (mut (rtt 0 extern)) $6)) +;; CHECK-NEXT: (type $11 (array_subtype i32 $2)) +;; CHECK-NEXT: (type $12 (struct_subtype $0)) +;; CHECK-NEXT: (type $13 (array_subtype i32 $6)) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (rec -;; CHECK-NEXT: (type $14 (struct_subtype (field funcref f64 (mut (rtt $10)) (ref null $15) i8 (ref null $7)) $10)) -;; CHECK-NEXT: (type $15 (func_subtype (param i31ref) (result (ref extern)) $1)) -;; CHECK-NEXT: (type $16 (array_subtype (mut (rtt 0 extern)) $2)) -;; CHECK-NEXT: (type $17 (struct_subtype (field funcref f64 (mut (rtt $10)) (ref null $15) i8 (ref null $7)) $14)) -;; CHECK-NEXT: (type $18 (struct_subtype (field (mut i8) (rtt $0)) $12)) -;; CHECK-NEXT: (type $19 (func_subtype (param i31ref) (result (ref extern)) $15)) +;; CHECK-NEXT: (type $14 (struct_subtype $10)) +;; CHECK-NEXT: (type $15 (func_subtype (param i31ref) (result dataref) $1)) +;; CHECK-NEXT: (type $16 (array_subtype i32 $2)) +;; CHECK-NEXT: (type $17 (struct_subtype $14)) +;; CHECK-NEXT: (type $18 (struct_subtype (field (mut funcref) (mut (ref null $7)) funcref) $12)) +;; CHECK-NEXT: (type $19 (func_subtype (param i31ref) (result dataref) $15)) ;; CHECK-NEXT: ) diff --git a/test/lit/fuzz-types/nominal.test b/test/lit/fuzz-types/nominal.test index 8ca330adf..248ce6539 100644 --- a/test/lit/fuzz-types/nominal.test +++ b/test/lit/fuzz-types/nominal.test @@ -1,24 +1,22 @@ ;; RUN: wasm-fuzz-types --nominal -v --seed=0 | filecheck %s -;; CHECK: Running with seed 0 -;; CHECK-NEXT: Built 20 types: -;; CHECK-NEXT: (type $0 (struct_subtype (field (ref null $9) (ref $5)) data)) +;; CHECK: (type $0 (struct_subtype (field (ref null $9) (ref $5)) data)) ;; CHECK-NEXT: (type $1 (func_subtype (param (rtt 0 $8)) func)) ;; CHECK-NEXT: (type $2 (struct_subtype (field (mut (rtt $19)) (ref $4)) data)) -;; CHECK-NEXT: (type $3 (struct_subtype (field (mut (rtt $19)) (ref $4) i32 (mut (ref null $2)) (mut f64)) $2)) -;; CHECK-NEXT: (type $4 (struct_subtype (field (mut (rtt $19)) (ref $4)) $2)) -;; CHECK-NEXT: (type $5 (struct_subtype (field (mut (rtt $19)) (ref $4) i32 (mut (ref null $2)) (mut f64) (mut (ref null $11))) $3)) -;; CHECK-NEXT: (type $6 (struct_subtype (field (mut (rtt $19)) (ref $4) i32 (mut (ref null $2)) (mut f64)) $3)) -;; CHECK-NEXT: (type $7 (struct_subtype (field (ref null $9) (ref $5)) $0)) -;; CHECK-NEXT: (type $8 (struct_subtype (field (ref null $9) (ref $5)) $0)) -;; CHECK-NEXT: (type $9 (struct_subtype (field (mut (rtt $19)) (ref $4) i32 (mut (ref null $2)) (mut f64)) $6)) -;; CHECK-NEXT: (type $10 (struct_subtype (field (ref $9) (ref $5) (mut i31ref)) $0)) +;; CHECK-NEXT: (type $3 (struct_subtype (field (mut (rtt $19)) (ref $4) i64 (mut (ref null $2)) (mut i64)) $2)) +;; CHECK-NEXT: (type $4 (struct_subtype (field (mut (rtt $19)) (ref $4) (mut (ref $13))) $2)) +;; CHECK-NEXT: (type $5 (struct_subtype (field (mut (rtt $19)) (ref $4) i64 (mut (ref null $2)) (mut i64)) $3)) +;; CHECK-NEXT: (type $6 (struct_subtype (field (mut (rtt $19)) (ref $4) i64 (mut (ref null $2)) (mut i64)) $3)) +;; CHECK-NEXT: (type $7 (struct_subtype (field (ref null $9) (ref $5) eqref (mut (ref null $3)) (mut (rtt $18)) dataref) $0)) +;; CHECK-NEXT: (type $8 (struct_subtype (field (ref $9) (ref $5) (rtt 2 $1) (mut (rtt $17)) (mut (rtt i31)) (rtt $8)) $0)) +;; CHECK-NEXT: (type $9 (struct_subtype (field (mut (rtt $19)) (ref $4) i64 (mut (ref null $2)) (mut i64) (rtt 2 $15)) $6)) +;; CHECK-NEXT: (type $10 (struct_subtype (field (ref null $9) (ref $5)) $0)) ;; CHECK-NEXT: (type $11 (struct_subtype (field (mut (rtt $19)) (ref $4)) $2)) ;; CHECK-NEXT: (type $12 (struct_subtype (field (ref null $9) (ref $5)) $0)) -;; CHECK-NEXT: (type $13 (struct_subtype (field (mut (rtt $19)) (ref $4) i32 (mut (ref null $2)) (mut f64) (ref null i31)) $6)) -;; CHECK-NEXT: (type $14 (struct_subtype (field (ref $9) (ref $5) (mut i31ref) i8) $10)) +;; CHECK-NEXT: (type $13 (struct_subtype (field (mut (rtt $19)) (ref $4) i64 (mut (ref null $2)) (mut i64)) $6)) +;; CHECK-NEXT: (type $14 (struct_subtype (field (ref null $9) (ref $5)) $10)) ;; CHECK-NEXT: (type $15 (func_subtype (param (rtt 0 $8)) $1)) -;; CHECK-NEXT: (type $16 (struct_subtype (field (mut (rtt $19)) (ref $4)) $2)) -;; CHECK-NEXT: (type $17 (struct_subtype (field (ref $9) (ref $5) (mut i31ref) i8 (mut dataref) (mut i16)) $14)) +;; CHECK-NEXT: (type $16 (struct_subtype (field (mut (rtt $19)) (ref $4) v128) $2)) +;; CHECK-NEXT: (type $17 (struct_subtype (field (ref null $9) (ref $5)) $14)) ;; CHECK-NEXT: (type $18 (struct_subtype (field (ref null $9) (ref $5)) $12)) ;; CHECK-NEXT: (type $19 (func_subtype (param (rtt 0 $8)) $15)) diff --git a/test/lit/fuzz-types/structural.test b/test/lit/fuzz-types/structural.test index 0d81491af..a7b38edb4 100644 --- a/test/lit/fuzz-types/structural.test +++ b/test/lit/fuzz-types/structural.test @@ -1,24 +1,22 @@ ;; RUN: wasm-fuzz-types --structural -v --seed=0 | filecheck %s -;; CHECK: Running with seed 0 -;; CHECK-NEXT: Built 20 types: -;; CHECK-NEXT: (type $0 (struct (field (ref null $3) (ref $5)))) -;; CHECK-NEXT: (type $1 (func (param (rtt 0 $0)))) -;; CHECK-NEXT: (type $2 (struct (field (mut (rtt $1)) (ref $2)))) -;; CHECK-NEXT: (type $3 (struct (field (mut (rtt $1)) (ref $2) i32 (mut (ref null $2)) (mut f64)))) -;; CHECK-NEXT: (type $4 identical to $2) -;; CHECK-NEXT: (type $5 (struct (field (mut (rtt $1)) (ref $2) i32 (mut (ref null $2)) (mut f64) (mut (ref null $2))))) +;; CHECK: (type $0 (struct (field (ref null $9) (ref $3)))) +;; CHECK-NEXT: (type $1 (func (param (rtt 0 $8)))) +;; CHECK-NEXT: (type $2 (struct (field (mut (rtt $1)) (ref $4)))) +;; CHECK-NEXT: (type $3 (struct (field (mut (rtt $1)) (ref $4) i64 (mut (ref null $2)) (mut i64)))) +;; CHECK-NEXT: (type $4 (struct (field (mut (rtt $1)) (ref $4) (mut (ref $3))))) +;; CHECK-NEXT: (type $5 identical to $3) ;; CHECK-NEXT: (type $6 identical to $3) -;; CHECK-NEXT: (type $7 identical to $0) -;; CHECK-NEXT: (type $8 identical to $0) -;; CHECK-NEXT: (type $9 identical to $3) -;; CHECK-NEXT: (type $10 (struct (field (ref $3) (ref $5) (mut i31ref)))) +;; CHECK-NEXT: (type $7 (struct (field (ref null $9) (ref $3) eqref (mut (ref null $3)) (mut (rtt $0)) dataref))) +;; CHECK-NEXT: (type $8 (struct (field (ref $9) (ref $3) (rtt 2 $1) (mut (rtt $0)) (mut (rtt i31)) (rtt $8)))) +;; CHECK-NEXT: (type $9 (struct (field (mut (rtt $1)) (ref $4) i64 (mut (ref null $2)) (mut i64) (rtt 2 $1)))) +;; CHECK-NEXT: (type $10 identical to $0) ;; CHECK-NEXT: (type $11 identical to $2) ;; CHECK-NEXT: (type $12 identical to $0) -;; CHECK-NEXT: (type $13 (struct (field (mut (rtt $1)) (ref $2) i32 (mut (ref null $2)) (mut f64) (ref null i31)))) -;; CHECK-NEXT: (type $14 (struct (field (ref $3) (ref $5) (mut i31ref) i8))) +;; CHECK-NEXT: (type $13 identical to $3) +;; CHECK-NEXT: (type $14 identical to $0) ;; CHECK-NEXT: (type $15 identical to $1) -;; CHECK-NEXT: (type $16 identical to $2) -;; CHECK-NEXT: (type $17 (struct (field (ref $3) (ref $5) (mut i31ref) i8 (mut dataref) (mut i16)))) +;; CHECK-NEXT: (type $16 (struct (field (mut (rtt $1)) (ref $4) v128))) +;; CHECK-NEXT: (type $17 identical to $0) ;; CHECK-NEXT: (type $18 identical to $0) ;; CHECK-NEXT: (type $19 identical to $1) diff --git a/test/lit/passes/flatten_all-features.wast b/test/lit/passes/flatten_all-features.wast index 5e8cfe25c..cafd78a04 100644 --- a/test/lit/passes/flatten_all-features.wast +++ b/test/lit/passes/flatten_all-features.wast @@ -3416,50 +3416,46 @@ ;; value type, we need the value to be set into two locals: one with the outer ;; block's type, and one with its value type. ;; CHECK: (func $subtype (result anyref) - ;; CHECK-NEXT: (local $0 externref) + ;; CHECK-NEXT: (local $0 anyref) ;; CHECK-NEXT: (local $1 anyref) - ;; CHECK-NEXT: (local $2 externref) - ;; CHECK-NEXT: (local $3 externref) - ;; CHECK-NEXT: (local $4 externref) - ;; CHECK-NEXT: (local $5 externref) - ;; CHECK-NEXT: (local $6 externref) - ;; CHECK-NEXT: (local $7 anyref) + ;; CHECK-NEXT: (local $2 anyref) + ;; CHECK-NEXT: (local $3 anyref) + ;; CHECK-NEXT: (local $4 anyref) + ;; CHECK-NEXT: (local $5 anyref) + ;; CHECK-NEXT: (local $6 anyref) ;; CHECK-NEXT: (block $label0 ;; CHECK-NEXT: (block $block ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (ref.null extern) - ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $2 - ;; CHECK-NEXT: (ref.null extern) + ;; CHECK-NEXT: (ref.null any) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (br_if $label0 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $3 - ;; CHECK-NEXT: (local.get $2) + ;; CHECK-NEXT: (local.set $2 + ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $0 - ;; CHECK-NEXT: (local.get $3) + ;; CHECK-NEXT: (local.get $2) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.set $3 ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $5 - ;; CHECK-NEXT: (local.get $4) + ;; CHECK-NEXT: (local.set $4 + ;; CHECK-NEXT: (local.get $3) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $6 - ;; CHECK-NEXT: (local.get $5) + ;; CHECK-NEXT: (local.set $5 + ;; CHECK-NEXT: (local.get $4) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $1 - ;; CHECK-NEXT: (local.get $6) + ;; CHECK-NEXT: (local.get $5) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (local.set $7 + ;; CHECK-NEXT: (local.set $6 ;; CHECK-NEXT: (local.get $1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (return - ;; CHECK-NEXT: (local.get $7) + ;; CHECK-NEXT: (local.get $6) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $subtype (result anyref) diff --git a/test/lit/passes/instrument-locals_all-features_disable-typed-function-references.wast b/test/lit/passes/instrument-locals_all-features_disable-typed-function-references.wast index 8b971cdb8..e736253f6 100644 --- a/test/lit/passes/instrument-locals_all-features_disable-typed-function-references.wast +++ b/test/lit/passes/instrument-locals_all-features_disable-typed-function-references.wast @@ -14,8 +14,6 @@ ;; CHECK: (type $i32_i32_funcref_=>_funcref (func (param i32 i32 funcref) (result funcref))) - ;; CHECK: (type $i32_i32_externref_=>_externref (func (param i32 i32 externref) (result externref))) - ;; CHECK: (type $i32_i32_anyref_=>_anyref (func (param i32 i32 anyref) (result anyref))) ;; CHECK: (type $i32_i32_eqref_=>_eqref (func (param i32 i32 eqref) (result eqref))) @@ -48,10 +46,6 @@ ;; CHECK: (import "env" "set_funcref" (func $set_funcref (param i32 i32 funcref) (result funcref))) - ;; CHECK: (import "env" "get_externref" (func $get_externref (param i32 i32 externref) (result externref))) - - ;; CHECK: (import "env" "set_externref" (func $set_externref (param i32 i32 externref) (result externref))) - ;; CHECK: (import "env" "get_anyref" (func $get_anyref (param i32 i32 anyref) (result anyref))) ;; CHECK: (import "env" "set_anyref" (func $set_anyref (param i32 i32 anyref) (result anyref))) @@ -80,7 +74,7 @@ ;; CHECK-NEXT: (local $z f32) ;; CHECK-NEXT: (local $w f64) ;; CHECK-NEXT: (local $F funcref) - ;; CHECK-NEXT: (local $X externref) + ;; CHECK-NEXT: (local $X anyref) ;; CHECK-NEXT: (local $S v128) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (call $get_i32 @@ -114,7 +108,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $get_externref + ;; CHECK-NEXT: (call $get_anyref ;; CHECK-NEXT: (i32.const 4) ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: (local.get $X) @@ -152,7 +146,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop - ;; CHECK-NEXT: (call $get_externref + ;; CHECK-NEXT: (call $get_anyref ;; CHECK-NEXT: (i32.const 9) ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: (local.get $X) @@ -186,10 +180,10 @@ ;; CHECK-NEXT: (ref.func $test) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $X - ;; CHECK-NEXT: (call $set_externref + ;; CHECK-NEXT: (call $set_anyref ;; CHECK-NEXT: (i32.const 14) ;; CHECK-NEXT: (i32.const 5) - ;; CHECK-NEXT: (call $get_externref + ;; CHECK-NEXT: (call $get_anyref ;; CHECK-NEXT: (i32.const 13) ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: (local.get $X) @@ -232,10 +226,10 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $X - ;; CHECK-NEXT: (call $set_externref + ;; CHECK-NEXT: (call $set_anyref ;; CHECK-NEXT: (i32.const 21) ;; CHECK-NEXT: (i32.const 5) - ;; CHECK-NEXT: (call $get_externref + ;; CHECK-NEXT: (call $get_anyref ;; CHECK-NEXT: (i32.const 20) ;; CHECK-NEXT: (i32.const 5) ;; CHECK-NEXT: (local.get $X) diff --git a/test/lit/passes/optimize-instructions-gc.wast b/test/lit/passes/optimize-instructions-gc.wast index 5f2c25c5d..64213d930 100644 --- a/test/lit/passes/optimize-instructions-gc.wast +++ b/test/lit/passes/optimize-instructions-gc.wast @@ -47,10 +47,10 @@ ;; These functions test if an `if` with subtyped arms is correctly folded ;; 1. if its `ifTrue` and `ifFalse` arms are identical (can fold) ;; CHECK: (func $if-arms-subtype-fold (result anyref) - ;; CHECK-NEXT: (ref.null extern) + ;; CHECK-NEXT: (ref.null any) ;; CHECK-NEXT: ) ;; NOMNL: (func $if-arms-subtype-fold (type $none_=>_anyref) (result anyref) - ;; NOMNL-NEXT: (ref.null extern) + ;; NOMNL-NEXT: (ref.null any) ;; NOMNL-NEXT: ) (func $if-arms-subtype-fold (result anyref) (if (result anyref) @@ -63,14 +63,14 @@ ;; CHECK: (func $if-arms-subtype-nofold (result anyref) ;; CHECK-NEXT: (if (result anyref) ;; CHECK-NEXT: (i32.const 0) - ;; CHECK-NEXT: (ref.null extern) + ;; CHECK-NEXT: (ref.null any) ;; CHECK-NEXT: (ref.null func) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; NOMNL: (func $if-arms-subtype-nofold (type $none_=>_anyref) (result anyref) ;; NOMNL-NEXT: (if (result anyref) ;; NOMNL-NEXT: (i32.const 0) - ;; NOMNL-NEXT: (ref.null extern) + ;; NOMNL-NEXT: (ref.null any) ;; NOMNL-NEXT: (ref.null func) ;; NOMNL-NEXT: ) ;; NOMNL-NEXT: ) |