core::arch::x86

Function _mm_cvtps_ph

1.68.0 · Source
pub unsafe fn _mm_cvtps_ph(a: __m128, const IMM_ROUNDING: i32) -> __m128i
Available on (x86 or x86-64) and target feature f16c and x86 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.

Intel’s documentation