diff options
author | Heejin Ahn <aheejin@gmail.com> | 2023-12-11 17:41:56 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-11 17:41:56 -0800 |
commit | 5db8eb2131bebfed4e0748056d9fafaca60ce83e (patch) | |
tree | 11dc20c6b38cc0b463d00fad219f467ba06f5a60 /test/lit/basic | |
parent | 8613b14d74db8c2c18e144198147feba74b09132 (diff) | |
download | binaryen-5db8eb2131bebfed4e0748056d9fafaca60ce83e.tar.gz binaryen-5db8eb2131bebfed4e0748056d9fafaca60ce83e.tar.bz2 binaryen-5db8eb2131bebfed4e0748056d9fafaca60ce83e.zip |
[test] Tweak RUN commands of test/lit/basic/ (#6159)
This tweaks generated file names and `filecheck` prefixes to be more
(IMHO) consistent. Also shortened binary/BINARY to bin/BIN for
conciseness. This also changes the order of `RUN` commands a little.
And this changes
```console
wasm-opt %t.wast -all -o %t.text.wast -g -S
```
to
```console
wasm-opt %s -all -o %t.text.wast -g -S
```
The current command doesn't take the source file but the generated file
from the command above `wasm-dis`, which is not the behavior of
`check.py`. This changes it back to the original source (`%s`).
As a result of `wasm-opt` change, some tests are now failing because of
the order of `(type)`s. So I just deleted all `CHECK` lines and
regenerated them using `update_lit_checks.py --all-items`. The large
amount of `CHECK` line changes are mainly because I moved `CHECK-TEXT`
before `CHECK-BINARY` and not meaningful.
Diffstat (limited to 'test/lit/basic')
-rw-r--r-- | test/lit/basic/relaxed-simd.wast | 594 | ||||
-rw-r--r-- | test/lit/basic/table-operations.wast | 287 | ||||
-rw-r--r-- | test/lit/basic/typed_continuations.wast | 36 | ||||
-rw-r--r-- | test/lit/basic/types-function-references.wast | 661 |
4 files changed, 785 insertions, 793 deletions
diff --git a/test/lit/basic/relaxed-simd.wast b/test/lit/basic/relaxed-simd.wast index d20e5c42b..0024d5b93 100644 --- a/test/lit/basic/relaxed-simd.wast +++ b/test/lit/basic/relaxed-simd.wast @@ -1,30 +1,17 @@ ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. +;; RUN: wasm-opt %s -all -o %t.text.wast -g -S ;; RUN: wasm-as %s -all -g -o %t.wasm -;; RUN: wasm-dis %t.wasm -all -o %t.wast +;; RUN: wasm-dis %t.wasm -all -o %t.bin.wast ;; RUN: wasm-as %s -all -o %t.nodebug.wasm -;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.nodebug.wast -;; RUN: wasm-opt %t.wast -all -o %t.text.wast -g -S -;; RUN: cat %t.wast | filecheck %s --check-prefix=CHECK-BINARY -;; RUN: cat %t.nodebug.wast | filecheck %s --check-prefix=CHECK-NODEBUG +;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.bin.nodebug.wast ;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT +;; RUN: cat %t.bin.wast | filecheck %s --check-prefix=CHECK-BIN +;; RUN: cat %t.bin.nodebug.wast | filecheck %s --check-prefix=CHECK-BIN-NODEBUG + (module (memory 1 1) - ;; CHECK-BINARY: (type $0 (func (param v128 v128 v128) (result v128))) - - ;; CHECK-BINARY: (type $1 (func (param v128 v128) (result v128))) - - ;; CHECK-BINARY: (type $2 (func (param v128) (result v128))) - - ;; CHECK-BINARY: (memory $0 1 1) - - ;; CHECK-BINARY: (func $i8x16.relaxed_swizzle (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i8x16.relaxed_swizzle - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (type $0 (func (param v128 v128 v128) (result v128))) ;; CHECK-TEXT: (type $1 (func (param v128 v128) (result v128))) @@ -39,6 +26,20 @@ ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (type $0 (func (param v128 v128 v128) (result v128))) + + ;; CHECK-BIN: (type $1 (func (param v128 v128) (result v128))) + + ;; CHECK-BIN: (type $2 (func (param v128) (result v128))) + + ;; CHECK-BIN: (memory $0 1 1) + + ;; CHECK-BIN: (func $i8x16.relaxed_swizzle (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (i8x16.relaxed_swizzle + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i8x16.relaxed_swizzle (param $0 v128) (param $1 v128) (result v128) (i8x16.relaxed_swizzle (local.get $0) @@ -46,74 +47,70 @@ ) ) - ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_s (type $2) (param $0 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_s - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_s (type $2) (param $0 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_s ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i32x4.relaxed_trunc_f32x4_s (type $2) (param $0 v128) (result v128) + ;; CHECK-BIN-NEXT: (i32x4.relaxed_trunc_f32x4_s + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i32x4.relaxed_trunc_f32x4_s (param $0 v128) (result v128) (i32x4.relaxed_trunc_f32x4_s (local.get $0) ) ) - ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f32x4_u (type $2) (param $0 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f32x4_u - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f32x4_u (type $2) (param $0 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f32x4_u ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i32x4.relaxed_trunc_f32x4_u (type $2) (param $0 v128) (result v128) + ;; CHECK-BIN-NEXT: (i32x4.relaxed_trunc_f32x4_u + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i32x4.relaxed_trunc_f32x4_u (param $0 v128) (result v128) (i32x4.relaxed_trunc_f32x4_u (local.get $0) ) ) - ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $2) (param $0 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $2) (param $0 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i32x4.relaxed_trunc_f64x2_s_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-BIN-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i32x4.relaxed_trunc_f64x2_s_zero (param $0 v128) (result v128) (i32x4.relaxed_trunc_f64x2_s_zero (local.get $0) ) ) - ;; CHECK-BINARY: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $2) (param $0 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $2) (param $0 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i32x4.relaxed_trunc_f64x2_u_zero (type $2) (param $0 v128) (result v128) + ;; CHECK-BIN-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i32x4.relaxed_trunc_f64x2_u_zero (param $0 v128) (result v128) (i32x4.relaxed_trunc_f64x2_u_zero (local.get $0) ) ) - ;; CHECK-BINARY: (func $f32x4.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f32x4.relaxed_fma - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $f32x4.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (f32x4.relaxed_fma ;; CHECK-TEXT-NEXT: (local.get $0) @@ -121,6 +118,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f32x4.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (f32x4.relaxed_fma + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f32x4.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.relaxed_fma (local.get $0) @@ -128,13 +132,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $f32x4.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f32x4.relaxed_fms - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (f32x4.relaxed_fms ;; CHECK-TEXT-NEXT: (local.get $0) @@ -142,6 +140,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f32x4.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (f32x4.relaxed_fms + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f32x4.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f32x4.relaxed_fms (local.get $0) @@ -149,13 +154,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $f64x2.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f64x2.relaxed_fma - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (f64x2.relaxed_fma ;; CHECK-TEXT-NEXT: (local.get $0) @@ -163,6 +162,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f64x2.relaxed_fma (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (f64x2.relaxed_fma + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f64x2.relaxed_fma (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.relaxed_fma (local.get $0) @@ -170,13 +176,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $f64x2.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f64x2.relaxed_fms - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (f64x2.relaxed_fms ;; CHECK-TEXT-NEXT: (local.get $0) @@ -184,6 +184,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f64x2.relaxed_fms (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (f64x2.relaxed_fms + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f64x2.relaxed_fms (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (f64x2.relaxed_fms (local.get $0) @@ -192,13 +199,6 @@ ) ) - ;; CHECK-BINARY: (func $i8x16.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i8x16.laneselect - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $i8x16.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (i8x16.laneselect ;; CHECK-TEXT-NEXT: (local.get $0) @@ -206,6 +206,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i8x16.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (i8x16.laneselect + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i8x16.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (i8x16.laneselect (local.get $0) @@ -213,13 +220,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $i16x8.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i16x8.laneselect - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i16x8.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (i16x8.laneselect ;; CHECK-TEXT-NEXT: (local.get $0) @@ -227,6 +228,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i16x8.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (i16x8.laneselect + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i16x8.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (i16x8.laneselect (local.get $0) @@ -234,13 +242,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $i32x4.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i32x4.laneselect - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i32x4.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.laneselect ;; CHECK-TEXT-NEXT: (local.get $0) @@ -248,6 +250,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i32x4.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (i32x4.laneselect + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i32x4.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (i32x4.laneselect (local.get $0) @@ -255,13 +264,7 @@ (local.get $2) ) ) - ;; CHECK-BINARY: (func $i64x2.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i64x2.laneselect - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $i64x2.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (i64x2.laneselect ;; CHECK-TEXT-NEXT: (local.get $0) @@ -269,6 +272,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i64x2.laneselect (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) + ;; CHECK-BIN-NEXT: (i64x2.laneselect + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i64x2.laneselect (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (i64x2.laneselect (local.get $0) @@ -277,72 +287,75 @@ ) ) - ;; CHECK-BINARY: (func $f32x4.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f32x4.relaxed_min - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $f32x4.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (f32x4.relaxed_min ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f32x4.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (f32x4.relaxed_min + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f32x4.relaxed_min (param $0 v128) (param $1 v128) (result v128) (f32x4.relaxed_min (local.get $0) (local.get $1) ) ) - ;; CHECK-BINARY: (func $f32x4.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f32x4.relaxed_max - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f32x4.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (f32x4.relaxed_max ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f32x4.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (f32x4.relaxed_max + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f32x4.relaxed_max (param $0 v128) (param $1 v128) (result v128) (f32x4.relaxed_max (local.get $0) (local.get $1) ) ) - ;; CHECK-BINARY: (func $f64x2.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f64x2.relaxed_min - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (f64x2.relaxed_min ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f64x2.relaxed_min (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (f64x2.relaxed_min + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f64x2.relaxed_min (param $0 v128) (param $1 v128) (result v128) (f64x2.relaxed_min (local.get $0) (local.get $1) ) ) - ;; CHECK-BINARY: (func $f64x2.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (f64x2.relaxed_max - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $f64x2.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (f64x2.relaxed_max ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $f64x2.relaxed_max (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (f64x2.relaxed_max + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $f64x2.relaxed_max (param $0 v128) (param $1 v128) (result v128) (f64x2.relaxed_max (local.get $0) @@ -350,18 +363,18 @@ ) ) - ;; CHECK-BINARY: (func $i16x8.relaxed_q15mulr_s (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i16x8.relaxed_q15mulr_s - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $i16x8.relaxed_q15mulr_s (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (i16x8.relaxed_q15mulr_s ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i16x8.relaxed_q15mulr_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (i16x8.relaxed_q15mulr_s + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i16x8.relaxed_q15mulr_s (param $0 v128) (param $1 v128) (result v128) (i16x8.relaxed_q15mulr_s (local.get $0) @@ -369,18 +382,18 @@ ) ) - ;; CHECK-BINARY: (func $i16x8.dot_i8x16_i7x16_s (type $1) (param $0 v128) (param $1 v128) (result v128) - ;; CHECK-BINARY-NEXT: (i16x8.dot_i8x16_i7x16_s - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $i16x8.dot_i8x16_i7x16_s (type $1) (param $0 v128) (param $1 v128) (result v128) ;; CHECK-TEXT-NEXT: (i16x8.dot_i8x16_i7x16_s ;; CHECK-TEXT-NEXT: (local.get $0) ;; CHECK-TEXT-NEXT: (local.get $1) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $i16x8.dot_i8x16_i7x16_s (type $1) (param $0 v128) (param $1 v128) (result v128) + ;; CHECK-BIN-NEXT: (i16x8.dot_i8x16_i7x16_s + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $i16x8.dot_i8x16_i7x16_s (param $0 v128) (param $1 v128) (result v128) (i16x8.dot_i8x16_i7x16_s (local.get $0) @@ -388,13 +401,6 @@ ) ) -;; CHECK-BINARY: (func $i32x4.dot_i8x16_i7x16_add_s (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-BINARY-NEXT: (i32x4.dot_i8x16_i7x16_add_s -;; CHECK-BINARY-NEXT: (local.get $0) -;; CHECK-BINARY-NEXT: (local.get $1) -;; CHECK-BINARY-NEXT: (local.get $2) -;; CHECK-BINARY-NEXT: ) -;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $i32x4.dot_i8x16_i7x16_add_s (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) ;; CHECK-TEXT-NEXT: (i32x4.dot_i8x16_i7x16_add_s ;; CHECK-TEXT-NEXT: (local.get $0) @@ -402,6 +408,13 @@ ;; CHECK-TEXT-NEXT: (local.get $2) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) +;; CHECK-BIN: (func $i32x4.dot_i8x16_i7x16_add_s (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NEXT: (i32x4.dot_i8x16_i7x16_add_s +;; CHECK-BIN-NEXT: (local.get $0) +;; CHECK-BIN-NEXT: (local.get $1) +;; CHECK-BIN-NEXT: (local.get $2) +;; CHECK-BIN-NEXT: ) +;; CHECK-BIN-NEXT: ) (func $i32x4.dot_i8x16_i7x16_add_s (param $0 v128) (param $1 v128) (param $2 v128) (result v128) (i32x4.dot_i8x16_i7x16_add_s (local.get $0) @@ -409,157 +422,156 @@ (local.get $2) ) ) - ) -;; CHECK-NODEBUG: (type $0 (func (param v128 v128 v128) (result v128))) - -;; CHECK-NODEBUG: (type $1 (func (param v128 v128) (result v128))) - -;; CHECK-NODEBUG: (type $2 (func (param v128) (result v128))) - -;; CHECK-NODEBUG: (memory $0 1 1) - -;; CHECK-NODEBUG: (func $0 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i8x16.relaxed_swizzle -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $1 (type $2) (param $0 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_s -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $2 (type $2) (param $0 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_u -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $3 (type $2) (param $0 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $4 (type $2) (param $0 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $5 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fma -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $6 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_fms -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $7 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fma -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $8 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_fms -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $9 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i8x16.laneselect -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $10 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i16x8.laneselect -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $11 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.laneselect -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $12 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i64x2.laneselect -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $13 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_min -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $14 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f32x4.relaxed_max -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $15 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_min -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $16 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (f64x2.relaxed_max -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $17 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i16x8.relaxed_q15mulr_s -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $18 (type $1) (param $0 v128) (param $1 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i16x8.dot_i8x16_i7x16_s -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $19 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) -;; CHECK-NODEBUG-NEXT: (i32x4.dot_i8x16_i7x16_add_s -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG: (type $0 (func (param v128 v128 v128) (result v128))) + +;; CHECK-BIN-NODEBUG: (type $1 (func (param v128 v128) (result v128))) + +;; CHECK-BIN-NODEBUG: (type $2 (func (param v128) (result v128))) + +;; CHECK-BIN-NODEBUG: (memory $0 1 1) + +;; CHECK-BIN-NODEBUG: (func $0 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i8x16.relaxed_swizzle +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $1 (type $2) (param $0 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_s +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $2 (type $2) (param $0 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.relaxed_trunc_f32x4_u +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $3 (type $2) (param $0 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_s_zero +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $4 (type $2) (param $0 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.relaxed_trunc_f64x2_u_zero +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $5 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f32x4.relaxed_fma +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $6 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f32x4.relaxed_fms +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $7 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f64x2.relaxed_fma +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $8 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f64x2.relaxed_fms +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $9 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i8x16.laneselect +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $10 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i16x8.laneselect +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $11 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.laneselect +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $12 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i64x2.laneselect +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $13 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f32x4.relaxed_min +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $14 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f32x4.relaxed_max +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $15 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f64x2.relaxed_min +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $16 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (f64x2.relaxed_max +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $17 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i16x8.relaxed_q15mulr_s +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $18 (type $1) (param $0 v128) (param $1 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i16x8.dot_i8x16_i7x16_s +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $19 (type $0) (param $0 v128) (param $1 v128) (param $2 v128) (result v128) +;; CHECK-BIN-NODEBUG-NEXT: (i32x4.dot_i8x16_i7x16_add_s +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) diff --git a/test/lit/basic/table-operations.wast b/test/lit/basic/table-operations.wast index f3aafe51a..3f1e13bea 100644 --- a/test/lit/basic/table-operations.wast +++ b/test/lit/basic/table-operations.wast @@ -1,26 +1,15 @@ ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. +;; RUN: wasm-opt %s -all -o %t.text.wast -g -S ;; RUN: wasm-as %s -all -g -o %t.wasm -;; RUN: wasm-dis %t.wasm -all -o %t.wast +;; RUN: wasm-dis %t.wasm -all -o %t.bin.wast ;; RUN: wasm-as %s -all -o %t.nodebug.wasm -;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.nodebug.wast -;; RUN: wasm-opt %t.wast -all -o %t.text.wast -g -S -;; RUN: cat %t.wast | filecheck %s --check-prefix=CHECK-BINARY -;; RUN: cat %t.nodebug.wast | filecheck %s --check-prefix=CHECK-NODEBUG +;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.bin.nodebug.wast ;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT +;; RUN: cat %t.bin.wast | filecheck %s --check-prefix=CHECK-BIN +;; RUN: cat %t.bin.nodebug.wast | filecheck %s --check-prefix=CHECK-BIN-NODEBUG (module - ;; CHECK-BINARY: (type $0 (func)) - - ;; CHECK-BINARY: (type $1 (func (result i32))) - - ;; CHECK-BINARY: (type $2 (func (param i32) (result i32))) - - ;; CHECK-BINARY: (type $3 (func (param i32 funcref i32))) - - ;; CHECK-BINARY: (type $4 (func (param i32 i32 i32))) - - ;; CHECK-BINARY: (table $table-1 1 1 funcref) ;; CHECK-TEXT: (type $0 (func)) ;; CHECK-TEXT: (type $1 (func (result i32))) @@ -32,23 +21,27 @@ ;; CHECK-TEXT: (type $4 (func (param i32 i32 i32))) ;; CHECK-TEXT: (table $table-1 1 1 funcref) + ;; CHECK-BIN: (type $0 (func)) + + ;; CHECK-BIN: (type $1 (func (result i32))) + + ;; CHECK-BIN: (type $2 (func (param i32) (result i32))) + + ;; CHECK-BIN: (type $3 (func (param i32 funcref i32))) + + ;; CHECK-BIN: (type $4 (func (param i32 i32 i32))) + + ;; CHECK-BIN: (table $table-1 1 1 funcref) (table $table-1 funcref (elem $foo) ) - ;; CHECK-BINARY: (table $table-2 3 3 funcref) ;; CHECK-TEXT: (table $table-2 3 3 funcref) + ;; CHECK-BIN: (table $table-2 3 3 funcref) (table $table-2 funcref (elem $bar $bar $bar) ) - ;; CHECK-BINARY: (elem $0 (table $table-1) (i32.const 0) func $foo) - - ;; CHECK-BINARY: (elem $1 (table $table-2) (i32.const 0) func $bar $bar $bar) - - ;; CHECK-BINARY: (func $foo (type $0) - ;; CHECK-BINARY-NEXT: (nop) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (elem $0 (table $table-1) (i32.const 0) func $foo) ;; CHECK-TEXT: (elem $1 (table $table-2) (i32.const 0) func $bar $bar $bar) @@ -56,21 +49,17 @@ ;; CHECK-TEXT: (func $foo (type $0) ;; CHECK-TEXT-NEXT: (nop) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (elem $0 (table $table-1) (i32.const 0) func $foo) + + ;; CHECK-BIN: (elem $1 (table $table-2) (i32.const 0) func $bar $bar $bar) + + ;; CHECK-BIN: (func $foo (type $0) + ;; CHECK-BIN-NEXT: (nop) + ;; CHECK-BIN-NEXT: ) (func $foo (nop) ) - ;; CHECK-BINARY: (func $bar (type $0) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (table.get $table-1 - ;; CHECK-BINARY-NEXT: (i32.const 0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (table.get $table-2 - ;; CHECK-BINARY-NEXT: (i32.const 100) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $bar (type $0) ;; CHECK-TEXT-NEXT: (drop ;; CHECK-TEXT-NEXT: (table.get $table-1 @@ -83,6 +72,18 @@ ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $bar (type $0) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (table.get $table-1 + ;; CHECK-BIN-NEXT: (i32.const 0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (table.get $table-2 + ;; CHECK-BIN-NEXT: (i32.const 100) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $bar (drop (table.get $table-1 @@ -96,17 +97,6 @@ ) ) - ;; CHECK-BINARY: (func $set-get (type $0) - ;; CHECK-BINARY-NEXT: (table.set $table-1 - ;; CHECK-BINARY-NEXT: (i32.const 0) - ;; CHECK-BINARY-NEXT: (ref.func $foo) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (table.get $table-1 - ;; CHECK-BINARY-NEXT: (i32.const 0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $set-get (type $0) ;; CHECK-TEXT-NEXT: (table.set $table-1 ;; CHECK-TEXT-NEXT: (i32.const 0) @@ -118,6 +108,17 @@ ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $set-get (type $0) + ;; CHECK-BIN-NEXT: (table.set $table-1 + ;; CHECK-BIN-NEXT: (i32.const 0) + ;; CHECK-BIN-NEXT: (ref.func $foo) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (table.get $table-1 + ;; CHECK-BIN-NEXT: (i32.const 0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $set-get (table.set $table-1 (i32.const 0) @@ -130,39 +131,32 @@ ) ) - ;; CHECK-BINARY: (func $get-table-size (type $1) (result i32) - ;; CHECK-BINARY-NEXT: (table.size $table-1) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $get-table-size (type $1) (result i32) ;; CHECK-TEXT-NEXT: (table.size $table-1) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $get-table-size (type $1) (result i32) + ;; CHECK-BIN-NEXT: (table.size $table-1) + ;; CHECK-BIN-NEXT: ) (func $get-table-size (result i32) (table.size $table-1) ) - ;; CHECK-BINARY: (func $table-grow (type $2) (param $sz i32) (result i32) - ;; CHECK-BINARY-NEXT: (table.grow $table-1 - ;; CHECK-BINARY-NEXT: (ref.null nofunc) - ;; CHECK-BINARY-NEXT: (local.get $sz) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $table-grow (type $2) (param $sz i32) (result i32) ;; CHECK-TEXT-NEXT: (table.grow $table-1 ;; CHECK-TEXT-NEXT: (ref.null nofunc) ;; CHECK-TEXT-NEXT: (local.get $sz) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $table-grow (type $2) (param $sz i32) (result i32) + ;; CHECK-BIN-NEXT: (table.grow $table-1 + ;; CHECK-BIN-NEXT: (ref.null nofunc) + ;; CHECK-BIN-NEXT: (local.get $sz) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $table-grow (param $sz i32) (result i32) (table.grow $table-1 (ref.null func) (local.get $sz)) ) - ;; CHECK-BINARY: (func $table-fill (type $3) (param $dest i32) (param $value funcref) (param $size i32) - ;; CHECK-BINARY-NEXT: (table.fill $table-1 - ;; CHECK-BINARY-NEXT: (local.get $dest) - ;; CHECK-BINARY-NEXT: (local.get $value) - ;; CHECK-BINARY-NEXT: (local.get $size) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $table-fill (type $3) (param $dest i32) (param $value funcref) (param $size i32) ;; CHECK-TEXT-NEXT: (table.fill $table-1 ;; CHECK-TEXT-NEXT: (local.get $dest) @@ -170,6 +164,13 @@ ;; CHECK-TEXT-NEXT: (local.get $size) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $table-fill (type $3) (param $dest i32) (param $value funcref) (param $size i32) + ;; CHECK-BIN-NEXT: (table.fill $table-1 + ;; CHECK-BIN-NEXT: (local.get $dest) + ;; CHECK-BIN-NEXT: (local.get $value) + ;; CHECK-BIN-NEXT: (local.get $size) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $table-fill (param $dest i32) (param $value funcref) (param $size i32) (table.fill $table-1 (local.get $dest) @@ -178,13 +179,6 @@ ) ) - ;; CHECK-BINARY: (func $table-copy (type $4) (param $dest i32) (param $source i32) (param $size i32) - ;; CHECK-BINARY-NEXT: (table.copy $table-1 $table-2 - ;; CHECK-BINARY-NEXT: (local.get $dest) - ;; CHECK-BINARY-NEXT: (local.get $source) - ;; CHECK-BINARY-NEXT: (local.get $size) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (func $table-copy (type $4) (param $dest i32) (param $source i32) (param $size i32) ;; CHECK-TEXT-NEXT: (table.copy $table-1 $table-2 ;; CHECK-TEXT-NEXT: (local.get $dest) @@ -192,6 +186,13 @@ ;; CHECK-TEXT-NEXT: (local.get $size) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $table-copy (type $4) (param $dest i32) (param $source i32) (param $size i32) + ;; CHECK-BIN-NEXT: (table.copy $table-1 $table-2 + ;; CHECK-BIN-NEXT: (local.get $dest) + ;; CHECK-BIN-NEXT: (local.get $source) + ;; CHECK-BIN-NEXT: (local.get $size) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $table-copy (param $dest i32) (param $source i32) (param $size i32) (table.copy $table-1 $table-2 (local.get $dest) @@ -200,76 +201,76 @@ ) ) ) -;; CHECK-NODEBUG: (type $0 (func)) - -;; CHECK-NODEBUG: (type $1 (func (result i32))) - -;; CHECK-NODEBUG: (type $2 (func (param i32) (result i32))) - -;; CHECK-NODEBUG: (type $3 (func (param i32 funcref i32))) - -;; CHECK-NODEBUG: (type $4 (func (param i32 i32 i32))) - -;; CHECK-NODEBUG: (table $0 1 1 funcref) - -;; CHECK-NODEBUG: (table $1 3 3 funcref) - -;; CHECK-NODEBUG: (elem $0 (table $0) (i32.const 0) func $0) - -;; CHECK-NODEBUG: (elem $1 (table $1) (i32.const 0) func $1 $1 $1) - -;; CHECK-NODEBUG: (func $0 (type $0) -;; CHECK-NODEBUG-NEXT: (nop) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $1 (type $0) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (table.get $0 -;; CHECK-NODEBUG-NEXT: (i32.const 0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (table.get $1 -;; CHECK-NODEBUG-NEXT: (i32.const 100) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $2 (type $0) -;; CHECK-NODEBUG-NEXT: (table.set $0 -;; CHECK-NODEBUG-NEXT: (i32.const 0) -;; CHECK-NODEBUG-NEXT: (ref.func $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (table.get $0 -;; CHECK-NODEBUG-NEXT: (i32.const 0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $3 (type $1) (result i32) -;; CHECK-NODEBUG-NEXT: (table.size $0) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $4 (type $2) (param $0 i32) (result i32) -;; CHECK-NODEBUG-NEXT: (table.grow $0 -;; CHECK-NODEBUG-NEXT: (ref.null nofunc) -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $5 (type $3) (param $0 i32) (param $1 funcref) (param $2 i32) -;; CHECK-NODEBUG-NEXT: (table.fill $0 -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $6 (type $4) (param $0 i32) (param $1 i32) (param $2 i32) -;; CHECK-NODEBUG-NEXT: (table.copy $0 $1 -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG: (type $0 (func)) + +;; CHECK-BIN-NODEBUG: (type $1 (func (result i32))) + +;; CHECK-BIN-NODEBUG: (type $2 (func (param i32) (result i32))) + +;; CHECK-BIN-NODEBUG: (type $3 (func (param i32 funcref i32))) + +;; CHECK-BIN-NODEBUG: (type $4 (func (param i32 i32 i32))) + +;; CHECK-BIN-NODEBUG: (table $0 1 1 funcref) + +;; CHECK-BIN-NODEBUG: (table $1 3 3 funcref) + +;; CHECK-BIN-NODEBUG: (elem $0 (table $0) (i32.const 0) func $0) + +;; CHECK-BIN-NODEBUG: (elem $1 (table $1) (i32.const 0) func $1 $1 $1) + +;; CHECK-BIN-NODEBUG: (func $0 (type $0) +;; CHECK-BIN-NODEBUG-NEXT: (nop) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $1 (type $0) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (table.get $0 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (table.get $1 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 100) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $2 (type $0) +;; CHECK-BIN-NODEBUG-NEXT: (table.set $0 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0) +;; CHECK-BIN-NODEBUG-NEXT: (ref.func $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (table.get $0 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $3 (type $1) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (table.size $0) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $4 (type $2) (param $0 i32) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (table.grow $0 +;; CHECK-BIN-NODEBUG-NEXT: (ref.null nofunc) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $5 (type $3) (param $0 i32) (param $1 funcref) (param $2 i32) +;; CHECK-BIN-NODEBUG-NEXT: (table.fill $0 +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $6 (type $4) (param $0 i32) (param $1 i32) (param $2 i32) +;; CHECK-BIN-NODEBUG-NEXT: (table.copy $0 $1 +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) diff --git a/test/lit/basic/typed_continuations.wast b/test/lit/basic/typed_continuations.wast index 36797f745..998837817 100644 --- a/test/lit/basic/typed_continuations.wast +++ b/test/lit/basic/typed_continuations.wast @@ -1,42 +1,42 @@ ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. +;; RUN: wasm-opt %s -all -o %t.text.wast -g -S ;; RUN: wasm-as %s -all -g -o %t.wasm -;; RUN: wasm-dis %t.wasm -all -o %t.wast +;; RUN: wasm-dis %t.wasm -all -o %t.bin.wast ;; RUN: wasm-as %s -all -o %t.nodebug.wasm -;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.nodebug.wast -;; RUN: wasm-opt %t.wast -all -o %t.text.wast -g -S -;; RUN: cat %t.wast | filecheck %s --check-prefix=CHECK-BINARY -;; RUN: cat %t.nodebug.wast | filecheck %s --check-prefix=CHECK-NODEBUG +;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.bin.nodebug.wast ;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT +;; RUN: cat %t.bin.wast | filecheck %s --check-prefix=CHECK-BIN +;; RUN: cat %t.bin.nodebug.wast | filecheck %s --check-prefix=CHECK-BIN-NODEBUG (module - ;; CHECK-BINARY: (type $ft (func (param i32) (result i32))) ;; CHECK-TEXT: (type $ft (func (param i32) (result i32))) + ;; CHECK-BIN: (type $ft (func (param i32) (result i32))) (type $ft (func (param i32) (result i32))) - ;; CHECK-BINARY: (type $ct (cont $ft)) ;; CHECK-TEXT: (type $ct (cont $ft)) + ;; CHECK-BIN: (type $ct (cont $ft)) (type $ct (cont $ft)) - ;; CHECK-BINARY: (type $2 (func (param (ref $ct)) (result (ref $ct)))) - - ;; CHECK-BINARY: (func $id (type $2) (param $x (ref $ct)) (result (ref $ct)) - ;; CHECK-BINARY-NEXT: (local.get $x) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (type $2 (func (param (ref $ct)) (result (ref $ct)))) ;; CHECK-TEXT: (func $id (type $2) (param $x (ref $ct)) (result (ref $ct)) ;; CHECK-TEXT-NEXT: (local.get $x) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (type $2 (func (param (ref $ct)) (result (ref $ct)))) + + ;; CHECK-BIN: (func $id (type $2) (param $x (ref $ct)) (result (ref $ct)) + ;; CHECK-BIN-NEXT: (local.get $x) + ;; CHECK-BIN-NEXT: ) (func $id (param $x (ref $ct)) (result (ref $ct)) (local.get $x) ) ) -;; CHECK-NODEBUG: (type $0 (func (param i32) (result i32))) +;; CHECK-BIN-NODEBUG: (type $0 (func (param i32) (result i32))) -;; CHECK-NODEBUG: (type $1 (cont $0)) +;; CHECK-BIN-NODEBUG: (type $1 (cont $0)) -;; CHECK-NODEBUG: (type $2 (func (param (ref $1)) (result (ref $1)))) +;; CHECK-BIN-NODEBUG: (type $2 (func (param (ref $1)) (result (ref $1)))) -;; CHECK-NODEBUG: (func $0 (type $2) (param $0 (ref $1)) (result (ref $1)) -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG: (func $0 (type $2) (param $0 (ref $1)) (result (ref $1)) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) diff --git a/test/lit/basic/types-function-references.wast b/test/lit/basic/types-function-references.wast index 9479c93b3..4bff6cbb9 100644 --- a/test/lit/basic/types-function-references.wast +++ b/test/lit/basic/types-function-references.wast @@ -1,40 +1,26 @@ ;; NOTE: Assertions have been generated by update_lit_checks.py --all-items and should not be edited. +;; RUN: wasm-opt %s -all -o %t.text.wast -g -S ;; RUN: wasm-as %s -all -g -o %t.wasm -;; RUN: wasm-dis %t.wasm -all -o %t.wast +;; RUN: wasm-dis %t.wasm -all -o %t.bin.wast ;; RUN: wasm-as %s -all -o %t.nodebug.wasm -;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.nodebug.wast -;; RUN: wasm-opt %t.wast -all -o %t.text.wast -g -S -;; RUN: cat %t.wast | filecheck %s --check-prefix=CHECK-BINARY -;; RUN: cat %t.nodebug.wast | filecheck %s --check-prefix=CHECK-NODEBUG +;; RUN: wasm-dis %t.nodebug.wasm -all -o %t.bin.nodebug.wast ;; RUN: cat %t.text.wast | filecheck %s --check-prefix=CHECK-TEXT +;; RUN: cat %t.bin.wast | filecheck %s --check-prefix=CHECK-BIN +;; RUN: cat %t.bin.nodebug.wast | filecheck %s --check-prefix=CHECK-BIN-NODEBUG (module - ;; CHECK-BINARY: (type $mixed_results (func (result anyref f32 anyref f32))) - - ;; CHECK-BINARY: (type $void (func)) - ;; CHECK-TEXT: (type $mixed_results (func (result anyref f32 anyref f32))) - ;; CHECK-TEXT: (type $void (func)) - (type $void (func)) + ;; CHECK-BIN: (type $mixed_results (func (result anyref f32 anyref f32))) + ;; CHECK-BIN: (type $void (func)) + (type $void (func)) ;; inline ref type in result (type $_=>_eqref (func (result eqref))) - ;; CHECK-BINARY: (type $i32-i32 (func (param i32) (result i32))) - - ;; CHECK-BINARY: (type $3 (func (result i32 (ref null $mixed_results) f64))) - - ;; CHECK-BINARY: (type $4 (func (param (ref $i32-i32)) (result i32))) - - ;; CHECK-BINARY: (type $5 (func (param (ref null $i32-i32)) (result i32))) - - ;; CHECK-BINARY: (type $6 (func (result i32))) - - ;; CHECK-BINARY: (type $=>eqref (func (result eqref))) - - ;; CHECK-BINARY: (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $=>eqref)))) ;; CHECK-TEXT: (type $i32-i32 (func (param i32) (result i32))) + ;; CHECK-TEXT: (type $mixed_results (func (result anyref f32 anyref f32))) + ;; CHECK-TEXT: (type $3 (func (result i32 (ref null $mixed_results) f64))) ;; CHECK-TEXT: (type $4 (func (param (ref $i32-i32)) (result i32))) @@ -46,24 +32,27 @@ ;; CHECK-TEXT: (type $=>eqref (func (result eqref))) ;; CHECK-TEXT: (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $=>eqref)))) + ;; CHECK-BIN: (type $i32-i32 (func (param i32) (result i32))) + + ;; CHECK-BIN: (type $3 (func (result i32 (ref null $mixed_results) f64))) + + ;; CHECK-BIN: (type $4 (func (param (ref $i32-i32)) (result i32))) + + ;; CHECK-BIN: (type $5 (func (param (ref null $i32-i32)) (result i32))) + + ;; CHECK-BIN: (type $6 (func (result i32))) + + ;; CHECK-BIN: (type $=>eqref (func (result eqref))) + + ;; CHECK-BIN: (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $=>eqref)))) (type $f64_=>_ref_null<_->_eqref> (func (param f64) (result (ref null $_=>_eqref)))) (type $=>eqref (func (result eqref))) - ;; CHECK-BINARY: (type $=>anyref (func (result anyref))) ;; CHECK-TEXT: (type $=>anyref (func (result anyref))) + ;; CHECK-BIN: (type $=>anyref (func (result anyref))) (type $=>anyref (func (result anyref))) (type $mixed_results (func (result anyref f32 anyref f32))) - (type $i32-i32 (func (param i32) (result i32))) - ;; CHECK-BINARY: (type $10 (func (param (ref null $mixed_results)))) - - ;; CHECK-BINARY: (elem declare func $call-ref $call-ref-more) - - ;; CHECK-BINARY: (func $call-ref (type $void) - ;; CHECK-BINARY-NEXT: (call_ref $void - ;; CHECK-BINARY-NEXT: (ref.func $call-ref) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) ;; CHECK-TEXT: (type $10 (func (param (ref null $mixed_results)))) ;; CHECK-TEXT: (elem declare func $call-ref $call-ref-more) @@ -73,77 +62,81 @@ ;; CHECK-TEXT-NEXT: (ref.func $call-ref) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (type $10 (func (param (ref null $mixed_results)))) + + ;; CHECK-BIN: (elem declare func $call-ref $call-ref-more) + + ;; CHECK-BIN: (func $call-ref (type $void) + ;; CHECK-BIN-NEXT: (call_ref $void + ;; CHECK-BIN-NEXT: (ref.func $call-ref) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $call-ref (call_ref $void (ref.func $call-ref)) ) - ;; CHECK-BINARY: (func $return-call-ref (type $void) - ;; CHECK-BINARY-NEXT: (return_call_ref $void - ;; CHECK-BINARY-NEXT: (ref.func $call-ref) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $return-call-ref (type $void) ;; CHECK-TEXT-NEXT: (return_call_ref $void ;; CHECK-TEXT-NEXT: (ref.func $call-ref) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $return-call-ref (type $void) + ;; CHECK-BIN-NEXT: (return_call_ref $void + ;; CHECK-BIN-NEXT: (ref.func $call-ref) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $return-call-ref (return_call_ref $void (ref.func $call-ref)) ) - ;; CHECK-BINARY: (func $call-ref-more (type $i32-i32) (param $0 i32) (result i32) - ;; CHECK-BINARY-NEXT: (call_ref $i32-i32 - ;; CHECK-BINARY-NEXT: (i32.const 42) - ;; CHECK-BINARY-NEXT: (ref.func $call-ref-more) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $call-ref-more (type $i32-i32) (param $0 i32) (result i32) ;; CHECK-TEXT-NEXT: (call_ref $i32-i32 ;; CHECK-TEXT-NEXT: (i32.const 42) ;; CHECK-TEXT-NEXT: (ref.func $call-ref-more) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $call-ref-more (type $i32-i32) (param $0 i32) (result i32) + ;; CHECK-BIN-NEXT: (call_ref $i32-i32 + ;; CHECK-BIN-NEXT: (i32.const 42) + ;; CHECK-BIN-NEXT: (ref.func $call-ref-more) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $call-ref-more (param i32) (result i32) (call_ref $i32-i32 (i32.const 42) (ref.func $call-ref-more)) ) - ;; CHECK-BINARY: (func $call_from-param (type $4) (param $f (ref $i32-i32)) (result i32) - ;; CHECK-BINARY-NEXT: (call_ref $i32-i32 - ;; CHECK-BINARY-NEXT: (i32.const 42) - ;; CHECK-BINARY-NEXT: (local.get $f) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $call_from-param (type $4) (param $f (ref $i32-i32)) (result i32) ;; CHECK-TEXT-NEXT: (call_ref $i32-i32 ;; CHECK-TEXT-NEXT: (i32.const 42) ;; CHECK-TEXT-NEXT: (local.get $f) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $call_from-param (type $4) (param $f (ref $i32-i32)) (result i32) + ;; CHECK-BIN-NEXT: (call_ref $i32-i32 + ;; CHECK-BIN-NEXT: (i32.const 42) + ;; CHECK-BIN-NEXT: (local.get $f) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $call_from-param (param $f (ref $i32-i32)) (result i32) (call_ref $i32-i32 (i32.const 42) (local.get $f)) ) - ;; CHECK-BINARY: (func $call_from-param-null (type $5) (param $f (ref null $i32-i32)) (result i32) - ;; CHECK-BINARY-NEXT: (call_ref $i32-i32 - ;; CHECK-BINARY-NEXT: (i32.const 42) - ;; CHECK-BINARY-NEXT: (local.get $f) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $call_from-param-null (type $5) (param $f (ref null $i32-i32)) (result i32) ;; CHECK-TEXT-NEXT: (call_ref $i32-i32 ;; CHECK-TEXT-NEXT: (i32.const 42) ;; CHECK-TEXT-NEXT: (local.get $f) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $call_from-param-null (type $5) (param $f (ref null $i32-i32)) (result i32) + ;; CHECK-BIN-NEXT: (call_ref $i32-i32 + ;; CHECK-BIN-NEXT: (i32.const 42) + ;; CHECK-BIN-NEXT: (local.get $f) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $call_from-param-null (param $f (ref null $i32-i32)) (result i32) (call_ref $i32-i32 (i32.const 42) (local.get $f)) ) - ;; CHECK-BINARY: (func $call_from-local-null (type $6) (result i32) - ;; CHECK-BINARY-NEXT: (local $f (ref null $i32-i32)) - ;; CHECK-BINARY-NEXT: (local.set $f - ;; CHECK-BINARY-NEXT: (ref.func $call-ref-more) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (call_ref $i32-i32 - ;; CHECK-BINARY-NEXT: (i32.const 42) - ;; CHECK-BINARY-NEXT: (local.get $f) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $call_from-local-null (type $6) (result i32) ;; CHECK-TEXT-NEXT: (local $f (ref null $i32-i32)) ;; CHECK-TEXT-NEXT: (local.set $f @@ -154,105 +147,88 @@ ;; CHECK-TEXT-NEXT: (local.get $f) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $call_from-local-null (type $6) (result i32) + ;; CHECK-BIN-NEXT: (local $f (ref null $i32-i32)) + ;; CHECK-BIN-NEXT: (local.set $f + ;; CHECK-BIN-NEXT: (ref.func $call-ref-more) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (call_ref $i32-i32 + ;; CHECK-BIN-NEXT: (i32.const 42) + ;; CHECK-BIN-NEXT: (local.get $f) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $call_from-local-null (result i32) (local $f (ref null $i32-i32)) (local.set $f (ref.func $call-ref-more)) (call_ref $i32-i32 (i32.const 42) (local.get $f)) ) - ;; CHECK-BINARY: (func $ref-in-sig (type $f64_=>_ref_null<_->_eqref>) (param $0 f64) (result (ref null $=>eqref)) - ;; CHECK-BINARY-NEXT: (ref.null nofunc) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $ref-in-sig (type $f64_=>_ref_null<_->_eqref>) (param $0 f64) (result (ref null $=>eqref)) ;; CHECK-TEXT-NEXT: (ref.null nofunc) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $ref-in-sig (type $f64_=>_ref_null<_->_eqref>) (param $0 f64) (result (ref null $=>eqref)) + ;; CHECK-BIN-NEXT: (ref.null nofunc) + ;; CHECK-BIN-NEXT: ) (func $ref-in-sig (param $0 f64) (result (ref null $=>eqref)) (ref.null $=>eqref) ) - ;; CHECK-BINARY: (func $type-only-in-tuple-local (type $void) - ;; CHECK-BINARY-NEXT: (local $x i32) - ;; CHECK-BINARY-NEXT: (local $1 f64) - ;; CHECK-BINARY-NEXT: (local $2 (ref null $=>anyref)) - ;; CHECK-BINARY-NEXT: (nop) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $type-only-in-tuple-local (type $void) - ;; CHECK-TEXT-NEXT: (local $x i32) - ;; CHECK-TEXT-NEXT: (local $1 f64) - ;; CHECK-TEXT-NEXT: (local $2 (ref null $=>anyref)) + ;; CHECK-TEXT-NEXT: (local $x (i32 (ref null $=>anyref) f64)) ;; CHECK-TEXT-NEXT: (nop) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $type-only-in-tuple-local (type $void) + ;; CHECK-BIN-NEXT: (local $x i32) + ;; CHECK-BIN-NEXT: (local $1 f64) + ;; CHECK-BIN-NEXT: (local $2 (ref null $=>anyref)) + ;; CHECK-BIN-NEXT: (nop) + ;; CHECK-BIN-NEXT: ) (func $type-only-in-tuple-local (local $x (i32 (ref null $=>anyref) f64)) ) - ;; CHECK-BINARY: (func $type-only-in-tuple-block (type $void) - ;; CHECK-BINARY-NEXT: (local $0 (i32 (ref null $mixed_results) f64)) - ;; CHECK-BINARY-NEXT: (local $1 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $2 i32) - ;; CHECK-BINARY-NEXT: (local.set $0 - ;; CHECK-BINARY-NEXT: (block $label$1 (type $3) (result i32 (ref null $mixed_results) f64) - ;; CHECK-BINARY-NEXT: (unreachable) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (block (result i32) - ;; CHECK-BINARY-NEXT: (local.set $2 - ;; CHECK-BINARY-NEXT: (tuple.extract 0 - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (block (result (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local.set $1 - ;; CHECK-BINARY-NEXT: (tuple.extract 1 - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (drop - ;; CHECK-BINARY-NEXT: (tuple.extract 2 - ;; CHECK-BINARY-NEXT: (local.get $0) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (local.get $1) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: (local.get $2) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $type-only-in-tuple-block (type $void) - ;; CHECK-TEXT-NEXT: (local $0 (i32 (ref null $mixed_results) f64)) - ;; CHECK-TEXT-NEXT: (local $1 (ref null $mixed_results)) - ;; CHECK-TEXT-NEXT: (local $2 i32) - ;; CHECK-TEXT-NEXT: (local.set $0 - ;; CHECK-TEXT-NEXT: (block $label$1 (type $3) (result i32 (ref null $mixed_results) f64) - ;; CHECK-TEXT-NEXT: (unreachable) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: (drop - ;; CHECK-TEXT-NEXT: (block (result i32) - ;; CHECK-TEXT-NEXT: (local.set $2 - ;; CHECK-TEXT-NEXT: (tuple.extract 0 - ;; CHECK-TEXT-NEXT: (local.get $0) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: (drop - ;; CHECK-TEXT-NEXT: (block (result (ref null $mixed_results)) - ;; CHECK-TEXT-NEXT: (local.set $1 - ;; CHECK-TEXT-NEXT: (tuple.extract 1 - ;; CHECK-TEXT-NEXT: (local.get $0) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: (drop - ;; CHECK-TEXT-NEXT: (tuple.extract 2 - ;; CHECK-TEXT-NEXT: (local.get $0) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: (local.get $1) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: ) - ;; CHECK-TEXT-NEXT: (local.get $2) + ;; CHECK-TEXT-NEXT: (block $block (type $3) (result i32 (ref null $mixed_results) f64) + ;; CHECK-TEXT-NEXT: (unreachable) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $type-only-in-tuple-block (type $void) + ;; CHECK-BIN-NEXT: (local $0 (i32 (ref null $mixed_results) f64)) + ;; CHECK-BIN-NEXT: (local $1 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $2 i32) + ;; CHECK-BIN-NEXT: (local.set $0 + ;; CHECK-BIN-NEXT: (block $label$1 (type $3) (result i32 (ref null $mixed_results) f64) + ;; CHECK-BIN-NEXT: (unreachable) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (block (result i32) + ;; CHECK-BIN-NEXT: (local.set $2 + ;; CHECK-BIN-NEXT: (tuple.extract 0 + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (block (result (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local.set $1 + ;; CHECK-BIN-NEXT: (tuple.extract 1 + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (drop + ;; CHECK-BIN-NEXT: (tuple.extract 2 + ;; CHECK-BIN-NEXT: (local.get $0) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (local.get $1) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: (local.get $2) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) + ;; CHECK-BIN-NEXT: ) (func $type-only-in-tuple-block (drop (block $block (result i32 (ref null $mixed_results) f64) @@ -260,30 +236,31 @@ ) ) ) - ;; CHECK-BINARY: (func $ref-types-first (type $void) - ;; CHECK-BINARY-NEXT: (local $r1 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r2 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r3 anyref) - ;; CHECK-BINARY-NEXT: (local $r4 anyref) - ;; CHECK-BINARY-NEXT: (local $r5 anyref) - ;; CHECK-BINARY-NEXT: (local $r6 funcref) - ;; CHECK-BINARY-NEXT: (local $i1 i32) - ;; CHECK-BINARY-NEXT: (local $i2 i64) - ;; CHECK-BINARY-NEXT: (local $i3 i64) - ;; CHECK-BINARY-NEXT: (nop) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $ref-types-first (type $void) ;; CHECK-TEXT-NEXT: (local $r1 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $r2 (ref null $mixed_results)) + ;; CHECK-TEXT-NEXT: (local $i1 i32) ;; CHECK-TEXT-NEXT: (local $r3 anyref) + ;; CHECK-TEXT-NEXT: (local $i2 i64) ;; CHECK-TEXT-NEXT: (local $r4 anyref) + ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (local $r5 anyref) ;; CHECK-TEXT-NEXT: (local $r6 funcref) - ;; CHECK-TEXT-NEXT: (local $i1 i32) - ;; CHECK-TEXT-NEXT: (local $i2 i64) - ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (nop) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $ref-types-first (type $void) + ;; CHECK-BIN-NEXT: (local $r1 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r2 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r3 anyref) + ;; CHECK-BIN-NEXT: (local $r4 anyref) + ;; CHECK-BIN-NEXT: (local $r5 anyref) + ;; CHECK-BIN-NEXT: (local $r6 funcref) + ;; CHECK-BIN-NEXT: (local $i1 i32) + ;; CHECK-BIN-NEXT: (local $i2 i64) + ;; CHECK-BIN-NEXT: (local $i3 i64) + ;; CHECK-BIN-NEXT: (nop) + ;; CHECK-BIN-NEXT: ) (func $ref-types-first ;; 6 reference types and 3 MVP types. The binary format should emit all the ;; reference types first since a reference type appears first. In addition, @@ -299,30 +276,31 @@ (local $r5 anyref) (local $r6 funcref) ) - ;; CHECK-BINARY: (func $mvp-types-first (type $void) - ;; CHECK-BINARY-NEXT: (local $i1 i32) - ;; CHECK-BINARY-NEXT: (local $i2 i64) - ;; CHECK-BINARY-NEXT: (local $i3 i64) - ;; CHECK-BINARY-NEXT: (local $r1 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r2 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r3 anyref) - ;; CHECK-BINARY-NEXT: (local $r4 anyref) - ;; CHECK-BINARY-NEXT: (local $r5 anyref) - ;; CHECK-BINARY-NEXT: (local $r6 funcref) - ;; CHECK-BINARY-NEXT: (nop) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $mvp-types-first (type $void) ;; CHECK-TEXT-NEXT: (local $i1 i32) - ;; CHECK-TEXT-NEXT: (local $i2 i64) - ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (local $r1 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $r2 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $r3 anyref) + ;; CHECK-TEXT-NEXT: (local $i2 i64) ;; CHECK-TEXT-NEXT: (local $r4 anyref) + ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (local $r5 anyref) ;; CHECK-TEXT-NEXT: (local $r6 funcref) ;; CHECK-TEXT-NEXT: (nop) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $mvp-types-first (type $void) + ;; CHECK-BIN-NEXT: (local $i1 i32) + ;; CHECK-BIN-NEXT: (local $i2 i64) + ;; CHECK-BIN-NEXT: (local $i3 i64) + ;; CHECK-BIN-NEXT: (local $r1 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r2 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r3 anyref) + ;; CHECK-BIN-NEXT: (local $r4 anyref) + ;; CHECK-BIN-NEXT: (local $r5 anyref) + ;; CHECK-BIN-NEXT: (local $r6 funcref) + ;; CHECK-BIN-NEXT: (nop) + ;; CHECK-BIN-NEXT: ) (func $mvp-types-first ;; Reversed from before, now an MVP type appears first, so they should all ;; be before reference types in the binary format. @@ -336,30 +314,31 @@ (local $r5 anyref) (local $r6 funcref) ) - ;; CHECK-BINARY: (func $mvp-types-first-param (type $10) (param $r0 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $i1 i32) - ;; CHECK-BINARY-NEXT: (local $i2 i64) - ;; CHECK-BINARY-NEXT: (local $i3 i64) - ;; CHECK-BINARY-NEXT: (local $r1 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r2 (ref null $mixed_results)) - ;; CHECK-BINARY-NEXT: (local $r3 anyref) - ;; CHECK-BINARY-NEXT: (local $r4 anyref) - ;; CHECK-BINARY-NEXT: (local $r5 anyref) - ;; CHECK-BINARY-NEXT: (local $r6 funcref) - ;; CHECK-BINARY-NEXT: (nop) - ;; CHECK-BINARY-NEXT: ) + ;; CHECK-TEXT: (func $mvp-types-first-param (type $10) (param $r0 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $i1 i32) - ;; CHECK-TEXT-NEXT: (local $i2 i64) - ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (local $r1 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $r2 (ref null $mixed_results)) ;; CHECK-TEXT-NEXT: (local $r3 anyref) + ;; CHECK-TEXT-NEXT: (local $i2 i64) ;; CHECK-TEXT-NEXT: (local $r4 anyref) + ;; CHECK-TEXT-NEXT: (local $i3 i64) ;; CHECK-TEXT-NEXT: (local $r5 anyref) ;; CHECK-TEXT-NEXT: (local $r6 funcref) ;; CHECK-TEXT-NEXT: (nop) ;; CHECK-TEXT-NEXT: ) + ;; CHECK-BIN: (func $mvp-types-first-param (type $10) (param $r0 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $i1 i32) + ;; CHECK-BIN-NEXT: (local $i2 i64) + ;; CHECK-BIN-NEXT: (local $i3 i64) + ;; CHECK-BIN-NEXT: (local $r1 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r2 (ref null $mixed_results)) + ;; CHECK-BIN-NEXT: (local $r3 anyref) + ;; CHECK-BIN-NEXT: (local $r4 anyref) + ;; CHECK-BIN-NEXT: (local $r5 anyref) + ;; CHECK-BIN-NEXT: (local $r6 funcref) + ;; CHECK-BIN-NEXT: (nop) + ;; CHECK-BIN-NEXT: ) (func $mvp-types-first-param (param $r0 (ref null $mixed_results)) ;; As before, but now there is a reference type *parameter*. We should ;; ignore that and sort as in the last function. @@ -374,156 +353,156 @@ (local $r6 funcref) ) ) -;; CHECK-NODEBUG: (type $0 (func (result anyref f32 anyref f32))) - -;; CHECK-NODEBUG: (type $1 (func)) - -;; CHECK-NODEBUG: (type $2 (func (param i32) (result i32))) - -;; CHECK-NODEBUG: (type $3 (func (result i32 (ref null $0) f64))) - -;; CHECK-NODEBUG: (type $4 (func (param (ref $2)) (result i32))) - -;; CHECK-NODEBUG: (type $5 (func (param (ref null $2)) (result i32))) - -;; CHECK-NODEBUG: (type $6 (func (result i32))) - -;; CHECK-NODEBUG: (type $7 (func (result eqref))) - -;; CHECK-NODEBUG: (type $8 (func (param f64) (result (ref null $7)))) - -;; CHECK-NODEBUG: (type $9 (func (result anyref))) - -;; CHECK-NODEBUG: (type $10 (func (param (ref null $0)))) - -;; CHECK-NODEBUG: (elem declare func $0 $2) - -;; CHECK-NODEBUG: (func $0 (type $1) -;; CHECK-NODEBUG-NEXT: (call_ref $1 -;; CHECK-NODEBUG-NEXT: (ref.func $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $1 (type $1) -;; CHECK-NODEBUG-NEXT: (return_call_ref $1 -;; CHECK-NODEBUG-NEXT: (ref.func $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $2 (type $2) (param $0 i32) (result i32) -;; CHECK-NODEBUG-NEXT: (call_ref $2 -;; CHECK-NODEBUG-NEXT: (i32.const 42) -;; CHECK-NODEBUG-NEXT: (ref.func $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $3 (type $4) (param $0 (ref $2)) (result i32) -;; CHECK-NODEBUG-NEXT: (call_ref $2 -;; CHECK-NODEBUG-NEXT: (i32.const 42) -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $4 (type $5) (param $0 (ref null $2)) (result i32) -;; CHECK-NODEBUG-NEXT: (call_ref $2 -;; CHECK-NODEBUG-NEXT: (i32.const 42) -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $5 (type $6) (result i32) -;; CHECK-NODEBUG-NEXT: (local $0 (ref null $2)) -;; CHECK-NODEBUG-NEXT: (local.set $0 -;; CHECK-NODEBUG-NEXT: (ref.func $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (call_ref $2 -;; CHECK-NODEBUG-NEXT: (i32.const 42) -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $6 (type $8) (param $0 f64) (result (ref null $7)) -;; CHECK-NODEBUG-NEXT: (ref.null nofunc) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $7 (type $1) -;; CHECK-NODEBUG-NEXT: (local $0 i32) -;; CHECK-NODEBUG-NEXT: (local $1 f64) -;; CHECK-NODEBUG-NEXT: (local $2 (ref null $9)) -;; CHECK-NODEBUG-NEXT: (nop) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $8 (type $1) -;; CHECK-NODEBUG-NEXT: (local $0 (i32 (ref null $0) f64)) -;; CHECK-NODEBUG-NEXT: (local $1 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $2 i32) -;; CHECK-NODEBUG-NEXT: (local.set $0 -;; CHECK-NODEBUG-NEXT: (block $label$1 (type $3) (result i32 (ref null $0) f64) -;; CHECK-NODEBUG-NEXT: (unreachable) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (block (result i32) -;; CHECK-NODEBUG-NEXT: (local.set $2 -;; CHECK-NODEBUG-NEXT: (tuple.extract 0 -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (block (result (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local.set $1 -;; CHECK-NODEBUG-NEXT: (tuple.extract 1 -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (drop -;; CHECK-NODEBUG-NEXT: (tuple.extract 2 -;; CHECK-NODEBUG-NEXT: (local.get $0) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (local.get $1) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: (local.get $2) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $9 (type $1) -;; CHECK-NODEBUG-NEXT: (local $0 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $1 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $2 anyref) -;; CHECK-NODEBUG-NEXT: (local $3 anyref) -;; CHECK-NODEBUG-NEXT: (local $4 anyref) -;; CHECK-NODEBUG-NEXT: (local $5 funcref) -;; CHECK-NODEBUG-NEXT: (local $6 i32) -;; CHECK-NODEBUG-NEXT: (local $7 i64) -;; CHECK-NODEBUG-NEXT: (local $8 i64) -;; CHECK-NODEBUG-NEXT: (nop) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $10 (type $1) -;; CHECK-NODEBUG-NEXT: (local $0 i32) -;; CHECK-NODEBUG-NEXT: (local $1 i64) -;; CHECK-NODEBUG-NEXT: (local $2 i64) -;; CHECK-NODEBUG-NEXT: (local $3 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $4 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $5 anyref) -;; CHECK-NODEBUG-NEXT: (local $6 anyref) -;; CHECK-NODEBUG-NEXT: (local $7 anyref) -;; CHECK-NODEBUG-NEXT: (local $8 funcref) -;; CHECK-NODEBUG-NEXT: (nop) -;; CHECK-NODEBUG-NEXT: ) - -;; CHECK-NODEBUG: (func $11 (type $10) (param $0 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $1 i32) -;; CHECK-NODEBUG-NEXT: (local $2 i64) -;; CHECK-NODEBUG-NEXT: (local $3 i64) -;; CHECK-NODEBUG-NEXT: (local $4 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $5 (ref null $0)) -;; CHECK-NODEBUG-NEXT: (local $6 anyref) -;; CHECK-NODEBUG-NEXT: (local $7 anyref) -;; CHECK-NODEBUG-NEXT: (local $8 anyref) -;; CHECK-NODEBUG-NEXT: (local $9 funcref) -;; CHECK-NODEBUG-NEXT: (nop) -;; CHECK-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG: (type $0 (func (result anyref f32 anyref f32))) + +;; CHECK-BIN-NODEBUG: (type $1 (func)) + +;; CHECK-BIN-NODEBUG: (type $2 (func (param i32) (result i32))) + +;; CHECK-BIN-NODEBUG: (type $3 (func (result i32 (ref null $0) f64))) + +;; CHECK-BIN-NODEBUG: (type $4 (func (param (ref $2)) (result i32))) + +;; CHECK-BIN-NODEBUG: (type $5 (func (param (ref null $2)) (result i32))) + +;; CHECK-BIN-NODEBUG: (type $6 (func (result i32))) + +;; CHECK-BIN-NODEBUG: (type $7 (func (result eqref))) + +;; CHECK-BIN-NODEBUG: (type $8 (func (param f64) (result (ref null $7)))) + +;; CHECK-BIN-NODEBUG: (type $9 (func (result anyref))) + +;; CHECK-BIN-NODEBUG: (type $10 (func (param (ref null $0)))) + +;; CHECK-BIN-NODEBUG: (elem declare func $0 $2) + +;; CHECK-BIN-NODEBUG: (func $0 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (call_ref $1 +;; CHECK-BIN-NODEBUG-NEXT: (ref.func $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $1 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (return_call_ref $1 +;; CHECK-BIN-NODEBUG-NEXT: (ref.func $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $2 (type $2) (param $0 i32) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (call_ref $2 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 42) +;; CHECK-BIN-NODEBUG-NEXT: (ref.func $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $3 (type $4) (param $0 (ref $2)) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (call_ref $2 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 42) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $4 (type $5) (param $0 (ref null $2)) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (call_ref $2 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 42) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $5 (type $6) (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (local $0 (ref null $2)) +;; CHECK-BIN-NODEBUG-NEXT: (local.set $0 +;; CHECK-BIN-NODEBUG-NEXT: (ref.func $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (call_ref $2 +;; CHECK-BIN-NODEBUG-NEXT: (i32.const 42) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $6 (type $8) (param $0 f64) (result (ref null $7)) +;; CHECK-BIN-NODEBUG-NEXT: (ref.null nofunc) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $7 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (local $0 i32) +;; CHECK-BIN-NODEBUG-NEXT: (local $1 f64) +;; CHECK-BIN-NODEBUG-NEXT: (local $2 (ref null $9)) +;; CHECK-BIN-NODEBUG-NEXT: (nop) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $8 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (local $0 (i32 (ref null $0) f64)) +;; CHECK-BIN-NODEBUG-NEXT: (local $1 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $2 i32) +;; CHECK-BIN-NODEBUG-NEXT: (local.set $0 +;; CHECK-BIN-NODEBUG-NEXT: (block $label$1 (type $3) (result i32 (ref null $0) f64) +;; CHECK-BIN-NODEBUG-NEXT: (unreachable) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (block (result i32) +;; CHECK-BIN-NODEBUG-NEXT: (local.set $2 +;; CHECK-BIN-NODEBUG-NEXT: (tuple.extract 0 +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (block (result (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local.set $1 +;; CHECK-BIN-NODEBUG-NEXT: (tuple.extract 1 +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (drop +;; CHECK-BIN-NODEBUG-NEXT: (tuple.extract 2 +;; CHECK-BIN-NODEBUG-NEXT: (local.get $0) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $1) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: (local.get $2) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $9 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (local $0 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $1 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $2 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $3 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $4 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $5 funcref) +;; CHECK-BIN-NODEBUG-NEXT: (local $6 i32) +;; CHECK-BIN-NODEBUG-NEXT: (local $7 i64) +;; CHECK-BIN-NODEBUG-NEXT: (local $8 i64) +;; CHECK-BIN-NODEBUG-NEXT: (nop) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $10 (type $1) +;; CHECK-BIN-NODEBUG-NEXT: (local $0 i32) +;; CHECK-BIN-NODEBUG-NEXT: (local $1 i64) +;; CHECK-BIN-NODEBUG-NEXT: (local $2 i64) +;; CHECK-BIN-NODEBUG-NEXT: (local $3 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $4 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $5 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $6 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $7 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $8 funcref) +;; CHECK-BIN-NODEBUG-NEXT: (nop) +;; CHECK-BIN-NODEBUG-NEXT: ) + +;; CHECK-BIN-NODEBUG: (func $11 (type $10) (param $0 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $1 i32) +;; CHECK-BIN-NODEBUG-NEXT: (local $2 i64) +;; CHECK-BIN-NODEBUG-NEXT: (local $3 i64) +;; CHECK-BIN-NODEBUG-NEXT: (local $4 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $5 (ref null $0)) +;; CHECK-BIN-NODEBUG-NEXT: (local $6 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $7 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $8 anyref) +;; CHECK-BIN-NODEBUG-NEXT: (local $9 funcref) +;; CHECK-BIN-NODEBUG-NEXT: (nop) +;; CHECK-BIN-NODEBUG-NEXT: ) |