Skip to content

Commit 7463267

Browse files
committed
Move acle/dsp to arm; fix tests by skipping dsp arm functions
1 parent 75792de commit 7463267

File tree

4 files changed

+47
-26
lines changed

4 files changed

+47
-26
lines changed

crates/core_arch/src/acle/mod.rs

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -65,31 +65,6 @@ mod ex;
6565

6666
pub use self::ex::*;
6767

68-
// Supported arches: 5TE, 7E-M. See Section 10.1 of ACLE (e.g. QADD)
69-
// We also include the A profile even though DSP is deprecated on that profile as of ACLE 2.0 (see
70-
// section 5.4.7)
71-
// Here we workaround the difference between LLVM's +dsp and ACLE's __ARM_FEATURE_DSP by gating on
72-
// '+v5te' rather than on '+dsp'
73-
#[cfg(all(
74-
not(target_arch = "aarch64"),
75-
any(
76-
// >= v5TE but excludes v7-M
77-
all(target_feature = "v5te", not(target_feature = "mclass")),
78-
// v7E-M
79-
all(target_feature = "mclass", target_feature = "dsp"),
80-
)
81-
))]
82-
mod dsp;
83-
84-
#[cfg(all(
85-
not(target_arch = "aarch64"),
86-
any(
87-
all(target_feature = "v5te", not(target_feature = "mclass")),
88-
all(target_feature = "mclass", target_feature = "dsp"),
89-
)
90-
))]
91-
pub use self::dsp::*;
92-
9368
// Deprecated in ACLE 2.0 for the A profile but fully supported on the M and R profiles, says
9469
// Section 5.4.9 of ACLE. We'll expose these for the A profile even if deprecated
9570
#[cfg(all(
File renamed without changes.

crates/core_arch/src/arm/mod.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,31 @@ mod sat;
2121
#[cfg(any(all(not(target_arch = "aarch64"), target_feature = "v6",), doc))]
2222
pub use self::sat::*;
2323

24+
// Supported arches: 5TE, 7E-M. See Section 10.1 of ACLE (e.g. QADD)
25+
// We also include the A profile even though DSP is deprecated on that profile as of ACLE 2.0 (see
26+
// section 5.4.7)
27+
// Here we workaround the difference between LLVM's +dsp and ACLE's __ARM_FEATURE_DSP by gating on
28+
// '+v5te' rather than on '+dsp'
29+
#[cfg(all(
30+
not(target_arch = "aarch64"),
31+
any(
32+
// >= v5TE but excludes v7-M
33+
all(target_feature = "v5te", not(target_feature = "mclass")),
34+
// v7E-M
35+
all(target_feature = "mclass", target_feature = "dsp"),
36+
)
37+
))]
38+
mod dsp;
39+
40+
#[cfg(all(
41+
not(target_arch = "aarch64"),
42+
any(
43+
all(target_feature = "v5te", not(target_feature = "mclass")),
44+
all(target_feature = "mclass", target_feature = "dsp"),
45+
)
46+
))]
47+
pub use self::dsp::*;
48+
2449
#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]
2550
mod v7;
2651
#[cfg(any(target_arch = "aarch64", target_feature = "v7"))]

crates/stdarch-verify/tests/arm.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -371,6 +371,21 @@ fn verify_all_signatures() {
371371
"vsriq_n_p8",
372372
"vsri_n_p16",
373373
"vsriq_n_p16",
374+
"__smulbb",
375+
"__smultb",
376+
"__smulbt",
377+
"__smultt",
378+
"__smulwb",
379+
"__smulwt",
380+
"__qadd",
381+
"__qsub",
382+
"__qdbl",
383+
"__smlabb",
384+
"__smlabt",
385+
"__smlatb",
386+
"__smlatt",
387+
"__smlawb",
388+
"__smlawt",
374389
];
375390
if !skip.contains(&rust.name) {
376391
println!(
@@ -396,7 +411,13 @@ fn verify_all_signatures() {
396411
}
397412
// Skip some intrinsics that are present in GCC and Clang but
398413
// are missing from the official documentation.
399-
let skip_intrinsic_verify = ["vmov_n_p64", "vmovq_n_p64", "vreinterpret_p64_s64", "vreinterpret_f32_p64", "vreinterpretq_f32_p64"];
414+
let skip_intrinsic_verify = [
415+
"vmov_n_p64",
416+
"vmovq_n_p64",
417+
"vreinterpret_p64_s64",
418+
"vreinterpret_f32_p64",
419+
"vreinterpretq_f32_p64",
420+
];
400421
let arm = match map.get(rust.name) {
401422
Some(i) => i,
402423
None => {

0 commit comments

Comments
 (0)