Fix `stdarch-verify`
diff --git a/crates/core_arch/src/arm_shared/neon/generated.rs b/crates/core_arch/src/arm_shared/neon/generated.rs
index d797c3c..1842ad6 100644
--- a/crates/core_arch/src/arm_shared/neon/generated.rs
+++ b/crates/core_arch/src/arm_shared/neon/generated.rs
@@ -10880,7 +10880,7 @@
target_arch = "arm",
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
)]
-pub fn vdupq_n_p8(value: u8) -> poly8x16_t {
+pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
poly8x16_t::splat(value)
}
#[doc = "Duplicate vector element to vector or scalar"]
diff --git a/crates/core_arch/src/x86/sse.rs b/crates/core_arch/src/x86/sse.rs
index a845e82..1eca66a 100644
--- a/crates/core_arch/src/x86/sse.rs
+++ b/crates/core_arch/src/x86/sse.rs
@@ -3050,7 +3050,7 @@
}
#[simd_test(enable = "sse")]
- unsafe fn test_mm_shuffle() {
+ unsafe fn test_MM_SHUFFLE() {
assert_eq!(_MM_SHUFFLE(0, 1, 1, 3), 0b00_01_01_11);
assert_eq!(_MM_SHUFFLE(3, 1, 1, 0), 0b11_01_01_00);
assert_eq!(_MM_SHUFFLE(1, 2, 2, 1), 0b01_10_10_01);
diff --git a/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml b/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml
index a3b756d..d58c2ed 100644
--- a/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml
+++ b/crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml
@@ -14937,7 +14937,7 @@
- ['vdupq_n_u32', 'u32', 'uint32x4_t', 'vdup.32', 'dup', 'uint32x4_t::splat(value)']
- ['vdupq_n_f32', 'f32', 'float32x4_t', 'vdup.32', 'dup', 'float32x4_t::splat(value)']
- ['vdupq_n_u64', 'u64', 'uint64x2_t', 'vmov', 'dup', 'uint64x2_t::splat(value)']
- - ['vdupq_n_p8', 'u8', 'poly8x16_t', 'vdup.8', 'dup', 'poly8x16_t::splat(value)']
+ - ['vdupq_n_p8', 'p8', 'poly8x16_t', 'vdup.8', 'dup', 'poly8x16_t::splat(value)']
- ['vdupq_n_p16', 'p16', 'poly16x8_t', 'vdup.16', 'dup', 'poly16x8_t::splat(value)']
- ['vdup_n_s8', 'i8', 'int8x8_t', 'vdup.8', 'dup', 'int8x8_t::splat(value)']
- ['vdup_n_s16', 'i16', 'int16x4_t', 'vdup.16', 'dup', 'int16x4_t::splat(value)']
diff --git a/crates/stdarch-verify/src/lib.rs b/crates/stdarch-verify/src/lib.rs
index a07c150..38ac986 100644
--- a/crates/stdarch-verify/src/lib.rs
+++ b/crates/stdarch-verify/src/lib.rs
@@ -70,14 +70,7 @@
}
assert!(!tests.is_empty());
- functions.retain(|(f, _)| {
- if let syn::Visibility::Public(_) = f.vis {
- if f.sig.unsafety.is_some() {
- return true;
- }
- }
- false
- });
+ functions.retain(|(f, _)| matches!(f.vis, syn::Visibility::Public(_)));
assert!(!functions.is_empty());
let input = proc_macro2::TokenStream::from(input);
diff --git a/crates/stdarch-verify/tests/x86-intel.rs b/crates/stdarch-verify/tests/x86-intel.rs
index 6719c06..02b6bdc 100644
--- a/crates/stdarch-verify/tests/x86-intel.rs
+++ b/crates/stdarch-verify/tests/x86-intel.rs
@@ -244,6 +244,7 @@
"_fxrstor",
"_fxrstor64",
"_xend",
+ "_xabort_code",
// Aliases
"_mm_comige_ss",
"_mm_cvt_ss2si",
@@ -290,13 +291,10 @@
"__cpuid_count" |
"__cpuid" |
"__get_cpuid_max" |
+ "_MM_SHUFFLE" |
+ "_xabort_code" |
// Not listed with intel, but manually verified
- "cmpxchg16b" |
- // Intel requires the mask argument for _mm_shuffle_ps to be an
- // unsigned integer, but all other _mm_shuffle_.. intrinsics
- // take a signed-integer. This breaks `_MM_SHUFFLE` for
- // `_mm_shuffle_ps`
- "_mm_shuffle_ps"
+ "cmpxchg16b"
=> continue,
_ => {}
}
@@ -871,6 +869,11 @@
// The _mm_stream_load_si128 intrinsic take a mutable pointer in the intrinsics
// guide even though they never write through the pointer
(&Type::ConstPtr(&Type::M128I), "void*") if intrinsic.name == "_mm_stream_load_si128" => {}
+ /// Intel requires the mask argument for _mm_shuffle_ps to be an
+ // unsigned integer, but all other _mm_shuffle_.. intrinsics
+ // take a signed-integer. This breaks `_MM_SHUFFLE` for
+ // `_mm_shuffle_ps`
+ (&Type::PrimSigned(32), "unsigned int") if intrinsic.name == "_mm_shuffle_ps" => {}
_ => bail!(
"failed to equate: `{intel}` and {t:?} for {}",