(module
 (type $0 (func (param f32 f32) (result f32)))
 (type $1 (func (param f64 f64) (result f64)))
 (export "f32.compute_radix" (func $0))
 (export "f64.compute_radix" (func $1))
 (func $0 (param $0 f32) (param $1 f32) (result f32)
  (loop $label$2
   (br_if $label$2
    (f32.eq
     (f32.add
      (f32.sub
       (f32.add
        (local.tee $0
         (f32.add
          (local.get $0)
          (local.get $0)
         )
        )
        (f32.const 1)
       )
       (local.get $0)
      )
      (f32.const -1)
     )
     (f32.const 0)
    )
   )
  )
  (block
   (drop
    (call $0
     (f32.add
      (local.get $0)
      (local.tee $1
       (f32.add
        (local.get $1)
        (f32.const 1)
       )
      )
     )
     (local.get $0)
    )
   )
   (unreachable)
  )
 )
 (func $1 (param $0 f64) (param $1 f64) (result f64)
  (loop $label$2
   (br_if $label$2
    (f64.eq
     (f64.add
      (f64.sub
       (f64.add
        (local.tee $0
         (f64.add
          (local.get $0)
          (local.get $0)
         )
        )
        (f64.const 1)
       )
       (local.get $0)
      )
      (f64.const -1)
     )
     (f64.const 0)
    )
   )
  )
  (loop $label$3
   (br_if $label$3
    (f64.ne
     (f64.sub
      (f64.sub
       (f64.add
        (local.get $0)
        (local.tee $1
         (f64.add
          (local.get $1)
          (f64.const 1)
         )
        )
       )
       (local.get $0)
      )
      (local.get $1)
     )
     (f64.const 0)
    )
   )
  )
  (local.get $1)
 )
)
