(module
 (type $FUNCSIG$vii (func (param i32 i32)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 0 0 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (data (get_global $memoryBase) "debugInfo.asm.js")
 (export "add" (func $add))
 (export "ret" (func $ret))
 (export "opts" (func $opts))
 (func $add (param $0 i32) (param $1 i32) (result i32)
  (i32.add
   (get_local $1)
   (get_local $1)
  )
 )
 (func $ret (param $0 i32) (result i32)
  (i32.add
   (i32.shl
    (get_local $0)
    (i32.const 1)
   )
   (i32.const 1)
  )
 )
 (func $i32s-rem (param $0 i32) (param $1 i32) (result i32)
  (if i32
   (get_local $1)
   (i32.rem_s
    (get_local $0)
    (get_local $1)
   )
   (i32.const 0)
  )
 )
 (func $opts (param $0 i32) (param $1 i32) (result i32)
  ;; even-opted.cpp:2
  (set_local $1
   (i32.shr_s
    (get_local $1)
    (tee_local $0
     (i32.add
      (get_local $0)
      (get_local $1)
     )
    )
   )
  )
  ;; even-opted.cpp:3
  (set_local $0
   (call $i32s-rem
    (get_local $0)
    (get_local $1)
   )
  )
  (i32.add
   (get_local $0)
   (get_local $1)
  )
 )
)
