Function creusot_contracts::std::arch::x86_64::_mm_loadr_ps

1.27.0 · source ·
pub unsafe fn _mm_loadr_ps(p: *const f32) -> __m128
Available on x86-64 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