summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/passes/optimize-instructions_all-features.txt30
-rw-r--r--test/passes/optimize-instructions_all-features.wast46
2 files changed, 76 insertions, 0 deletions
diff --git a/test/passes/optimize-instructions_all-features.txt b/test/passes/optimize-instructions_all-features.txt
index 93f4c3087..edebe0bc2 100644
--- a/test/passes/optimize-instructions_all-features.txt
+++ b/test/passes/optimize-instructions_all-features.txt
@@ -23,6 +23,36 @@
(memory $0 0)
(export "load-off-2" (func $load-off-2))
(func $f (param $i1 i32) (param $i2 i64)
+ (drop
+ (i32.and
+ (local.get $i1)
+ (i32.const 1)
+ )
+ )
+ (drop
+ (i32.or
+ (local.get $i1)
+ (i32.const 3)
+ )
+ )
+ (drop
+ (i32.xor
+ (local.get $i1)
+ (i32.const 5)
+ )
+ )
+ (drop
+ (i32.mul
+ (local.get $i1)
+ (i32.const -10)
+ )
+ )
+ (drop
+ (i32.mul
+ (local.get $i1)
+ (i32.const -133169153)
+ )
+ )
(if
(i32.eqz
(local.get $i1)
diff --git a/test/passes/optimize-instructions_all-features.wast b/test/passes/optimize-instructions_all-features.wast
index 80f440a59..cf3938cdf 100644
--- a/test/passes/optimize-instructions_all-features.wast
+++ b/test/passes/optimize-instructions_all-features.wast
@@ -2,6 +2,52 @@
(memory 0)
(type $0 (func (param i32 i64)))
(func $f (type $0) (param $i1 i32) (param $i2 i64)
+ (drop
+ (i32.and
+ (i32.and
+ (local.get $i1)
+ (i32.const 5)
+ )
+ (i32.const 3)
+ )
+ )
+ (drop
+ (i32.or
+ (i32.or
+ (local.get $i1)
+ (i32.const 1)
+ )
+ (i32.const 2)
+ )
+ )
+ (drop
+ (i32.xor
+ (i32.xor
+ (local.get $i1)
+ (i32.const -2)
+ )
+ (i32.const -5)
+ )
+ )
+ (drop
+ (i32.mul
+ (i32.mul
+ (local.get $i1)
+ (i32.const -2)
+ )
+ (i32.const 5)
+ )
+ )
+ ;; overflow also valid
+ (drop
+ (i32.mul
+ (i32.mul
+ (local.get $i1)
+ (i32.const 0xfffff)
+ )
+ (i32.const 0x8000001)
+ )
+ )
(if
(i32.eqz
(local.get $i1)