Skip to content

Commit 6dc5a95

Browse files
committed
Fix stdarch-verify
1 parent 690b3a6 commit 6dc5a95

File tree

5 files changed

+13
-17
lines changed

5 files changed

+13
-17
lines changed

crates/core_arch/src/arm_shared/neon/generated.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -10880,7 +10880,7 @@ pub fn vdupq_n_p16(value: p16) -> poly16x8_t {
1088010880
target_arch = "arm",
1088110881
unstable(feature = "stdarch_arm_neon_intrinsics", issue = "111800")
1088210882
)]
10883-
pub fn vdupq_n_p8(value: u8) -> poly8x16_t {
10883+
pub fn vdupq_n_p8(value: p8) -> poly8x16_t {
1088410884
poly8x16_t::splat(value)
1088510885
}
1088610886
#[doc = "Duplicate vector element to vector or scalar"]

crates/core_arch/src/x86/sse.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -3050,7 +3050,7 @@ mod tests {
30503050
}
30513051

30523052
#[simd_test(enable = "sse")]
3053-
unsafe fn test_mm_shuffle() {
3053+
unsafe fn test_MM_SHUFFLE() {
30543054
assert_eq!(_MM_SHUFFLE(0, 1, 1, 3), 0b00_01_01_11);
30553055
assert_eq!(_MM_SHUFFLE(3, 1, 1, 0), 0b11_01_01_00);
30563056
assert_eq!(_MM_SHUFFLE(1, 2, 2, 1), 0b01_10_10_01);

crates/stdarch-gen-arm/spec/neon/arm_shared.spec.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -14937,7 +14937,7 @@ intrinsics:
1493714937
- ['vdupq_n_u32', 'u32', 'uint32x4_t', 'vdup.32', 'dup', 'uint32x4_t::splat(value)']
1493814938
- ['vdupq_n_f32', 'f32', 'float32x4_t', 'vdup.32', 'dup', 'float32x4_t::splat(value)']
1493914939
- ['vdupq_n_u64', 'u64', 'uint64x2_t', 'vmov', 'dup', 'uint64x2_t::splat(value)']
14940-
- ['vdupq_n_p8', 'u8', 'poly8x16_t', 'vdup.8', 'dup', 'poly8x16_t::splat(value)']
14940+
- ['vdupq_n_p8', 'p8', 'poly8x16_t', 'vdup.8', 'dup', 'poly8x16_t::splat(value)']
1494114941
- ['vdupq_n_p16', 'p16', 'poly16x8_t', 'vdup.16', 'dup', 'poly16x8_t::splat(value)']
1494214942
- ['vdup_n_s8', 'i8', 'int8x8_t', 'vdup.8', 'dup', 'int8x8_t::splat(value)']
1494314943
- ['vdup_n_s16', 'i16', 'int16x4_t', 'vdup.16', 'dup', 'int16x4_t::splat(value)']

crates/stdarch-verify/src/lib.rs

+1-8
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,7 @@ fn functions(input: TokenStream, dirs: &[&str]) -> TokenStream {
7070
}
7171
assert!(!tests.is_empty());
7272

73-
functions.retain(|(f, _)| {
74-
if let syn::Visibility::Public(_) = f.vis {
75-
if f.sig.unsafety.is_some() {
76-
return true;
77-
}
78-
}
79-
false
80-
});
73+
functions.retain(|(f, _)| matches!(f.vis, syn::Visibility::Public(_)));
8174
assert!(!functions.is_empty());
8275

8376
let input = proc_macro2::TokenStream::from(input);

crates/stdarch-verify/tests/x86-intel.rs

+9-6
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,7 @@ fn verify_all_signatures() {
244244
"_fxrstor",
245245
"_fxrstor64",
246246
"_xend",
247+
"_xabort_code",
247248
// Aliases
248249
"_mm_comige_ss",
249250
"_mm_cvt_ss2si",
@@ -290,13 +291,10 @@ fn verify_all_signatures() {
290291
"__cpuid_count" |
291292
"__cpuid" |
292293
"__get_cpuid_max" |
294+
"_MM_SHUFFLE" |
295+
"_xabort_code" |
293296
// Not listed with intel, but manually verified
294-
"cmpxchg16b" |
295-
// Intel requires the mask argument for _mm_shuffle_ps to be an
296-
// unsigned integer, but all other _mm_shuffle_.. intrinsics
297-
// take a signed-integer. This breaks `_MM_SHUFFLE` for
298-
// `_mm_shuffle_ps`
299-
"_mm_shuffle_ps"
297+
"cmpxchg16b"
300298
=> continue,
301299
_ => {}
302300
}
@@ -871,6 +869,11 @@ fn equate(
871869
// The _mm_stream_load_si128 intrinsic take a mutable pointer in the intrinsics
872870
// guide even though they never write through the pointer
873871
(&Type::ConstPtr(&Type::M128I), "void*") if intrinsic.name == "_mm_stream_load_si128" => {}
872+
/// Intel requires the mask argument for _mm_shuffle_ps to be an
873+
// unsigned integer, but all other _mm_shuffle_.. intrinsics
874+
// take a signed-integer. This breaks `_MM_SHUFFLE` for
875+
// `_mm_shuffle_ps`
876+
(&Type::PrimSigned(32), "unsigned int") if intrinsic.name == "_mm_shuffle_ps" => {}
874877

875878
_ => bail!(
876879
"failed to equate: `{intel}` and {t:?} for {}",

0 commit comments

Comments
 (0)