no_std_compat::arch::x86

Function _mm_loadr_ps

1.27.0 · Source
pub unsafe fn _mm_loadr_ps(p: *const f32) -> __m128
Available on x86 only.
Expand description

Loads four f32 values from aligned memory into a __m128 in reverse order.

If the pointer is not aligned to a 128-bit boundary (16 bytes) a general protection fault will be triggered (fatal program crash).

Functionally equivalent to the following code sequence (assuming p satisfies the alignment restrictions):

let a0 = *p;
let a1 = *p.add(1);
let a2 = *p.add(2);
let a3 = *p.add(3);
__m128::new(a3, a2, a1, a0)

This corresponds to instructions VMOVAPS / MOVAPS followed by some shuffling.

Intel’s documentation