Enabling FPU causes device to reboot

I have this function that normalizes acceleration from IMU:

_Float16 normalize_accel_magnitude(_Float16 x, _Float16 y, _Float16 z, _Float16 max_g) {
  // Compute the magnitude squared of the acceleration vector
  _Float16 magnitude_squared = x * x + y * y + z * z;

  // Protect against very small values
  if (magnitude_squared < __FLT16_MIN__) {
    magnitude_squared = __FLT16_MIN__;
  }

  // Compute the magnitude of the acceleration vector
  _Float16 magnitude = sqrtf(magnitude_squared);

  // Normalize the magnitude using max_g
  if (max_g == 0.0f || fabs(max_g) < __FLT16_MIN__) {
    return 0.0f;
  }

  _Float16 normalized_value = (magnitude / max_g) - 1.0f;

  // Validate the normalized value
  if (!is_valid_float(normalized_value)) {
    return 0.0f;
  }

  return normalized_value;
}

If I enable FPU

CONFIG_FPU=y
CONFIG_FPU_SHARING=y
device works for a while (10s of seconds) then reboots, if its commented out it works fine ? the issue seams to be with 
sqrtf. 
Any ideas why enabling FPU would cause it?  Thanks!
Related