The test function body is probably incorrect. The right-hand side produces values which are incorrect in the CI run as well. Everything else seems to be fine.
This can be verified when using only the simd intrinsics as defined in the core library.
fn main() {
#[cfg(target_arch = "x86")]
use std::arch::x86::*;
#[cfg(target_arch = "x86_64")]
use std::arch::x86_64::*;
unsafe {
let values = _mm_set_ps(1.0, 3.0, 5.0, 7.0);
let res = _mm_rcp_ps(values);
println!("{:?}", values);
println!("{:?}", res);
}
}
The test function body is probably incorrect. The right-hand side produces values which are incorrect in the CI run as well. Everything else seems to be fine.
This can be verified when using only the simd intrinsics as defined in the core library.
produces
Notice that the order in the output is different compared to its specification inline but the result is correct.
We obtain the same results when using this small C programm:
Compile with gcc and run