=== input wast ===
(module
 (type $i (func (param i32) (result i32)))
 (memory $0 0)
 (export "test" (func $test))
 (func $test (; 0 ;) (type $i) (param $0 i32) (result i32)
  (block (result i32)
   (if (result i32)
    (local.get $0)
    (local.get $0)
    (i32.const 0)
   )
  )
 )
)

=== unoptimized ===
(module
 (type $i (func (param i32) (result i32)))
 (memory $0 0)
 (export "test" (func $test))
 (func $test (param $0 i32) (result i32)
  (if (result i32)
   (local.get $0)
   (local.get $0)
   (i32.const 0)
  )
 )
)

=== optimized using defaults ===
optimizeLevel=2
shrinkLevel=1
(module
 (type $i (func (param i32) (result i32)))
 (export "test" (func $test))
 (func $test (; has Stack IR ;) (param $0 i32) (result i32)
  (local.get $0)
 )
)

=== optimized with -O0 ===
optimizeLevel=0
shrinkLevel=0
(module
 (type $i (func (param i32) (result i32)))
 (export "test" (func $test))
 (func $test (param $0 i32) (result i32)
  (local.get $0)
 )
)

=== optimized with -Os ===
optimizeLevel=2
shrinkLevel=1
(module
 (type $i (func (param i32) (result i32)))
 (export "test" (func $test))
 (func $test (; has Stack IR ;) (param $0 i32) (result i32)
  (local.get $0)
 )
)

