From 8e2be8dd7d43018dec946333bcc0b23990eb4d2b Mon Sep 17 00:00:00 2001 From: ruriww <215561737+ruriww@users.noreply.github.com> Date: Wed, 8 Jul 2026 18:57:06 -0700 Subject: [PATCH] use the new nontemporal_load intrinsic for _mmN_stream_load_siN --- crates/core_arch/src/x86/avx2.rs | 9 +-------- crates/core_arch/src/x86/avx512f.rs | 9 +-------- crates/core_arch/src/x86/sse41.rs | 9 +-------- 3 files changed, 3 insertions(+), 24 deletions(-) diff --git a/crates/core_arch/src/x86/avx2.rs b/crates/core_arch/src/x86/avx2.rs index 6925ba8e27..15789e6021 100644 --- a/crates/core_arch/src/x86/avx2.rs +++ b/crates/core_arch/src/x86/avx2.rs @@ -3374,14 +3374,7 @@ pub const fn _mm256_srlv_epi64(a: __m256i, count: __m256i) -> __m256i { #[cfg_attr(test, assert_instr(vmovntdqa))] #[stable(feature = "simd_x86_updates", since = "1.82.0")] pub unsafe fn _mm256_stream_load_si256(mem_addr: *const __m256i) -> __m256i { - let dst: __m256i; - crate::arch::asm!( - vpl!("vmovntdqa {a}"), - a = out(ymm_reg) dst, - p = in(reg) mem_addr, - options(pure, readonly, nostack, preserves_flags), - ); - dst + intrinsics::nontemporal_load(mem_addr) } /// Subtract packed 16-bit integers in `b` from packed 16-bit integers in `a` diff --git a/crates/core_arch/src/x86/avx512f.rs b/crates/core_arch/src/x86/avx512f.rs index 76e7297bcd..05fcd0346b 100644 --- a/crates/core_arch/src/x86/avx512f.rs +++ b/crates/core_arch/src/x86/avx512f.rs @@ -31071,14 +31071,7 @@ pub unsafe fn _mm512_stream_si512(mem_addr: *mut __m512i, a: __m512i) { #[target_feature(enable = "avx512f")] #[stable(feature = "stdarch_x86_avx512", since = "1.89")] pub unsafe fn _mm512_stream_load_si512(mem_addr: *const __m512i) -> __m512i { - let dst: __m512i; - crate::arch::asm!( - vpl!("vmovntdqa {a}"), - a = out(zmm_reg) dst, - p = in(reg) mem_addr, - options(pure, readonly, nostack, preserves_flags), - ); - dst + intrinsics::nontemporal_load(mem_addr) } /// Sets packed 32-bit integers in `dst` with the supplied values. diff --git a/crates/core_arch/src/x86/sse41.rs b/crates/core_arch/src/x86/sse41.rs index d981166ff0..2019362bda 100644 --- a/crates/core_arch/src/x86/sse41.rs +++ b/crates/core_arch/src/x86/sse41.rs @@ -1170,14 +1170,7 @@ pub fn _mm_test_mix_ones_zeros(a: __m128i, mask: __m128i) -> i32 { #[cfg_attr(test, assert_instr(movntdqa))] #[stable(feature = "simd_x86_updates", since = "1.82.0")] pub unsafe fn _mm_stream_load_si128(mem_addr: *const __m128i) -> __m128i { - let dst: __m128i; - crate::arch::asm!( - vpl!("movntdqa {a}"), - a = out(xmm_reg) dst, - p = in(reg) mem_addr, - options(pure, readonly, nostack, preserves_flags), - ); - dst + intrinsics::nontemporal_load(mem_addr) } #[allow(improper_ctypes)]