diff options
Diffstat (limited to 'test/passes/Oz.wast')
-rw-r--r-- | test/passes/Oz.wast | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/test/passes/Oz.wast b/test/passes/Oz.wast new file mode 100644 index 000000000..fc465669e --- /dev/null +++ b/test/passes/Oz.wast @@ -0,0 +1,57 @@ +(module + (memory 100 100) + (func $basics (export "localcse") (param $x i32) ($param $y i32) (result i32) ;; -O3 does localcse + (local $x2 i32) + (local $y2 i32) + (set_local $x2 + (i32.add (get_local $x) (get_local $y)) + ) + (set_local $y2 + (i32.add (get_local $x) (get_local $y)) + ) + (i32.add (get_local $x2) (get_local $y2)) + ) + (func $8 (export "localcse-2") (param $var$0 i32) (result i32) + (local $var$1 i32) + (local $var$2 i32) + (local $var$3 i32) + (block $label$0 i32 + (i32.store + (tee_local $var$2 + (i32.add + (get_local $var$1) + (i32.const 4) + ) + ) + (i32.and + (i32.load + (get_local $var$2) + ) + (i32.xor + (tee_local $var$2 + (i32.const 74) + ) + (i32.const -1) + ) + ) + ) + (i32.store + (tee_local $var$1 + (i32.add + (get_local $var$1) + (i32.const 4) + ) + ) + (i32.or + (i32.load + (get_local $var$1) + ) + (i32.and + (get_local $var$2) + (i32.const 8) + ) + ) + ) + ) + ) +) |