diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/lit/passes/roundtrip.wast | 66 | ||||
-rw-r--r-- | test/passes/translate-to-fuzz_all-features_metrics_noprint.txt | 72 |
2 files changed, 103 insertions, 35 deletions
diff --git a/test/lit/passes/roundtrip.wast b/test/lit/passes/roundtrip.wast index 59e303eaf..8fb69cb7d 100644 --- a/test/lit/passes/roundtrip.wast +++ b/test/lit/passes/roundtrip.wast @@ -42,4 +42,70 @@ ) ) ) + + ;; CHECK: (func $string_view_casts (type $2) (param $x stringview_wtf8) (param $y stringview_wtf16) (param $z stringview_iter) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_non_null + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_non_null + ;; CHECK-NEXT: (local.get $y) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (ref.as_non_null + ;; CHECK-NEXT: (local.get $z) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $x) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $y) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: (drop + ;; CHECK-NEXT: (local.get $z) + ;; CHECK-NEXT: ) + ;; CHECK-NEXT: ) + (func $string_view_casts + ;; ref.cast of string views is not allowed in binaries: replace with + ;; ref.as_non_null, or remove if it is a no-op. + (param $x (ref null stringview_wtf8)) + (param $y (ref null stringview_wtf16)) + (param $z (ref null stringview_iter)) + ;; Here we still need a cast to non-null. + (drop + (ref.cast (ref stringview_wtf8) + (local.get $x) + ) + ) + (drop + (ref.cast (ref stringview_wtf16) + (local.get $y) + ) + ) + (drop + (ref.cast (ref stringview_iter) + (local.get $z) + ) + ) + ;; Here we do not need the cast. + (drop + (ref.cast (ref null stringview_wtf8) + (local.get $x) + ) + ) + (drop + (ref.cast (ref null stringview_wtf16) + (local.get $y) + ) + ) + (drop + (ref.cast (ref null stringview_iter) + (local.get $z) + ) + ) + ) ) diff --git a/test/passes/translate-to-fuzz_all-features_metrics_noprint.txt b/test/passes/translate-to-fuzz_all-features_metrics_noprint.txt index 20b145a95..4ead62655 100644 --- a/test/passes/translate-to-fuzz_all-features_metrics_noprint.txt +++ b/test/passes/translate-to-fuzz_all-features_metrics_noprint.txt @@ -1,45 +1,47 @@ total - [exports] : 4 - [funcs] : 6 + [exports] : 5 + [funcs] : 7 [globals] : 14 [imports] : 5 [memories] : 1 [memory-data] : 20 - [table-data] : 1 + [table-data] : 2 [tables] : 1 [tags] : 1 - [total] : 533 - [vars] : 24 - ArrayNew : 11 - ArrayNewFixed : 2 - AtomicFence : 1 - Binary : 79 - Block : 57 - Break : 6 - Call : 8 - Const : 137 - Drop : 1 - GlobalGet : 28 - GlobalSet : 28 - If : 15 + [total] : 467 + [vars] : 40 + ArrayGet : 1 + ArrayLen : 1 + ArrayNew : 6 + ArrayNewFixed : 1 + Binary : 67 + Block : 44 + Break : 5 + Call : 21 + Const : 106 + Drop : 7 + GlobalGet : 20 + GlobalSet : 18 + If : 14 Load : 17 - LocalGet : 40 - LocalSet : 23 - Loop : 9 - Nop : 4 + LocalGet : 45 + LocalSet : 28 + Loop : 3 + MemoryFill : 1 + Nop : 5 RefAs : 1 - RefFunc : 2 - RefI31 : 2 - RefIsNull : 1 - RefNull : 5 - Return : 2 - SIMDExtract : 2 - Select : 1 - Store : 2 - StringConst : 4 + RefCast : 1 + RefEq : 1 + RefFunc : 3 + RefI31 : 4 + RefNull : 3 + Return : 3 + Select : 2 + Store : 1 + StringConst : 3 + StringEncode : 1 StringEq : 1 - StructGet : 1 - StructNew : 9 - TupleMake : 4 - Unary : 15 - Unreachable : 15 + StructNew : 5 + TupleMake : 5 + Unary : 13 + Unreachable : 10 |