summaryrefslogtreecommitdiff
path: root/test/passes/optimize-instructions.txt
diff options
context:
space:
mode:
Diffstat (limited to 'test/passes/optimize-instructions.txt')
-rw-r--r--test/passes/optimize-instructions.txt77
1 files changed, 68 insertions, 9 deletions
diff --git a/test/passes/optimize-instructions.txt b/test/passes/optimize-instructions.txt
index a399a9096..55501dfb8 100644
--- a/test/passes/optimize-instructions.txt
+++ b/test/passes/optimize-instructions.txt
@@ -7,6 +7,7 @@
(type $5 (func (param i32)))
(type $6 (func (param i32 i32) (result i32)))
(type $7 (func (param i64) (result i64)))
+ (type $8 (func (result i64)))
(memory $0 0)
(export "load-off-2" (func $load-off-2))
(func $f (type $0) (param $i1 i32) (param $i2 i64)
@@ -827,11 +828,14 @@
)
)
(drop
- (i32.shl
- (i32.clz
- (i32.const 0)
+ (i32.shr_s
+ (i32.shl
+ (i32.clz
+ (i32.const 0)
+ )
+ (i32.const 26)
)
- (i32.const 2)
+ (i32.const 24)
)
)
(drop
@@ -853,13 +857,16 @@
)
)
(drop
- (i32.shl
- (i32.wrap/i64
- (i64.clz
- (i64.const 0)
+ (i32.shr_s
+ (i32.shl
+ (i32.wrap/i64
+ (i64.clz
+ (i64.const 0)
+ )
)
+ (i32.const 25)
)
- (i32.const 1)
+ (i32.const 24)
)
)
(drop
@@ -2061,4 +2068,56 @@
(i32.const 9)
)
)
+ (func $mix-shifts (type $2) (result i32)
+ (i32.shr_s
+ (i32.shl
+ (i32.const 23)
+ (i32.const -61)
+ )
+ (i32.const 168)
+ )
+ )
+ (func $actually-no-shifts (type $2) (result i32)
+ (i32.const 33)
+ )
+ (func $less-shifts-than-it-seems (type $3) (param $x i32) (result i32)
+ (i32.const 4800)
+ )
+ (func $and-popcount32 (type $2) (result i32)
+ (i32.and
+ (i32.popcnt
+ (i32.const -1)
+ )
+ (i32.const 31)
+ )
+ )
+ (func $and-popcount32-big (type $2) (result i32)
+ (i32.popcnt
+ (i32.const -1)
+ )
+ )
+ (func $and-popcount64 (type $8) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 63)
+ )
+ )
+ (func $and-popcount64-big (type $8) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 127)
+ )
+ )
+ (func $and-popcount64-bigger (type $8) (result i64)
+ (i64.and
+ (i64.popcnt
+ (i64.const -1)
+ )
+ (i64.const 255)
+ )
+ )
)