message: Update compilation conditions for RoundToNearest and RoundToNearestUnsigned:
  vcvtnq_u32_f32 is available on ARMv8 and vcvtnq_s32_f32 on ARMv8 or x86 with SSSE 3 through the NEON2SSE library.
diff: @@ -891,7 +891,10 @@ inline float32x4_t DivideSumForMeanImpl(
  }
  inline int32x4_t RoundToNearest(const float32x4_t input) {
  -#if !defined(__aarch64__) && !defined(__SSE4_1__)
  +#if defined(__aarch64__) || defined(__SSSE3__)
  + // Note: vcvtnq_s32_f32 is not available in ARMv7
  + return vcvtnq_s32_f32(input);
  +#else
  static const float32x4_t zero_val_dup = vdupq_n_f32(0.0f);
  static const float32x4_t point5_val_dup = vdupq_n_f32(0.5f);
  static const float32x4_t minus_point5_val_dup = vdupq_n_f32(-0.5f);
  @@ -900,20 +903,18 @@ inline int32x4_t RoundToNearest(const float32x4_t input) {
  const float32x4_t round =
  vbslq_f32(mask, minus_point5_val_dup, point5_val_dup);
  return vcvtq_s32_f32(vaddq_f32(input, round));
  -#else
  - return vcvtnq_s32_f32(input);
  -#endif // !defined(__aarch64__)
  +#endif // defined(__aarch64__) || defined(__SSSE3__)
  }
  inline uint32x4_t RoundToNearestUnsigned(const float32x4_t input) {
  -#if defined(__aarch64__) && !defined(__SSE4_1__)
  - // Note that vcvtnq_u32_f32 is not available on the arm_neon_sse.h.
  +#if defined(__aarch64__)
  + // Note that vcvtnq_u32_f32 is not available in ARMv7 or in arm_neon_sse.h.
  return vcvtnq_u32_f32(input);
  #else
  static const float32x4_t point5_val_dup = vdupq_n_f32(0.5f);
  return vcvtq_u32_f32(vaddq_f32(input, point5_val_dup));
  -#endif // defined(__aarch64__) && !defined(__SSE4_1__)
  +#endif // defined(__aarch64__)
  }
  #endif // USE_NEON
  