Reimplement _mm_movemask_ps and _mm_movemask_pd without LLVM intrinsics
This commit is contained in:
parent
5c20a68339
commit
b886dade6f
2 changed files with 2 additions and 6 deletions
|
|
@ -1081,7 +1081,7 @@ pub unsafe fn _mm_movelh_ps(a: __m128, b: __m128) -> __m128 {
|
|||
#[cfg_attr(test, assert_instr(movmskps))]
|
||||
#[stable(feature = "simd_x86", since = "1.27.0")]
|
||||
pub unsafe fn _mm_movemask_ps(a: __m128) -> i32 {
|
||||
movmskps(a)
|
||||
simd_bitmask::<u32x4, u8>(transmute(a)).into()
|
||||
}
|
||||
|
||||
/// Construct a `__m128` with the lowest element read from `p` and the other
|
||||
|
|
@ -1885,8 +1885,6 @@ extern "C" {
|
|||
fn maxss(a: __m128, b: __m128) -> __m128;
|
||||
#[link_name = "llvm.x86.sse.max.ps"]
|
||||
fn maxps(a: __m128, b: __m128) -> __m128;
|
||||
#[link_name = "llvm.x86.sse.movmsk.ps"]
|
||||
fn movmskps(a: __m128) -> i32;
|
||||
#[link_name = "llvm.x86.sse.cmp.ps"]
|
||||
fn cmpps(a: __m128, b: __m128, imm8: i8) -> __m128;
|
||||
#[link_name = "llvm.x86.sse.comieq.ss"]
|
||||
|
|
|
|||
|
|
@ -2450,7 +2450,7 @@ pub unsafe fn _mm_setzero_pd() -> __m128d {
|
|||
#[cfg_attr(test, assert_instr(movmskpd))]
|
||||
#[stable(feature = "simd_x86", since = "1.27.0")]
|
||||
pub unsafe fn _mm_movemask_pd(a: __m128d) -> i32 {
|
||||
movmskpd(a)
|
||||
simd_bitmask::<u64x2, u8>(transmute(a)).into()
|
||||
}
|
||||
|
||||
/// Loads 128-bits (composed of 2 packed double-precision (64-bit)
|
||||
|
|
@ -2914,8 +2914,6 @@ extern "C" {
|
|||
fn ucomigesd(a: __m128d, b: __m128d) -> i32;
|
||||
#[link_name = "llvm.x86.sse2.ucomineq.sd"]
|
||||
fn ucomineqsd(a: __m128d, b: __m128d) -> i32;
|
||||
#[link_name = "llvm.x86.sse2.movmsk.pd"]
|
||||
fn movmskpd(a: __m128d) -> i32;
|
||||
#[link_name = "llvm.x86.sse2.cvtpd2dq"]
|
||||
fn cvtpd2dq(a: __m128d) -> i32x4;
|
||||
#[link_name = "llvm.x86.sse2.cvtsd2si"]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue