diff options
Diffstat (limited to 'test/lit')
-rw-r--r-- | test/lit/ctor-eval/extern.wast | 8 | ||||
-rw-r--r-- | test/lit/exec/i31.wast | 8 | ||||
-rw-r--r-- | test/lit/i31-new.wast | 18 | ||||
-rw-r--r-- | test/lit/passes/coalesce-locals-gc.wast | 8 | ||||
-rw-r--r-- | test/lit/passes/dae-gc.wast | 10 | ||||
-rw-r--r-- | test/lit/passes/dae_all-features.wast | 2 | ||||
-rw-r--r-- | test/lit/passes/dce_all-features.wast | 8 | ||||
-rw-r--r-- | test/lit/passes/global-refining.wast | 6 | ||||
-rw-r--r-- | test/lit/passes/gufa-refs.wast | 16 | ||||
-rw-r--r-- | test/lit/passes/local-subtyping.wast | 28 | ||||
-rw-r--r-- | test/lit/passes/remove-unused-brs-gc.wast | 4 | ||||
-rw-r--r-- | test/lit/passes/remove-unused-brs.wast | 4 | ||||
-rw-r--r-- | test/lit/passes/signature-pruning.wast | 4 | ||||
-rw-r--r-- | test/lit/passes/signature-refining.wast | 4 | ||||
-rw-r--r-- | test/lit/passes/type-refining.wast | 12 | ||||
-rw-r--r-- | test/lit/wat-kitchen-sink.wast | 4 |
16 files changed, 81 insertions, 63 deletions
diff --git a/test/lit/ctor-eval/extern.wast b/test/lit/ctor-eval/extern.wast index b279b718e..5bb5c8cbc 100644 --- a/test/lit/ctor-eval/extern.wast +++ b/test/lit/ctor-eval/extern.wast @@ -20,7 +20,7 @@ ;; CHECK: (global $ctor-eval$global_1 (ref $struct) (struct.new $struct ;; CHECK-NEXT: (extern.externalize - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -38,7 +38,7 @@ ;; serialization of an externalized i31 is what is written here. But the add ;; will be evalled out. (extern.externalize - (i31.new + (ref.i31 (i32.add (i32.const 41) (i32.const 1) @@ -62,7 +62,7 @@ ;; This will add a global that contains an externalization operation. (struct.new $struct (extern.externalize - (i31.new + (ref.i31 (i32.const 1) ) ) @@ -72,7 +72,7 @@ ;; CHECK: (func $test1_3 (type $2) (result externref) ;; CHECK-NEXT: (extern.externalize -;; CHECK-NEXT: (i31.new +;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/exec/i31.wast b/test/lit/exec/i31.wast index c8b43e6ce..cd25dffa0 100644 --- a/test/lit/exec/i31.wast +++ b/test/lit/exec/i31.wast @@ -24,7 +24,7 @@ ;; CHECK-NEXT: [fuzz-exec] note result: non-null => 0 (func "non-null" (result i32) (ref.is_null - (i31.new + (ref.i31 (i32.const 1234) ) ) @@ -34,7 +34,7 @@ ;; CHECK-NEXT: [fuzz-exec] note result: nn-u => 2147483647 (func "nn-u" (result i32) (i31.get_u - (i31.new + (ref.i31 (i32.const 0xffffffff) ) ) @@ -44,7 +44,7 @@ ;; CHECK-NEXT: [fuzz-exec] note result: nn-s => -1 (func "nn-s" (result i32) (i31.get_s - (i31.new + (ref.i31 (i32.const 0xffffffff) ) ) @@ -55,7 +55,7 @@ (func "zero-is-not-null" (result i32) (local $ref (ref null i31)) (local.set $ref - (i31.new + (ref.i31 (i32.const 0) ) ) diff --git a/test/lit/i31-new.wast b/test/lit/i31-new.wast new file mode 100644 index 000000000..9d47b3ec9 --- /dev/null +++ b/test/lit/i31-new.wast @@ -0,0 +1,18 @@ +;; NOTE: Assertions have been generated by update_lit_checks.py and should not be edited. + +;; Check that we still parse the legacy i31.new instruction. + +;; RUN: wasm-opt %s -all -S -o - | filecheck %s + +(module + ;; CHECK: (func $test (type $0) (result i31ref) + ;; CHECK-NEXT: (ref.i31 + ;; CHECK-NEXT: (i32.const 0) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $test (result i31ref) + (i31.new + (i32.const 0) + ) + ) +) diff --git a/test/lit/passes/coalesce-locals-gc.wast b/test/lit/passes/coalesce-locals-gc.wast index 6e3381e8e..b9224f59e 100644 --- a/test/lit/passes/coalesce-locals-gc.wast +++ b/test/lit/passes/coalesce-locals-gc.wast @@ -17,12 +17,12 @@ (global $global (ref null $array) (ref.null $array)) ;; CHECK: (global $nn-tuple-global (mut ((ref any) i32)) (tuple.make - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: )) - (global $nn-tuple-global (mut ((ref any) i32)) (tuple.make (i31.new (i32.const 0)) (i32.const 1))) + (global $nn-tuple-global (mut ((ref any) i32)) (tuple.make (ref.i31 (i32.const 0)) (i32.const 1))) ;; CHECK: (func $test-dead-get-non-nullable (type $6) (param $0 (ref struct)) @@ -160,7 +160,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block (result i31ref) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -230,7 +230,7 @@ ;; CHECK-NEXT: (ref.test (ref i31) ;; CHECK-NEXT: (ref.cast i31ref ;; CHECK-NEXT: (block (result i31ref) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) diff --git a/test/lit/passes/dae-gc.wast b/test/lit/passes/dae-gc.wast index 5ca1d0373..02a2462db 100644 --- a/test/lit/passes/dae-gc.wast +++ b/test/lit/passes/dae-gc.wast @@ -10,7 +10,7 @@ ;; CHECK-NEXT: ) (func $foo (call $bar - (i31.new + (ref.i31 (i32.const 1) ) ) @@ -19,7 +19,7 @@ ;; CHECK-NEXT: (local $0 i31ref) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (local.tee $0 - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 2) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -35,7 +35,7 @@ ;; and also add a ref.as_non_null so that the outside still receives the ;; same type as before (local.tee $0 - (i31.new + (ref.i31 (i32.const 2) ) ) @@ -134,7 +134,7 @@ ;; CHECK-NEXT: (ref.null none) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call $bar - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -149,7 +149,7 @@ ) (call $bar (ref.null none) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) diff --git a/test/lit/passes/dae_all-features.wast b/test/lit/passes/dae_all-features.wast index 61591e977..dee38f646 100644 --- a/test/lit/passes/dae_all-features.wast +++ b/test/lit/passes/dae_all-features.wast @@ -542,7 +542,7 @@ ;; CHECK-NEXT: ) (func $1 (call $0 - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) ) diff --git a/test/lit/passes/dce_all-features.wast b/test/lit/passes/dce_all-features.wast index d79426dad..255ca82fd 100644 --- a/test/lit/passes/dce_all-features.wast +++ b/test/lit/passes/dce_all-features.wast @@ -1437,7 +1437,7 @@ ;; CHECK-NEXT: (if (result i31ref) ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: (unreachable) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1457,7 +1457,7 @@ (block (result i31ref) (unreachable) ) - (i31.new + (ref.i31 (i32.const 42) ) ) @@ -1473,7 +1473,7 @@ ;; CHECK-NEXT: (unreachable) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (catch_all - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 42) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -1491,7 +1491,7 @@ ) ) (catch_all - (i31.new + (ref.i31 (i32.const 42) ) ) diff --git a/test/lit/passes/global-refining.wast b/test/lit/passes/global-refining.wast index 48538a01d..8f0b3c247 100644 --- a/test/lit/passes/global-refining.wast +++ b/test/lit/passes/global-refining.wast @@ -123,7 +123,7 @@ ;; CHECK: (func $foo (type $0) ;; CHECK-NEXT: (global.set $global - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -142,7 +142,7 @@ ;; CHECK-NEXT: ) ;; CLOSD: (func $foo (type $0) ;; CLOSD-NEXT: (global.set $global - ;; CLOSD-NEXT: (i31.new + ;; CLOSD-NEXT: (ref.i31 ;; CLOSD-NEXT: (i32.const 0) ;; CLOSD-NEXT: ) ;; CLOSD-NEXT: ) @@ -160,7 +160,7 @@ ;; CLOSD-NEXT: ) ;; CLOSD-NEXT: ) (func $foo - (global.set $global (i31.new (i32.const 0))) + (global.set $global (ref.i31 (i32.const 0))) (global.set $global (struct.new_default $struct)) (global.set $global (ref.null eq)) ;; These nulls will be updated. diff --git a/test/lit/passes/gufa-refs.wast b/test/lit/passes/gufa-refs.wast index 0e081637b..ee125b1f2 100644 --- a/test/lit/passes/gufa-refs.wast +++ b/test/lit/passes/gufa-refs.wast @@ -2557,7 +2557,7 @@ ;; CHECK-NEXT: (ref.cast nullref ;; CHECK-NEXT: (select (result i31ref) ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call $import) @@ -2600,7 +2600,7 @@ (ref.cast (ref null $struct) (select (ref.null $struct) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) (call $import) ) ) @@ -3675,7 +3675,7 @@ ;; CHECK-NEXT: (local $chars (ref null $chars)) ;; CHECK-NEXT: (local.set $bytes ;; CHECK-NEXT: (array.new_fixed $bytes 1 - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -3714,7 +3714,7 @@ ;; there. (local.set $bytes (array.new_fixed $bytes 1 - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) (local.set $chars @@ -3763,7 +3763,7 @@ ;; CHECK-NEXT: (local $chars (ref null $chars)) ;; CHECK-NEXT: (local.set $bytes ;; CHECK-NEXT: (array.new_fixed $bytes 1 - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -3803,7 +3803,7 @@ (local $chars (ref null $chars)) (local.set $bytes (array.new_fixed $bytes 1 - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) (local.set $chars @@ -4125,7 +4125,7 @@ ;; CHECK: (func $i31 (type $0) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (i31.get_s - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -4134,7 +4134,7 @@ (func $i31 (drop (i31.get_s - (i31.new + (ref.i31 (i32.const 0) ) ) diff --git a/test/lit/passes/local-subtyping.wast b/test/lit/passes/local-subtyping.wast index c86f4d645..3d4d392a9 100644 --- a/test/lit/passes/local-subtyping.wast +++ b/test/lit/passes/local-subtyping.wast @@ -30,10 +30,10 @@ ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (if (result (ref i31)) ;; CHECK-NEXT: (local.get $x) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -41,11 +41,11 @@ ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (block $block (result (ref i31)) ;; CHECK-NEXT: (br $block - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -55,16 +55,16 @@ (drop (if (result anyref) (local.get $x) - (i31.new (i32.const 0)) - (i31.new (i32.const 1)) + (ref.i31 (i32.const 0)) + (ref.i31 (i32.const 1)) ) ) (drop (block $block (result anyref) (br $block - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) - (i31.new (i32.const 1)) + (ref.i31 (i32.const 1)) ) ) ) @@ -99,7 +99,7 @@ ;; CHECK-NEXT: (local $z structref) ;; CHECK-NEXT: (local $w (ref func)) ;; CHECK-NEXT: (local.set $x - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -107,12 +107,12 @@ ;; CHECK-NEXT: (local.get $struct) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $y - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.set $y - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 1) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -136,17 +136,17 @@ (local $w funcref) ;; x is assigned two different types with a new LUB possible (local.set $x - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) (local.set $x (local.get $struct) ) ;; y and z are assigned the same more specific type twice (local.set $y - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) (local.set $y - (i31.new (i32.const 1)) + (ref.i31 (i32.const 1)) ) (local.set $z (local.get $struct) diff --git a/test/lit/passes/remove-unused-brs-gc.wast b/test/lit/passes/remove-unused-brs-gc.wast index 5b4e09a25..ce06b89ef 100644 --- a/test/lit/passes/remove-unused-brs-gc.wast +++ b/test/lit/passes/remove-unused-brs-gc.wast @@ -162,7 +162,7 @@ ;; CHECK-NEXT: (block $label$1 (result (ref i31)) ;; CHECK-NEXT: (drop ;; CHECK-NEXT: (br $label$1 - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -178,7 +178,7 @@ ;; handle that properly (do nothing without hitting an assertion). (br_on_cast $label$1 (ref any) (ref i31) (br_on_cast $label$1 (ref any) (ref i31) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) ) diff --git a/test/lit/passes/remove-unused-brs.wast b/test/lit/passes/remove-unused-brs.wast index e1db006db..82963f792 100644 --- a/test/lit/passes/remove-unused-brs.wast +++ b/test/lit/passes/remove-unused-brs.wast @@ -8,7 +8,7 @@ ;; CHECK: (func $selectify-fresh-lub (type $2) (param $x i32) (result anyref) ;; CHECK-NEXT: (select (result i31ref) ;; CHECK-NEXT: (ref.null none) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (local.get $x) @@ -21,7 +21,7 @@ (ref.null none) ) (return - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) ) diff --git a/test/lit/passes/signature-pruning.wast b/test/lit/passes/signature-pruning.wast index 3e9d0742f..eaa05ac46 100644 --- a/test/lit/passes/signature-pruning.wast +++ b/test/lit/passes/signature-pruning.wast @@ -797,7 +797,7 @@ ;; CHECK-NEXT: (local.get $anyref) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call $bar - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -808,7 +808,7 @@ (func $bar (type $sig-bar) (param $anyref anyref) (drop (local.get $anyref)) ;; Mixing a null with something else prevents optimization, of course. - (call $bar (i31.new (i32.const 0))) + (call $bar (ref.i31 (i32.const 0))) (call $bar (ref.null none)) ) ) diff --git a/test/lit/passes/signature-refining.wast b/test/lit/passes/signature-refining.wast index 2ac1aba78..6516b4a24 100644 --- a/test/lit/passes/signature-refining.wast +++ b/test/lit/passes/signature-refining.wast @@ -96,7 +96,7 @@ ;; CHECK-NEXT: (local.get $struct) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (call_ref $sig - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (ref.func $func) @@ -109,7 +109,7 @@ (local.get $struct) ) (call_ref $sig - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) (ref.func $func) ) ) diff --git a/test/lit/passes/type-refining.wast b/test/lit/passes/type-refining.wast index 6d0c2257a..e41cd9261 100644 --- a/test/lit/passes/type-refining.wast +++ b/test/lit/passes/type-refining.wast @@ -14,13 +14,13 @@ ;; CHECK: (func $work (type $1) (param $struct (ref $struct)) ;; CHECK-NEXT: (struct.set $struct 1 ;; CHECK-NEXT: (local.get $struct) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) ;; CHECK-NEXT: (struct.set $struct 2 ;; CHECK-NEXT: (local.get $struct) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -33,11 +33,11 @@ (func $work (param $struct (ref $struct)) (struct.set $struct 1 (local.get $struct) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) (struct.set $struct 2 (local.get $struct) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) (drop ;; The type of this struct.get must be updated after the field's type @@ -66,7 +66,7 @@ ;; CHECK-NEXT: ) ;; CHECK-NEXT: (struct.set $struct 0 ;; CHECK-NEXT: (local.get $struct) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (i32.const 0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) @@ -77,7 +77,7 @@ ) (struct.set $struct 0 (local.get $struct) - (i31.new (i32.const 0)) + (ref.i31 (i32.const 0)) ) ) ) diff --git a/test/lit/wat-kitchen-sink.wast b/test/lit/wat-kitchen-sink.wast index dc6ebb4c8..3b42db434 100644 --- a/test/lit/wat-kitchen-sink.wast +++ b/test/lit/wat-kitchen-sink.wast @@ -1454,13 +1454,13 @@ ) ;; CHECK: (func $i31-new (type $28) (param $0 i32) (result i31ref) - ;; CHECK-NEXT: (i31.new + ;; CHECK-NEXT: (ref.i31 ;; CHECK-NEXT: (local.get $0) ;; CHECK-NEXT: ) ;; CHECK-NEXT: ) (func $i31-new (param i32) (result i31ref) local.get 0 - i31.new + ref.i31 ) ;; CHECK: (func $i31-get (type $29) (param $0 i31ref) |