James Barford-Evans
89c9c8ba9c
feat - FEAT_LUT neon instrinsics
2025-03-05 14:54:05 +00:00
James Barford-Evans
5ece6ac059
armV7 does not need faminmax flag
2025-03-04 15:50:04 +00:00
James Barford-Evans
24555b5ac1
Add faminmax intrinsics to the skip list
2025-03-04 15:50:04 +00:00
James Barford-Evans
de7f56ff35
Add aarch64_unstable_target_feature and relax instruction assertion
2025-03-04 15:50:04 +00:00
Kajetan Puchalski
3b58340073
intrinsic-test: Print C++ float16_t in hex
...
Upstream Rust currently does not support printing f16s in decimal.
For the intrinsics tests to work, make C++ print float16_t in the same
format.
Can be droppen once https://github.com/rust-lang/rust/pull/127013
is merged.
2025-02-24 14:22:42 +00:00
Kajetan Puchalski
f4a31fd609
core-arch: Add NEON fp16 intrinsics
2025-02-24 14:22:42 +00:00
Kajetan Puchalski
ed7bf87061
intrinsic-test: Support testing f16 intrinsics
2025-02-24 14:22:42 +00:00
James Barford-Evans
b95fc44d25
fix up yaml & re-generate
2025-02-24 11:04:20 +00:00
James Barford-Evans
2ab46242f0
remove print statment and correct target name
2025-02-24 11:04:20 +00:00
James Barford-Evans
bec322f990
fix test runner for armv7
2025-02-24 11:04:20 +00:00
James Barford-Evans
f4974ae1ed
ensure correct linker gets chosen
2025-02-24 11:04:20 +00:00
James Barford-Evans
7294081fda
Update test runner to support big endian
2025-02-24 11:04:20 +00:00
Eric Huss
d9ec0157da
Format with style edition 2024
2025-02-09 12:57:14 -08:00
Eric Huss
699a872630
Update all crates to Rust 2024
2025-02-09 12:31:33 -08:00
Jacob Bramley
039f322e18
Consistently use the latest itertools.
2025-02-03 21:15:41 +00:00
Yuri Astrakhan
0760ed6ca7
Minor linting
2024-09-30 13:00:24 -04:00
George Wort
2caf80145b
Use #[rustc_intrinsic_const_vector_arg] for Neon intrinsics
...
This allows the constant vector to be passed directly
to LLVM which fixes a few issues where the LLVM intrinsic
expects a constant vector.
2024-08-21 01:18:59 +01:00
Olasunkanmi Olayinka
da09b47285
feat: stabilization for stdarch_aarch64_crc32
2024-05-14 15:52:07 +02:00
Tony Arcieri
153bde14d1
Remove duplicated allow(dead_code)
attribute
...
Accidentally added in #1552
2024-04-13 02:32:07 +02:00
Tony Arcieri
eab9f2d6d9
Stabilize AArch64 SHA3 intrinsics
...
See also: rust-lang/rust#117225
2024-04-12 14:08:47 +02:00
Luca Barbato
06495b6f45
intrinsic-test: Suppress a warning about dead code
2024-04-10 01:46:00 +02:00
Daniel Paoliello
a00a70eacb
arm64ec
2024-03-13 22:30:36 +00:00
eupn
2e8d4ba8c8
Add missing ARM-v7A CRC intrinsics ( #1515 )
...
* Move aarch64 crc into arm shared module
* Add missing 32-bit arm crc intrinsics
On 32-bit ARM, this intrinsic emits two instructions and splits its 64-bit input parameter between them.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/ARM-ACLE-Intrinsics.html
2024-01-10 12:44:04 +00:00
Amanieu d'Antras
3ac4ba6670
Revert "Work around CI failures for the ARM target"
...
This reverts commit 5a748ec5fabcaee29351ac3c90eee4f3e16964e7.
2023-11-30 08:20:47 +00:00
Amanieu d'Antras
4fe088329c
Work around CI failures for the ARM target
...
These seem to have been introduced by recent LLVM changes.
* The instruction limit for vld*/vst* has been raised. This is not a
significant issue, it is only used for testing.
* vld*/vst* instructions are generated with overly strict alignments:
https://github.com/rust-lang/stdarch/issues/1217
* vtbl/vtbx instrinsics are failing intrinsic-test for unknown reasons.
2023-11-30 07:48:09 +00:00
Eduardo Sánchez Muñoz
57479f8c9b
Remove unneeded borrows
2023-11-18 20:28:46 -08:00
Jacob Bramley
211a00769c
Improve intrinsic-test output formatting.
...
This change is simple, but makes the generated tests much easier to
follow (and debug).
2023-11-17 23:49:21 -08:00
Jacob Bramley
d2736197f7
Add --generate-only to intrinsic-test.
...
This is useful for debugging.
2023-11-17 23:49:21 -08:00
Jacob Bramley
7f2a7c09ef
Fix intrinsic-test author handling.
...
CARGO_PKG_AUTHORS is :-separated.
Also add myself to intrinsic-test authors.
2023-11-01 14:33:48 +01:00
Jacob Bramley
05afebca4d
Clean up intrinsic-test literals.
...
- Ensure that C literals don't rely on undefined overflow behaviour.
- We don't need to use 'as' casts, so remove them.
- We weren't using allow(overflowing_literals), so remove it.
- Format FP bit values as hex.
This simplifies the test input initialisers in the generated files,
making them shorter and easier to debug.
2023-11-01 14:33:48 +01:00
Jacob Bramley
1970299926
Remove unnecessary unsafety in intrinsic tests.
...
This fixes "unnecessary `unsafe` block" warnings encountered when
building the generated rust_programs.
The only pattern that actually required `unsafe` was transmuting bit
patterns into floats. This patch uses the safe `from_bits` instead, but
because that isn't const, we have to make them local let-bound
variables.
2023-11-01 14:33:48 +01:00
Jacob Bramley
a76000b6a0
Drop old link from intrinsic-test README.
...
Now, the README approximately matches the `--help` output.
2023-10-31 02:17:45 +01:00
Amanieu d'Antras
ea27e5cfcb
Fix various compilation errors
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
b8ba57f310
Cleanup last uses of the stdsimd feature
2023-10-29 20:39:50 +01:00
Eduardo Sánchez Muñoz
07bbe62ccb
Bump itertools to 0.11
2023-10-10 14:47:43 +01:00
Eduardo Sánchez Muñoz
a4cb14940f
Bump pretty_env_logger to 0.5
2023-10-10 14:47:43 +01:00
Eduardo Sánchez Muñoz
eef659efee
Bump clap to 4.4
...
Also define args with derive style instead of builder style.
2023-10-10 14:47:43 +01:00
Bruce Mitchener
5c4a950591
docs: Fix warnings and typos.
...
* Fix typo in HTML tag
* Mark some things with backticks to fix warnings about
unescaped square brackets.
* Spell "initialize" correctly to fix typos.
2023-07-30 10:57:20 +01:00
Jacob Bramley
0459405ea9
Add more AArch64 vrnd intrinsics.
...
LLVM can't select float64x1_t variants, but float64x2_t variants work.
2023-06-21 18:52:21 +02:00
Jacob Bramley
a9fecd8456
Support AArch32 Neon dotprod intrinsics.
...
Note that the feature detection requires a recent Linux kernel (v6.2).
2023-06-21 18:52:21 +02:00
Jacob Bramley
1e15fa3f0a
Add support for AArch64 i8mm *dot intrinsics.
...
This includes vsudot and vusdot, which perform mixed-signedness dot
product operations.
2023-06-21 18:52:21 +02:00
Adam Gemmell
9fc8fd8375
Fix intrinsic-test rejecting the new instructions
JSON field
2023-05-16 14:05:52 +02:00
Adam Gemmell
0125fa17c8
Remove ACLE submodule
...
This involves moving from the ACLE intrinsic definitions (which aren't
available for SVE at this point) to a JSON file. This was derived from
ARM's documentation[^1], and then relicensed under `MIT OR Apache-2.0` for
use in this repository.
[^1]: https://developer.arm.com/architectures/instruction-sets/intrinsics
2023-05-15 17:34:11 +02:00
Jacob Bramley
6e5b949ee7
Check and pass the ACLE licence on to generated tests.
...
The generated tests are transient, and aren't committed, so this is
primarily a safety check.
2023-01-23 18:58:28 +00:00
Jacob Bramley
4407146bb8
Declare licence for crates/intrinsics-test.
2023-01-23 18:58:28 +00:00
Ruben De Smet
755a95168f
Move vector combine intrisics to arm/neon.rs ( #1363 )
2022-12-11 18:09:13 +00:00
Yuri Astrakhan
81c221f058
Edition 2021, apply clippy::uninlined_format_args fix ( #1339 )
2022-10-25 20:17:23 +01:00
James McGregor
893bbdd717
Use load intrinsic and loop for intrinsic-test programs. Add --release flag back to intrinsic-test programs.
2022-08-22 23:46:30 +02:00
Amanieu d'Antras
b25548658a
Updates for LLVM 14 on nightly
2022-02-19 20:44:04 +00:00
Frank Steffahn
df24e2a0f8
Fix a bunch of typos
2021-12-14 10:17:43 -08:00