(module
 (type $0 (func (param i32 i32) (result i32)))
 (type $1 (func (param i32) (result i32)))
 (memory $0 100 100)
 (export "localcse" (func $basics))
 (export "localcse-2" (func $8))
 (func $basics (type $0) (param $0 i32) (param $1 i32) (result i32)
  (local $2 i32)
  (i32.add
   (tee_local $2
    (i32.add
     (get_local $0)
     (get_local $1)
    )
   )
   (get_local $2)
  )
 )
 (func $8 (type $1) (param $0 i32) (result i32)
  (local $1 i32)
  (i32.store
   (tee_local $0
    (tee_local $1
     (i32.add
      (get_local $1)
      (i32.const 4)
     )
    )
   )
   (i32.and
    (i32.load
     (get_local $0)
    )
    (i32.xor
     (tee_local $0
      (i32.const 74)
     )
     (i32.const -1)
    )
   )
  )
  (i32.store
   (get_local $1)
   (i32.or
    (i32.load
     (get_local $1)
    )
    (i32.and
     (get_local $0)
     (i32.const 8)
    )
   )
  )
 )
)
