summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/multi-memories-atomics64.wasmbin835 -> 0 bytes
-rw-r--r--test/multi-memories-atomics64.wast352
-rw-r--r--test/multi-memories-atomics64.wast.from-wast351
-rw-r--r--test/multi-memories-atomics64.wast.fromBinary352
-rw-r--r--test/multi-memories-atomics64.wast.fromBinary.noDebugInfo352
-rw-r--r--test/multi-memories-basics.wasmbin400 -> 0 bytes
-rw-r--r--test/multi-memories-basics.wast117
-rw-r--r--test/multi-memories-basics.wast.from-wast116
-rw-r--r--test/multi-memories-basics.wast.fromBinary117
-rw-r--r--test/multi-memories-basics.wast.fromBinary.noDebugInfo117
-rw-r--r--test/multi-memories-simd.wasmbin2292 -> 0 bytes
-rw-r--r--test/multi-memories-simd.wast320
-rw-r--r--test/multi-memories-simd.wast.from-wast319
-rw-r--r--test/multi-memories-simd.wast.fromBinary320
-rw-r--r--test/multi-memories-simd.wast.fromBinary.noDebugInfo320
15 files changed, 3153 insertions, 0 deletions
diff --git a/test/multi-memories-atomics64.wasm b/test/multi-memories-atomics64.wasm
deleted file mode 100644
index a13826285..000000000
--- a/test/multi-memories-atomics64.wasm
+++ /dev/null
Binary files differ
diff --git a/test/multi-memories-atomics64.wast b/test/multi-memories-atomics64.wast
new file mode 100644
index 000000000..565a5e63a
--- /dev/null
+++ b/test/multi-memories-atomics64.wast
@@ -0,0 +1,352 @@
+(module
+ (type $0 (func))
+ (memory $appMemory (shared i64 23 256))
+ (memory $dataMemory (shared i64 23 256))
+ (memory $instrumentMemory (shared i64 23 256))
+ (func $atomic-loadstore
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $instrumentMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $dataMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $atomic-rmw
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.add $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.add $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ )
+ (func $atomic-cmpxchg
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.cmpxchg $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $dataMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-wait-notify
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (memory.atomic.wait32 $dataMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $appMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-fence
+ (atomic.fence)
+ )
+)
+
diff --git a/test/multi-memories-atomics64.wast.from-wast b/test/multi-memories-atomics64.wast.from-wast
new file mode 100644
index 000000000..603e26b5d
--- /dev/null
+++ b/test/multi-memories-atomics64.wast.from-wast
@@ -0,0 +1,351 @@
+(module
+ (type $0 (func))
+ (memory $appMemory (shared i64 23 256))
+ (memory $dataMemory (shared i64 23 256))
+ (memory $instrumentMemory (shared i64 23 256))
+ (func $atomic-loadstore
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $instrumentMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $dataMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $atomic-rmw
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.add $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.add $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ )
+ (func $atomic-cmpxchg
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.cmpxchg $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $dataMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-wait-notify
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (memory.atomic.wait32 $dataMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $appMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-fence
+ (atomic.fence)
+ )
+)
diff --git a/test/multi-memories-atomics64.wast.fromBinary b/test/multi-memories-atomics64.wast.fromBinary
new file mode 100644
index 000000000..565a5e63a
--- /dev/null
+++ b/test/multi-memories-atomics64.wast.fromBinary
@@ -0,0 +1,352 @@
+(module
+ (type $0 (func))
+ (memory $appMemory (shared i64 23 256))
+ (memory $dataMemory (shared i64 23 256))
+ (memory $instrumentMemory (shared i64 23 256))
+ (func $atomic-loadstore
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load8_u $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $instrumentMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $dataMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $appMemory offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $dataMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $appMemory
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $instrumentMemory
+ (local.get $0)
+ )
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $atomic-rmw
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.add $dataMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.add $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $appMemory
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ )
+ (func $atomic-cmpxchg
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.cmpxchg $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $appMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $appMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $dataMemory offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $dataMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-wait-notify
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (memory.atomic.wait32 $dataMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $appMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $instrumentMemory offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $appMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $dataMemory offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $instrumentMemory
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $appMemory offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $atomic-fence
+ (atomic.fence)
+ )
+)
+
diff --git a/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo b/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo
new file mode 100644
index 000000000..712877249
--- /dev/null
+++ b/test/multi-memories-atomics64.wast.fromBinary.noDebugInfo
@@ -0,0 +1,352 @@
+(module
+ (type $none_=>_none (func))
+ (memory $0 (shared i64 23 256))
+ (memory $1 (shared i64 23 256))
+ (memory $2 (shared i64 23 256))
+ (func $0
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.load8_u $0 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load8_u $0 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $1 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load16_u $2 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $1 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i32.atomic.load $0 offset=4
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $0
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load8_u $1
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $0
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load16_u $0
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $2
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load32_u $0
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $0
+ (local.get $0)
+ )
+ )
+ (drop
+ (i64.atomic.load $2
+ (local.get $0)
+ )
+ )
+ (i32.atomic.store $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $2 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store8 $1 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i32.atomic.store16 $1 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ (i64.atomic.store $0 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store $0 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $1 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store8 $2 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $0 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store16 $0 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $2 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ (i64.atomic.store32 $1 offset=4
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $1
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.add $1 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.add $2 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.add_u $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $1
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw16.and_u $2
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.or_u $0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $0
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.xchg_u $1
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ )
+ (func $2
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (i32.atomic.rmw.cmpxchg $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw.cmpxchg $2 offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $0
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i32.atomic.rmw8.cmpxchg_u $0
+ (local.get $0)
+ (local.get $2)
+ (local.get $2)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $0 offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw.cmpxchg $1 offset=4
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $2
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (i64.atomic.rmw32.cmpxchg_u $1
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $3
+ (local $0 i64)
+ (local $1 i64)
+ (local $2 i32)
+ (drop
+ (memory.atomic.wait32 $1
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $2
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $0 offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait32 $2 offset=4
+ (local.get $0)
+ (local.get $2)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.notify $1
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $1
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $0 offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.notify $1 offset=24
+ (local.get $0)
+ (local.get $2)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $2
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $2
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $0 offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ (drop
+ (memory.atomic.wait64 $0 offset=16
+ (local.get $0)
+ (local.get $1)
+ (local.get $1)
+ )
+ )
+ )
+ (func $4
+ (atomic.fence)
+ )
+)
+
diff --git a/test/multi-memories-basics.wasm b/test/multi-memories-basics.wasm
deleted file mode 100644
index d75c74cff..000000000
--- a/test/multi-memories-basics.wasm
+++ /dev/null
Binary files differ
diff --git a/test/multi-memories-basics.wast b/test/multi-memories-basics.wast
new file mode 100644
index 000000000..62b926531
--- /dev/null
+++ b/test/multi-memories-basics.wast
@@ -0,0 +1,117 @@
+(module
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ (import "env" "memory" (memory $importedMemory 1 1))
+ (memory $memory1 1 500)
+ (memory $memory2 1 800)
+ (memory $memory3 1 400)
+ (data (i32.const 0) "abcd")
+ (func $memory.fill
+ (memory.fill $memory2
+ (i32.const 0)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (func $memory.copy
+ (memory.copy $memory2 $memory3
+ (i32.const 512)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ )
+ (func $memory.init
+ (memory.init $memory1 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 45)
+ )
+ )
+ (func $memory.grow (result i32)
+ (memory.grow $memory3
+ (i32.const 10)
+ )
+ )
+ (func $memory.size (result i32)
+ (memory.size $memory3)
+ )
+ (func $loads
+ (drop
+ (i32.load $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ )
+ (func $stores
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store16 $memory2
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store16 $importedMemory
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ )
+)
+
diff --git a/test/multi-memories-basics.wast.from-wast b/test/multi-memories-basics.wast.from-wast
new file mode 100644
index 000000000..7998b62f0
--- /dev/null
+++ b/test/multi-memories-basics.wast.from-wast
@@ -0,0 +1,116 @@
+(module
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ (import "env" "memory" (memory $importedMemory 1 1))
+ (memory $memory1 1 500)
+ (memory $memory2 1 800)
+ (memory $memory3 1 400)
+ (data (i32.const 0) "abcd")
+ (func $memory.fill
+ (memory.fill $memory2
+ (i32.const 0)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (func $memory.copy
+ (memory.copy $memory2 $memory3
+ (i32.const 512)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ )
+ (func $memory.init
+ (memory.init $memory1 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 45)
+ )
+ )
+ (func $memory.grow (result i32)
+ (memory.grow $memory3
+ (i32.const 10)
+ )
+ )
+ (func $memory.size (result i32)
+ (memory.size $memory3)
+ )
+ (func $loads
+ (drop
+ (i32.load $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ )
+ (func $stores
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store16 $memory2
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store16 $importedMemory
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ )
+)
diff --git a/test/multi-memories-basics.wast.fromBinary b/test/multi-memories-basics.wast.fromBinary
new file mode 100644
index 000000000..62b926531
--- /dev/null
+++ b/test/multi-memories-basics.wast.fromBinary
@@ -0,0 +1,117 @@
+(module
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ (import "env" "memory" (memory $importedMemory 1 1))
+ (memory $memory1 1 500)
+ (memory $memory2 1 800)
+ (memory $memory3 1 400)
+ (data (i32.const 0) "abcd")
+ (func $memory.fill
+ (memory.fill $memory2
+ (i32.const 0)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (func $memory.copy
+ (memory.copy $memory2 $memory3
+ (i32.const 512)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ )
+ (func $memory.init
+ (memory.init $memory1 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 45)
+ )
+ )
+ (func $memory.grow (result i32)
+ (memory.grow $memory3
+ (i32.const 10)
+ )
+ )
+ (func $memory.size (result i32)
+ (memory.size $memory3)
+ )
+ (func $loads
+ (drop
+ (i32.load $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $memory3
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $memory1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $memory2
+ (i32.const 12)
+ )
+ )
+ )
+ (func $stores
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store $memory1
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store16 $memory2
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store16 $importedMemory
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ (i32.store8 $memory3
+ (i32.const 23)
+ (i32.const 120)
+ )
+ )
+)
+
diff --git a/test/multi-memories-basics.wast.fromBinary.noDebugInfo b/test/multi-memories-basics.wast.fromBinary.noDebugInfo
new file mode 100644
index 000000000..061c0948b
--- /dev/null
+++ b/test/multi-memories-basics.wast.fromBinary.noDebugInfo
@@ -0,0 +1,117 @@
+(module
+ (type $none_=>_none (func))
+ (type $none_=>_i32 (func (result i32)))
+ (import "env" "memory" (memory $mimport$0 1 1))
+ (memory $0 1 500)
+ (memory $1 1 800)
+ (memory $2 1 400)
+ (data (i32.const 0) "abcd")
+ (func $0
+ (memory.fill $1
+ (i32.const 0)
+ (i32.const 1)
+ (i32.const 2)
+ )
+ )
+ (func $1
+ (memory.copy $1 $2
+ (i32.const 512)
+ (i32.const 0)
+ (i32.const 12)
+ )
+ )
+ (func $2
+ (memory.init $0 0
+ (i32.const 0)
+ (i32.const 0)
+ (i32.const 45)
+ )
+ )
+ (func $3 (result i32)
+ (memory.grow $2
+ (i32.const 10)
+ )
+ )
+ (func $4 (result i32)
+ (memory.size $2)
+ )
+ (func $5
+ (drop
+ (i32.load $0
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load $2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_s $1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_s $2
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $0
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load16_u $0
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $1
+ (i32.const 12)
+ )
+ )
+ (drop
+ (i32.load8_u $1
+ (i32.const 12)
+ )
+ )
+ )
+ (func $6
+ (i32.store $0
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store $0
+ (i32.const 12)
+ (i32.const 115)
+ )
+ (i32.store16 $1
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store16 $mimport$0
+ (i32.const 20)
+ (i32.const 31353)
+ )
+ (i32.store8 $2
+ (i32.const 23)
+ (i32.const 120)
+ )
+ (i32.store8 $2
+ (i32.const 23)
+ (i32.const 120)
+ )
+ )
+)
+
diff --git a/test/multi-memories-simd.wasm b/test/multi-memories-simd.wasm
deleted file mode 100644
index e8925efd6..000000000
--- a/test/multi-memories-simd.wasm
+++ /dev/null
Binary files differ
diff --git a/test/multi-memories-simd.wast b/test/multi-memories-simd.wast
new file mode 100644
index 000000000..48cde73c3
--- /dev/null
+++ b/test/multi-memories-simd.wast
@@ -0,0 +1,320 @@
+(module
+ (type $i32_=>_v128 (func (param i32) (result v128)))
+ (type $i32_v128_=>_none (func (param i32 v128)))
+ (type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
+ (memory $memorya 1 1)
+ (memory $memoryb 1 1)
+ (memory $memoryc 1 1)
+ (memory $memoryd 1 1)
+ (func $v128.load (param $0 i32) (result v128)
+ (v128.load $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load2 (param $0 i32) (result v128)
+ (v128.load $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s2 (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u2 (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s2 (param $0 i32) (result v128)
+ (v128.load16x4_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u2 (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s2 (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u2 (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat2 (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat2 (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat2 (param $0 i32) (result v128)
+ (v128.load32_splat $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat2 (param $0 i32) (result v128)
+ (v128.load64_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.store (param $0 i32) (param $1 v128)
+ (v128.store $memorya
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store2 (param $0 i32) (param $1 v128)
+ (v128.store $memoryb
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryc offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_zero2 (param $0 i32) (result v128)
+ (v128.load32_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero2 (param $0 i32) (result v128)
+ (v128.load64_zero $memoryc
+ (local.get $0)
+ )
+ )
+)
+
diff --git a/test/multi-memories-simd.wast.from-wast b/test/multi-memories-simd.wast.from-wast
new file mode 100644
index 000000000..918d7fd9c
--- /dev/null
+++ b/test/multi-memories-simd.wast.from-wast
@@ -0,0 +1,319 @@
+(module
+ (type $i32_=>_v128 (func (param i32) (result v128)))
+ (type $i32_v128_=>_none (func (param i32 v128)))
+ (type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
+ (memory $memorya 1 1)
+ (memory $memoryb 1 1)
+ (memory $memoryc 1 1)
+ (memory $memoryd 1 1)
+ (func $v128.load (param $0 i32) (result v128)
+ (v128.load $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load2 (param $0 i32) (result v128)
+ (v128.load $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s2 (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u2 (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s2 (param $0 i32) (result v128)
+ (v128.load16x4_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u2 (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s2 (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u2 (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat2 (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat2 (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat2 (param $0 i32) (result v128)
+ (v128.load32_splat $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat2 (param $0 i32) (result v128)
+ (v128.load64_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.store (param $0 i32) (param $1 v128)
+ (v128.store $memorya
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store2 (param $0 i32) (param $1 v128)
+ (v128.store $memoryb
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryc offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_zero2 (param $0 i32) (result v128)
+ (v128.load32_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero2 (param $0 i32) (result v128)
+ (v128.load64_zero $memoryc
+ (local.get $0)
+ )
+ )
+)
diff --git a/test/multi-memories-simd.wast.fromBinary b/test/multi-memories-simd.wast.fromBinary
new file mode 100644
index 000000000..48cde73c3
--- /dev/null
+++ b/test/multi-memories-simd.wast.fromBinary
@@ -0,0 +1,320 @@
+(module
+ (type $i32_=>_v128 (func (param i32) (result v128)))
+ (type $i32_v128_=>_none (func (param i32 v128)))
+ (type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
+ (memory $memorya 1 1)
+ (memory $memoryb 1 1)
+ (memory $memoryc 1 1)
+ (memory $memoryd 1 1)
+ (func $v128.load (param $0 i32) (result v128)
+ (v128.load $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load2 (param $0 i32) (result v128)
+ (v128.load $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_s2 (param $0 i32) (result v128)
+ (v128.load8x8_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load8x8_u2 (param $0 i32) (result v128)
+ (v128.load8x8_u $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s (param $0 i32) (result v128)
+ (v128.load16x4_s $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_s2 (param $0 i32) (result v128)
+ (v128.load16x4_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16x4_u2 (param $0 i32) (result v128)
+ (v128.load16x4_u $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_s2 (param $0 i32) (result v128)
+ (v128.load32x2_s $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32x2_u2 (param $0 i32) (result v128)
+ (v128.load32x2_u $memoryc
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load8_splat2 (param $0 i32) (result v128)
+ (v128.load8_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load16_splat2 (param $0 i32) (result v128)
+ (v128.load16_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat (param $0 i32) (result v128)
+ (v128.load32_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_splat2 (param $0 i32) (result v128)
+ (v128.load32_splat $memoryd
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat (param $0 i32) (result v128)
+ (v128.load64_splat $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_splat2 (param $0 i32) (result v128)
+ (v128.load64_splat $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.store (param $0 i32) (param $1 v128)
+ (v128.store $memorya
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store2 (param $0 i32) (param $1 v128)
+ (v128.store $memoryb
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load8_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load16_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryc offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryb offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memorya offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load64_lane_align_offset2 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store8_lane2 (param $0 i32) (param $1 v128)
+ (v128.store8_lane $memoryd 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memorya 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store16_lane2 (param $0 i32) (param $1 v128)
+ (v128.store16_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store32_lane2 (param $0 i32) (param $1 v128)
+ (v128.store32_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryc 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memorya offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryb offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.store64_lane_align_offset2 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $memoryd offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $v128.load32_zero (param $0 i32) (result v128)
+ (v128.load32_zero $memorya
+ (local.get $0)
+ )
+ )
+ (func $v128.load32_zero2 (param $0 i32) (result v128)
+ (v128.load32_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero (param $0 i32) (result v128)
+ (v128.load64_zero $memoryb
+ (local.get $0)
+ )
+ )
+ (func $v128.load64_zero2 (param $0 i32) (result v128)
+ (v128.load64_zero $memoryc
+ (local.get $0)
+ )
+ )
+)
+
diff --git a/test/multi-memories-simd.wast.fromBinary.noDebugInfo b/test/multi-memories-simd.wast.fromBinary.noDebugInfo
new file mode 100644
index 000000000..583f5850d
--- /dev/null
+++ b/test/multi-memories-simd.wast.fromBinary.noDebugInfo
@@ -0,0 +1,320 @@
+(module
+ (type $i32_=>_v128 (func (param i32) (result v128)))
+ (type $i32_v128_=>_none (func (param i32 v128)))
+ (type $i32_v128_=>_v128 (func (param i32 v128) (result v128)))
+ (memory $0 1 1)
+ (memory $1 1 1)
+ (memory $2 1 1)
+ (memory $3 1 1)
+ (func $0 (param $0 i32) (result v128)
+ (v128.load $0
+ (local.get $0)
+ )
+ )
+ (func $1 (param $0 i32) (result v128)
+ (v128.load $1
+ (local.get $0)
+ )
+ )
+ (func $2 (param $0 i32) (result v128)
+ (v128.load8x8_s $2
+ (local.get $0)
+ )
+ )
+ (func $3 (param $0 i32) (result v128)
+ (v128.load8x8_s $1
+ (local.get $0)
+ )
+ )
+ (func $4 (param $0 i32) (result v128)
+ (v128.load8x8_u $3
+ (local.get $0)
+ )
+ )
+ (func $5 (param $0 i32) (result v128)
+ (v128.load8x8_u $3
+ (local.get $0)
+ )
+ )
+ (func $6 (param $0 i32) (result v128)
+ (v128.load16x4_s $0
+ (local.get $0)
+ )
+ )
+ (func $7 (param $0 i32) (result v128)
+ (v128.load16x4_s $1
+ (local.get $0)
+ )
+ )
+ (func $8 (param $0 i32) (result v128)
+ (v128.load16x4_u $0
+ (local.get $0)
+ )
+ )
+ (func $9 (param $0 i32) (result v128)
+ (v128.load16x4_u $0
+ (local.get $0)
+ )
+ )
+ (func $10 (param $0 i32) (result v128)
+ (v128.load32x2_s $2
+ (local.get $0)
+ )
+ )
+ (func $11 (param $0 i32) (result v128)
+ (v128.load32x2_s $1
+ (local.get $0)
+ )
+ )
+ (func $12 (param $0 i32) (result v128)
+ (v128.load32x2_u $1
+ (local.get $0)
+ )
+ )
+ (func $13 (param $0 i32) (result v128)
+ (v128.load32x2_u $2
+ (local.get $0)
+ )
+ )
+ (func $14 (param $0 i32) (result v128)
+ (v128.load8_splat $1
+ (local.get $0)
+ )
+ )
+ (func $15 (param $0 i32) (result v128)
+ (v128.load8_splat $1
+ (local.get $0)
+ )
+ )
+ (func $16 (param $0 i32) (result v128)
+ (v128.load16_splat $0
+ (local.get $0)
+ )
+ )
+ (func $17 (param $0 i32) (result v128)
+ (v128.load16_splat $0
+ (local.get $0)
+ )
+ )
+ (func $18 (param $0 i32) (result v128)
+ (v128.load32_splat $1
+ (local.get $0)
+ )
+ )
+ (func $19 (param $0 i32) (result v128)
+ (v128.load32_splat $3
+ (local.get $0)
+ )
+ )
+ (func $20 (param $0 i32) (result v128)
+ (v128.load64_splat $1
+ (local.get $0)
+ )
+ )
+ (func $21 (param $0 i32) (result v128)
+ (v128.load64_splat $0
+ (local.get $0)
+ )
+ )
+ (func $22 (param $0 i32) (param $1 v128)
+ (v128.store $0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $23 (param $0 i32) (param $1 v128)
+ (v128.store $1
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $24 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $0 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $25 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load8_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $26 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $27 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load16_lane $3 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $28 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $0 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $29 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load32_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $30 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $3 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $31 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $32 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $0 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $33 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $1 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $34 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $2 offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $35 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $1 offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $36 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $0 offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $37 (param $0 i32) (param $1 v128) (result v128)
+ (v128.load64_lane $3 offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $38 (param $0 i32) (param $1 v128)
+ (v128.store8_lane $0 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $39 (param $0 i32) (param $1 v128)
+ (v128.store8_lane $3 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $40 (param $0 i32) (param $1 v128)
+ (v128.store16_lane $0 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $41 (param $0 i32) (param $1 v128)
+ (v128.store16_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $42 (param $0 i32) (param $1 v128)
+ (v128.store32_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $43 (param $0 i32) (param $1 v128)
+ (v128.store32_lane $2 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $44 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $2 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $45 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $46 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $1 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $47 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $0 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $48 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $3 offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $49 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $0 offset=32 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $50 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $1 offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $51 (param $0 i32) (param $1 v128)
+ (v128.store64_lane $3 offset=32 align=1 0
+ (local.get $0)
+ (local.get $1)
+ )
+ )
+ (func $52 (param $0 i32) (result v128)
+ (v128.load32_zero $0
+ (local.get $0)
+ )
+ )
+ (func $53 (param $0 i32) (result v128)
+ (v128.load32_zero $1
+ (local.get $0)
+ )
+ )
+ (func $54 (param $0 i32) (result v128)
+ (v128.load64_zero $1
+ (local.get $0)
+ )
+ )
+ (func $55 (param $0 i32) (result v128)
+ (v128.load64_zero $2
+ (local.get $0)
+ )
+ )
+)
+