core::arch::x86_64

Function _mm_shuffle_ps

1.27.0 · Source
pub unsafe fn _mm_shuffle_ps(a: __m128, b: __m128, const MASK: i32) -> __m128
Available on (x86 or x86-64) and target feature sse and x86-64 only.
Expand description

Shuffles packed single-precision (32-bit) floating-point elements in a and b using MASK.

The lower half of result takes values from a and the higher half from b. Mask is split to 2 control bits each to index the element from inputs.

Intel’s documentation

Note that there appears to be a mistake within Intel’s Intrinsics Guide. _mm_shuffle_ps is supposed to take an i32 instead of a u32 as is the case for other shuffle intrinsics. Performing an implicit type conversion between an unsigned integer and a signed integer does not cause a problem in C, however Rust’s commitment to strong typing does not allow this.