_mm_shuffle_ps in core::arch::x86_64 - Rust
Description: Shuffles packed single-precision (32-bit) floating-point elements in `a` and `b` using `MASK`.
Keywords: rust, rustlang, rust-lang, _mm_shuffle_ps

# Function core::arch::x86_64::_mm_shuffle_ps
1.27.0[−][src]

    pub unsafe fn _mm_shuffle_ps<const MASK: i32>(a: __m128, b: __m128) -> __m128

This is supported on x86-64 and target feature `sse` 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 an `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.