pub unsafe fn _mm_cvtps_ph<const IMM_ROUNDING: i32>(a: __m128) -> __m128i
🔬 This is a nightly-only experimental API. (stdsimd)
This is supported on x86-64 and target feature f16c only.
Expand description

Converts the 4 x 32-bit float values in the 128-bit vector a into 4 x 16-bit half-precision float values stored in the lowest 64-bit of a 128-bit vector.

Rounding is done according to the imm_rounding parameter, which can be one of:

  • _MM_FROUND_TO_NEAREST_INT | _MM_FROUND_NO_EXC: round to nearest and suppress exceptions,
  • _MM_FROUND_TO_NEG_INF | _MM_FROUND_NO_EXC: round down and suppress exceptions,
  • _MM_FROUND_TO_POS_INF | _MM_FROUND_NO_EXC: round up and suppress exceptions,
  • _MM_FROUND_TO_ZERO | _MM_FROUND_NO_EXC: truncate and suppress exceptions,
  • _MM_FROUND_CUR_DIRECTION: use MXCSR.RC - see _MM_SET_ROUNDING_MODE.