summaryrefslogtreecommitdiff
path: root/test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast
diff options
context:
space:
mode:
authorWouter van Oortmerssen <aardappel@gmail.com>2020-10-13 08:57:34 -0700
committerGitHub <noreply@github.com>2020-10-13 08:57:34 -0700
commit639dc87a9ea6a633acca5b5ababfe81f8059cf5f (patch)
tree6621196ce738947883b228b224a066a2511f0d56 /test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast
parent947ad6e14d2de3d1f1ca14b8de3f3c341185ed96 (diff)
downloadbinaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.tar.gz
binaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.tar.bz2
binaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.zip
Added Initial Memory64Lowering pass (#3230)
This pass will convert a module with 64-bit loads and stores accessing a 64-bit memory to a regular 32-bit one. Pointers remain 64-bit but are truncated just before use.
Diffstat (limited to 'test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast')
-rw-r--r--test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast30
1 files changed, 30 insertions, 0 deletions
diff --git a/test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast b/test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast
new file mode 100644
index 000000000..433d509c3
--- /dev/null
+++ b/test/passes/memory64-lowering_enable-memory64_enable-bulk-memory.wast
@@ -0,0 +1,30 @@
+(module
+ (memory $0 i64 1 1)
+ (data (i32.const 0) "\00\00\00\00\00\00\00\00\00\00")
+ (func $func_1
+ (drop (i32.load (i64.const 4)))
+ (drop (i32.load align=1 (i64.const 4)))
+ (drop (i32.load align=2 (i64.const 4)))
+ (drop (i32.load align=4 (i64.const 4)))
+ (drop (i32.load offset=100 (i64.const 4)))
+ (drop (i32.load offset=100 align=1 (i64.const 4)))
+ (drop (i32.load offset=100 align=2 (i64.const 4)))
+ (drop (i32.load offset=100 align=4 (i64.const 4)))
+ (drop (i32.load offset=100 align=1 (unreachable)))
+ (i32.store (i64.const 4) (i32.const 8))
+ (i32.store align=1 (i64.const 4) (i32.const 8))
+ (i32.store align=2 (i64.const 4) (i32.const 8))
+ (i32.store align=4 (i64.const 4) (i32.const 8))
+ (i32.store offset=100 (i64.const 4) (i32.const 8))
+ (i32.store offset=100 align=1 (i64.const 4) (i32.const 8))
+ (i32.store offset=100 align=2 (i64.const 4) (i32.const 8))
+ (i32.store offset=100 align=4 (i64.const 4) (i32.const 8))
+ (i32.store offset=100 align=1 (unreachable) (i32.const 8))
+ (i32.store offset=100 align=1 (i64.const 4) (unreachable))
+ (drop (memory.size))
+ (drop (memory.grow (i64.const 1)))
+ (memory.init 0 (i64.const 1) (i32.const 2) (i32.const 3))
+ (memory.fill (i64.const 1) (i32.const 2) (i64.const 3))
+ (memory.copy (i64.const 1) (i64.const 2) (i64.const 3))
+ )
+)