_mm_mullo_epi32 in core::arch::x86 - Rust
Description: Multiplies the packed 32-bit integers in `a` and `b`, producing intermediate 64-bit integers, and returns the lowest 32-bit, whatever they might be, reinterpreted as a signed integer. While `pmulld __m128i::splat(2), __m128i::splat(2)` returns the obvious `__m128i::splat(4)`, due to wrapping arithmetic `pmulld __m128i::splat(i32::MAX), __m128i::splat(2)` would return a negative number.

core::arch::x86

# Function _mm_mullo_epi32

1.27.0 · source

    pub unsafe fn _mm_mullo_epi32(a: __m128i, b: __m128i) -> __m128i

Available on (x86 or x86-64) and target feature `sse4.1` and x86 only.
Expand description

Multiplies the packed 32-bit integers in `a` and `b`, producing intermediate 64-bit integers, and returns the lowest 32-bit, whatever they might be, reinterpreted as a signed integer. While `pmulld __m128i::splat(2), __m128i::splat(2)` returns the obvious `__m128i::splat(4)`, due to wrapping arithmetic `pmulld __m128i::splat(i32::MAX), __m128i::splat(2)` would return a negative number.

Intel’s documentation