[][src]Function safe_arch::mul_extended_u64

#[must_use]pub fn mul_extended_u64(a: u64, b: u64, extra: &mut u64) -> u64
This is supported with target feature bmi2 only.

Multiply two u64, outputting the low bits and storing the high bits in the reference.

This does not read or write arithmetic flags.

let mut x = 0_u64;
assert_eq!(mul_extended_u64(u64::MAX, 17, &mut x), 18446744073709551599);
assert_eq!(x, 16);