usamoi
f53c07b3ff
mark AVX512 & AVXNECONVERT intrinsics as safe
...
Mark all AVX512 & AVXNECONVERT SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
2348f153ae
mark PCLMULQDQ intrinsics as safe
...
Mark all PCLMULQDQ intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
14b0bfb900
mark AES intrinsics as safe
...
Mark all AES intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
318a69ab1b
mark SHA intrinsics as safe
...
Mark all SHA intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
40e14c81db
mark AVX2 intrinsics as safe
...
Mark all AVX2 SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
4ca81c0432
mark FMA intrinsics as safe
...
Mark all FMA intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
093f6a34ef
mark F16C intrinsics as safe
...
Mark all F16C intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
7cc2822ce8
mark AVX intrinsics as safe
...
Mark all AVX SIMD-computing intrinsics as safe, except for those involving memory operations and register operations.
`AVX+SHA512`, `AVX+SM3` and `AVX+SM4` intrinsics are missing.
2025-02-24 14:23:31 +00:00
usamoi
a355388e26
mark BMI2 intrinsics as safe
...
Mark all BMI2 intrinsics as safe.
`_mulx_u32` and `_mulx_u64` accepts a reference instead of a pointer.
2025-02-24 14:23:31 +00:00
usamoi
cfbeb3be9c
mark BMI1 intrinsics as safe
...
Mark all BMI1 intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
9913eb5436
mark LZCNT intrinsics as safe
...
Mark all LZCNT intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
1271b7e281
mark POPCNT intrinsics as safe
...
Mark all POPCNT intrinsics as safe.
`_mm_popcnt_u32` and `_mm_popcnt_u64` are missing.
2025-02-24 14:23:31 +00:00
usamoi
0db395e703
mark SSE4a intrinsics as safe
...
Mark all SSE4a SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
caafa820b1
mark SSE4.2 intrinsics as safe
...
Mark all SSE4.2 intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
d12cfd7851
mark SSE4.1 intrinsics as safe
...
Mark all SSE4.1 SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
e801fc4ffd
mark SSSE3 intrinsics as safe
...
Mark all SSSE3 intrinsics as safe.
2025-02-24 14:23:31 +00:00
usamoi
4836ce515e
mark SSE3 SIMD intrinsics as safe
...
Mark all SSE3 SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
f6a4a09e27
mark SSE2 SIMD intrinsics as safe
...
Mark all SSE2 SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
usamoi
74ff8754fd
mark SSE SIMD intrinsics as safe
...
Mark all SSE SIMD-computing intrinsics as safe, except for those involving memory operations.
2025-02-24 14:23:31 +00:00
Kajetan Puchalski
f4a31fd609
core-arch: Add NEON fp16 intrinsics
2025-02-24 14:22:42 +00:00
Kajetan Puchalski
7cdc9157e6
core-arch: Add Arm f16 vector types
2025-02-24 14:22:42 +00:00
James Barford-Evans
014fe0b9c1
fix - only use simd_shuffle! on intrinsics that require it
2025-02-24 11:04:20 +00:00
James Barford-Evans
b95fc44d25
fix up yaml & re-generate
2025-02-24 11:04:20 +00:00
James Barford-Evans
443d1cdbf0
fix non-working intrinsics
2025-02-24 11:04:20 +00:00
James Barford-Evans
d12027810c
Remove hand crafted intrinsics that are now generated
2025-02-24 11:04:20 +00:00
James Barford-Evans
3b93df83b2
Update YAML & generated files
2025-02-24 11:04:20 +00:00
usamoi
3ac35a7333
mark riscv intrinsics as safe
2025-02-23 23:32:14 +00:00
Folkert de Vries
055daf7b8c
start using the newly added target features for testing
2025-02-23 23:21:35 +00:00
Folkert de Vries
d845304ed7
use generic llvm intrinsics for rounding
2025-02-23 23:21:35 +00:00
Folkert de Vries
3e3c523954
simplify the vec_abs
implementation
2025-02-23 23:21:35 +00:00
Folkert de Vries
bed15215fb
impl VectorMax/Min
for vector_float/double
...
these implementations work with just the vector target feature, but they only get a dedicated instruction in vector-enhancements-1
2025-02-23 23:21:35 +00:00
Folkert de Vries
cefc61d22e
implement vec_round
and friends
2025-02-23 23:21:35 +00:00
Folkert de Vries
b75bc77065
use simd_neg
in the impl crate::ops::Neg
...
on s390x I had some problems with the old implementation not combining
with other instructions well, and using the purpose-built intrinsic is
just clearer.
2025-02-23 23:21:06 +00:00
Folkert de Vries
2dbc1e9b25
use simd_shuffle
in the implementation of vec_splat
2025-02-23 23:21:06 +00:00
Folkert de Vries
1fab09a95c
use simd_ctlz
instead of an extern
2025-02-23 23:21:06 +00:00
Folkert de Vries
ac92d7d006
use llvm.nearbyint.v4f32
for rounding
...
see https://godbolt.org/z/Wx1KWezbe to see that these in fact generate equivalent assembly
2025-02-23 23:21:06 +00:00
Folkert de Vries
f6d53388e6
use generic llvm intrinsics for min/max on powerpc
2025-02-23 23:21:06 +00:00
bendn
ae8b7b38aa
fix
2025-02-23 23:15:57 +00:00
Nikita Popov
96c609e5f7
Update wasm sub sat intrinsics for LLVM 20
...
The wasm-specific intrinsics have been removed in
https://github.com/llvm/llvm-project/pull/109405 , use the generic
ones instead.
2025-02-19 17:04:36 +00:00
Amanieu d'Antras
3107e07899
Remove target_feature_11 feature which is now stable
2025-02-14 16:40:26 +00:00
Folkert de Vries
d28b3b3eea
add vec_nand
, vec_nor
, vec_eqv
, vec_andc
and vec_orc
2025-02-13 10:55:13 +00:00
Folkert de Vries
8e6208b18f
s390x vector: add vec_and
, vec_or
and vec_xor
2025-02-13 10:55:13 +00:00
Folkert de Vries
507a298ba9
s390x vector: add vec_cntlz
, vec_cnttz
and vec_popcnt
2025-02-13 10:55:13 +00:00
sayantn
46fbfe9b09
Add the keylocker intrinsics
2025-02-13 10:54:53 +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
Eric Huss
1d091e3aaa
Update documentation for unsafe_op_in_unsafe_fn
...
For the documentation side, we probably want to show the Rust 2024
style.
2025-02-09 12:31:33 -08:00
Eric Huss
844a604bf0
Allow unsafe_op_in_unsafe_fn
...
Because stdarch has a really large number of unsafe functions with
single-line calls, `unsafe_op_in_unsafe_fn` would end up adding a lot of
noise, so for now we will allow it to migrate to 2024.
2025-02-09 12:31:30 -08:00
Eric Huss
64e9ca74a8
Apply missing_unsafe_on_extern
2025-02-09 09:12:30 -08:00
Folkert de Vries
fe2acd4184
some doc changes
2025-02-07 22:42:27 +00:00