(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 (param $0 f32) (result f32)
  (local $1 f32)
  (f32.add
   (local.get $1)
   (local.get $0)
  )
 )
 (func $1 (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 (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 (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
  (local.get $2)
 )
)

