From 80c79533fd472633e78edb1bf9d3a57dfd0aecab Mon Sep 17 00:00:00 2001 From: Hans Kratz Date: Tue, 9 Dec 2025 06:00:50 +0000 Subject: [PATCH] Allow inlining of fns where the implementation is compile-time selected (x86, armv7) --- inlining/expected-methods-armv7-neon.txt | 2 -- inlining/expected-methods-x86-nostd-avx2.txt | 2 -- inlining/expected-methods-x86-nostd-avx512.txt | 2 -- inlining/expected-methods-x86-nostd-sse42.txt | 2 -- inlining/expected-methods-x86-std-avx2.txt | 2 -- inlining/expected-methods-x86-std-avx512.txt | 2 -- src/implementation/armv7/mod.rs | 2 ++ src/implementation/x86/mod.rs | 6 ++++++ 8 files changed, 8 insertions(+), 12 deletions(-) diff --git a/inlining/expected-methods-armv7-neon.txt b/inlining/expected-methods-armv7-neon.txt index 81b2e81d..26dda68a 100644 --- a/inlining/expected-methods-armv7-neon.txt +++ b/inlining/expected-methods-armv7-neon.txt @@ -1,5 +1,3 @@ -simdutf8::implementation::armv7::validate_utf8_basic simdutf8::implementation::armv7::validate_utf8_basic_neon -simdutf8::implementation::armv7::validate_utf8_compat simdutf8::implementation::armv7::validate_utf8_compat_neon simdutf8::implementation::helpers::get_compat_error diff --git a/inlining/expected-methods-x86-nostd-avx2.txt b/inlining/expected-methods-x86-nostd-avx2.txt index 141fab01..06d57d85 100644 --- a/inlining/expected-methods-x86-nostd-avx2.txt +++ b/inlining/expected-methods-x86-nostd-avx2.txt @@ -1,5 +1,3 @@ simdutf8::implementation::helpers::get_compat_error -simdutf8::implementation::x86::validate_utf8_basic simdutf8::implementation::x86::validate_utf8_basic_avx2 -simdutf8::implementation::x86::validate_utf8_compat simdutf8::implementation::x86::validate_utf8_compat_avx2 diff --git a/inlining/expected-methods-x86-nostd-avx512.txt b/inlining/expected-methods-x86-nostd-avx512.txt index 643c0462..5fa320a6 100644 --- a/inlining/expected-methods-x86-nostd-avx512.txt +++ b/inlining/expected-methods-x86-nostd-avx512.txt @@ -1,5 +1,3 @@ simdutf8::implementation::helpers::get_compat_error -simdutf8::implementation::x86::validate_utf8_basic simdutf8::implementation::x86::validate_utf8_basic_avx512 -simdutf8::implementation::x86::validate_utf8_compat simdutf8::implementation::x86::validate_utf8_compat_avx512 diff --git a/inlining/expected-methods-x86-nostd-sse42.txt b/inlining/expected-methods-x86-nostd-sse42.txt index df0c3f17..ad1fda36 100644 --- a/inlining/expected-methods-x86-nostd-sse42.txt +++ b/inlining/expected-methods-x86-nostd-sse42.txt @@ -1,5 +1,3 @@ simdutf8::implementation::helpers::get_compat_error -simdutf8::implementation::x86::validate_utf8_basic simdutf8::implementation::x86::validate_utf8_basic_sse42 -simdutf8::implementation::x86::validate_utf8_compat simdutf8::implementation::x86::validate_utf8_compat_sse42 diff --git a/inlining/expected-methods-x86-std-avx2.txt b/inlining/expected-methods-x86-std-avx2.txt index 141fab01..06d57d85 100644 --- a/inlining/expected-methods-x86-std-avx2.txt +++ b/inlining/expected-methods-x86-std-avx2.txt @@ -1,5 +1,3 @@ simdutf8::implementation::helpers::get_compat_error -simdutf8::implementation::x86::validate_utf8_basic simdutf8::implementation::x86::validate_utf8_basic_avx2 -simdutf8::implementation::x86::validate_utf8_compat simdutf8::implementation::x86::validate_utf8_compat_avx2 diff --git a/inlining/expected-methods-x86-std-avx512.txt b/inlining/expected-methods-x86-std-avx512.txt index 643c0462..5fa320a6 100644 --- a/inlining/expected-methods-x86-std-avx512.txt +++ b/inlining/expected-methods-x86-std-avx512.txt @@ -1,5 +1,3 @@ simdutf8::implementation::helpers::get_compat_error -simdutf8::implementation::x86::validate_utf8_basic simdutf8::implementation::x86::validate_utf8_basic_avx512 -simdutf8::implementation::x86::validate_utf8_compat simdutf8::implementation::x86::validate_utf8_compat_avx512 diff --git a/src/implementation/armv7/mod.rs b/src/implementation/armv7/mod.rs index efd780e4..93a24cc7 100644 --- a/src/implementation/armv7/mod.rs +++ b/src/implementation/armv7/mod.rs @@ -46,6 +46,7 @@ pub(crate) unsafe fn validate_utf8_basic( // validate_utf8_basic() no-std: implementation selection by config #[cfg(all(feature = "armv7_neon", target_feature = "neon"))] +#[inline] pub(crate) unsafe fn validate_utf8_basic( input: &[u8], ) -> core::result::Result<(), crate::basic::Utf8Error> { @@ -112,6 +113,7 @@ pub(crate) unsafe fn validate_utf8_compat( // validate_utf8_basic() no-std: implementation selection by config #[cfg(all(feature = "armv7_neon", target_feature = "neon"))] +#[inline] pub(crate) unsafe fn validate_utf8_compat( input: &[u8], ) -> core::result::Result<(), crate::compat::Utf8Error> { diff --git a/src/implementation/x86/mod.rs b/src/implementation/x86/mod.rs index bccb07c7..df0ab14b 100644 --- a/src/implementation/x86/mod.rs +++ b/src/implementation/x86/mod.rs @@ -153,6 +153,7 @@ pub(crate) unsafe fn validate_utf8_basic( target_feature = "avx512vbmi", target_feature = "avx512vbmi2" ))] +#[inline] pub(crate) unsafe fn validate_utf8_basic( input: &[u8], ) -> core::result::Result<(), crate::basic::Utf8Error> { @@ -187,6 +188,7 @@ unsafe fn validate_utf8_basic_avx512( ), all(target_feature = "avx2", feature = "std", not(avx512_stable)) ))] +#[inline] pub(crate) unsafe fn validate_utf8_basic( input: &[u8], ) -> core::result::Result<(), crate::basic::Utf8Error> { @@ -230,6 +232,7 @@ unsafe fn validate_utf8_basic_avx2( not(target_feature = "avx2"), target_feature = "sse4.2" ))] +#[inline] pub(crate) unsafe fn validate_utf8_basic( input: &[u8], ) -> core::result::Result<(), crate::basic::Utf8Error> { @@ -356,6 +359,7 @@ pub(crate) unsafe fn validate_utf8_compat( target_feature = "avx512vbmi", target_feature = "avx512vbmi2" ))] +#[inline] pub(crate) unsafe fn validate_utf8_compat( input: &[u8], ) -> core::result::Result<(), crate::compat::Utf8Error> { @@ -390,6 +394,7 @@ unsafe fn validate_utf8_compat_avx512( ), all(target_feature = "avx2", feature = "std", not(avx512_stable)) ))] +#[inline] pub(crate) unsafe fn validate_utf8_compat( input: &[u8], ) -> core::result::Result<(), crate::compat::Utf8Error> { @@ -433,6 +438,7 @@ unsafe fn validate_utf8_compat_avx2( not(target_feature = "avx2"), target_feature = "sse4.2" ))] +#[inline] pub(crate) unsafe fn validate_utf8_compat( input: &[u8], ) -> core::result::Result<(), crate::compat::Utf8Error> {