Skip to content

Commit a33194d

Browse files
committed
Handle intrinsics with constraints in the test tool.
Rather than using the csv export from the tracking spreadsheet we now use the csv from the ACLE repository. This data contains any constraints that the intrinsic has.
1 parent 219cf81 commit a33194d

File tree

14 files changed

+768
-4682
lines changed

14 files changed

+768
-4682
lines changed

.github/workflows/main.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,8 @@ jobs:
171171

172172
steps:
173173
- uses: actions/checkout@master
174+
with:
175+
submodules: recursive
174176
- name: Install Rust (rustup)
175177
run: |
176178
rustup update nightly --no-self-update

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "crates/intrinsic-test/acle"]
2+
path = crates/intrinsic-test/acle
3+
url = https://github.com/ARM-software/acle.git

ci/run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ esac
122122

123123
if [ "${TARGET}" = "aarch64-unknown-linux-gnu" ]; then
124124
export CPPFLAGS="-fuse-ld=lld -I/usr/aarch64-linux-gnu/include/ -I/usr/aarch64-linux-gnu/include/c++/9/aarch64-linux-gnu/"
125-
cargo run ${INTRINSIC_TEST} --release --bin intrinsic-test -- crates/intrinsic-test/neon-intrinsics.csv --runner "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" --cppcompiler "clang++-12"
125+
cargo run ${INTRINSIC_TEST} --release --bin intrinsic-test -- crates/intrinsic-test/acle/tools/intrinsic_db/advsimd.csv --runner "${CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUNNER}" --cppcompiler "clang++-12" --skip crates/intrinsic-test/missing.txt
126126
fi
127127

128128
if [ "$NORUN" != "1" ] && [ "$NOSTD" != 1 ]; then

crates/core_arch/src/aarch64/neon/mod.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ types! {
2626
}
2727

2828
/// ARM-specific type containing two `float64x1_t` vectors.
29-
#[derive(Copy, Clone)]
29+
#[derive(Copy, Clone, Debug)]
3030
pub struct float64x1x2_t(pub float64x1_t, pub float64x1_t);
3131
/// ARM-specific type containing three `float64x1_t` vectors.
32-
#[derive(Copy, Clone)]
32+
#[derive(Copy, Clone, Debug)]
3333
pub struct float64x1x3_t(pub float64x1_t, pub float64x1_t, pub float64x1_t);
3434
/// ARM-specific type containing four `float64x1_t` vectors.
35-
#[derive(Copy, Clone)]
35+
#[derive(Copy, Clone, Debug)]
3636
pub struct float64x1x4_t(
3737
pub float64x1_t,
3838
pub float64x1_t,
@@ -41,13 +41,13 @@ pub struct float64x1x4_t(
4141
);
4242

4343
/// ARM-specific type containing two `float64x2_t` vectors.
44-
#[derive(Copy, Clone)]
44+
#[derive(Copy, Clone, Debug)]
4545
pub struct float64x2x2_t(pub float64x2_t, pub float64x2_t);
4646
/// ARM-specific type containing three `float64x2_t` vectors.
47-
#[derive(Copy, Clone)]
47+
#[derive(Copy, Clone, Debug)]
4848
pub struct float64x2x3_t(pub float64x2_t, pub float64x2_t, pub float64x2_t);
4949
/// ARM-specific type containing four `float64x2_t` vectors.
50-
#[derive(Copy, Clone)]
50+
#[derive(Copy, Clone, Debug)]
5151
pub struct float64x2x4_t(
5252
pub float64x2_t,
5353
pub float64x2_t,

0 commit comments

Comments
 (0)