summaryrefslogtreecommitdiff
path: root/test/passes/alignment-lowering64.wast
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/alignment-lowering64.wast')
-rw-r--r--test/passes/alignment-lowering64.wast103
1 files changed, 103 insertions, 0 deletions
diff --git a/test/passes/alignment-lowering64.wast b/test/passes/alignment-lowering64.wast
new file mode 100644
index 000000000..c31eb8256
--- /dev/null
+++ b/test/passes/alignment-lowering64.wast
@@ -0,0 +1,103 @@
+(module
+ (memory $0 i64 1 1)
+ (func $func_4
+ (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))
+ )
+ (func $func_2
+ (drop (i32.load16_u (i64.const 4)))
+ (drop (i32.load16_u align=1 (i64.const 4)))
+ (drop (i32.load16_u align=2 (i64.const 4)))
+ (drop (i32.load16_u offset=100 (i64.const 4)))
+ (drop (i32.load16_u offset=100 align=1 (i64.const 4)))
+ (drop (i32.load16_u offset=100 align=2 (i64.const 4)))
+ (drop (i32.load16_u offset=100 align=1 (unreachable)))
+ (i32.store16 (i64.const 4) (i32.const 8))
+ (i32.store16 align=1 (i64.const 4) (i32.const 8))
+ (i32.store16 align=2 (i64.const 4) (i32.const 8))
+ (i32.store16 offset=100 (i64.const 4) (i32.const 8))
+ (i32.store16 offset=100 align=1 (i64.const 4) (i32.const 8))
+ (i32.store16 offset=100 align=2 (i64.const 4) (i32.const 8))
+ (i32.store16 offset=100 align=1 (unreachable) (i32.const 8))
+ (i32.store16 offset=100 align=1 (i64.const 4) (unreachable))
+ )
+ (func $func_1
+ (drop (i32.load8_u (i64.const 4)))
+ (drop (i32.load8_u align=1 (i64.const 4)))
+ (drop (i32.load8_u offset=100 (i64.const 4)))
+ (drop (i32.load8_u offset=100 align=1 (i64.const 4)))
+ (drop (i32.load8_u offset=100 align=1 (unreachable)))
+ (i32.store8 (i64.const 4) (i32.const 8))
+ (i32.store8 align=1 (i64.const 4) (i32.const 8))
+ (i32.store8 offset=100 (i64.const 4) (i32.const 8))
+ (i32.store8 offset=100 align=1 (i64.const 4) (i32.const 8))
+ (i32.store8 offset=100 align=1 (unreachable) (i32.const 8))
+ (i32.store8 offset=100 align=1 (i64.const 4) (unreachable))
+ )
+ (func $func_signed
+ (drop (i32.load16_s (i64.const 4)))
+ (drop (i32.load16_s align=1 (i64.const 4)))
+ (drop (i32.load16_s align=2 (i64.const 4)))
+ (drop (i32.load16_s offset=100 (i64.const 4)))
+ (drop (i32.load16_s offset=100 align=1 (i64.const 4)))
+ (drop (i32.load16_s offset=100 align=2 (i64.const 4)))
+ (drop (i32.load16_s offset=100 align=1 (unreachable)))
+ )
+ (func $i64-load
+ (drop (i64.load align=1 (i64.const 12)))
+ (drop (i64.load align=2 (i64.const 16)))
+ (drop (i64.load align=4 (i64.const 20)))
+ (drop (i64.load align=1 offset=3 (i64.const 20)))
+ (drop (i64.load16_s align=1 (i64.const 28)))
+ (drop (i64.load32_s align=1 (i64.const 32)))
+ (drop (i64.load16_u align=1 (i64.const 40)))
+ (drop (i64.load32_u align=1 (i64.const 44)))
+ )
+ (func $f32-load
+ (drop (f32.load align=1 (i64.const 12)))
+ (drop (f32.load align=2 (i64.const 16)))
+ (drop (f32.load align=1 offset=3 (i64.const 20)))
+ )
+ (func $f64-load
+ (drop (f64.load align=1 (i64.const 12)))
+ (drop (f64.load align=2 (i64.const 16)))
+ (drop (f64.load align=4 (i64.const 20)))
+ (drop (f64.load align=1 offset=3 (i64.const 20)))
+ )
+ (func $i64-store
+ (i64.store align=1 (i64.const 12) (i64.const 100))
+ (i64.store align=2 (i64.const 16) (i64.const 200))
+ (i64.store align=4 (i64.const 20) (i64.const 300))
+ (i64.store align=1 offset=3 (i64.const 24) (i64.const 400))
+ (i64.store16 align=1 (i64.const 20) (i64.const 600))
+ (i64.store32 align=1 (i64.const 20) (i64.const 700))
+ )
+ (func $f32-store
+ (f32.store align=1 (i64.const 12) (f32.const 100))
+ (f32.store align=2 (i64.const 16) (f32.const 200))
+ (f32.store align=1 offset=3 (i64.const 24) (f32.const 400))
+ )
+ (func $f64-store
+ (f64.store align=1 (i64.const 12) (f64.const 100))
+ (f64.store align=2 (i64.const 16) (f64.const 200))
+ (f64.store align=4 (i64.const 20) (f64.const 300))
+ (f64.store align=1 offset=3 (i64.const 24) (f64.const 400))
+ )
+)