(module
 (type $f32_=>_f32 (func (param f32) (result f32)))
 (type $i32_i32_=>_f32 (func (param i32 i32) (result f32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
 (memory $0 256 256)
 (export "floats" (func $0))
 (func $0 (type $f32_=>_f32) (param $0 f32) (result f32)
  (local $1 f32)
  (f32.add
   (local.get $1)
   (local.get $0)
  )
 )
 (func $1 (type $i32_i32_=>_f32) (param $0 i32) (param $1 i32) (result f32)
  (local $2 f32)
  (local.tee $2
   (f32.neg
    (block $label$1 (result f32)
     (i32.store
      (local.get $0)
      (local.get $1)
     )
     (f32.load
      (local.get $0)
     )
    )
   )
  )
 )
 (func $2 (type $i32_=>_i32) (param $0 i32) (result i32)
  (block $label$1 (result i32)
   (block $label$2
    (block $label$3
     (br_table $label$3 $label$2 $label$3
      (i32.sub
       (local.get $0)
       (i32.const 1)
      )
     )
    )
    (br $label$1
     (i32.const 1)
    )
   )
   (br $label$1
    (i32.const 2)
   )
  )
 )
 (func $3 (type $i32_i32_i32_=>_i32) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local.get $2)
 )
)

