diff options
Diffstat (limited to 'test/passes/optimize-instructions.txt')
-rw-r--r-- | test/passes/optimize-instructions.txt | 77 |
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) + ) + ) ) |