fp/simd/x86_64/
sse2.rs

1use std::arch::x86_64;
2
3use crate::limb::Limb;
4
5type SimdLimb = x86_64::__m128i;
6
7#[target_feature(enable = "sse2")]
8fn load(limb: *const Limb) -> SimdLimb {
9    unsafe { x86_64::_mm_loadu_si128(limb as *const SimdLimb) }
10}
11
12#[target_feature(enable = "sse2")]
13fn store(limb: *mut Limb, val: SimdLimb) {
14    unsafe { x86_64::_mm_storeu_si128(limb as *mut SimdLimb, val) }
15}
16
17#[target_feature(enable = "sse2")]
18fn xor(left: SimdLimb, right: SimdLimb) -> SimdLimb {
19    x86_64::_mm_xor_si128(left, right)
20}
21
22super::add_simd_arch!("sse2");