Ralf Jung
ef6263d968
do not use const stability attribute when we don't even need to call the intrinsic in const
2023-11-16 15:53:11 -08:00
Jake Goulding
e01a7c2408
Fix copy-paste typos for the _x2 and _x3 vector types
2023-11-16 15:52:37 -08:00
Ralf Jung
3bc20dc71c
riscv: remove intrinsics that cannot be used from Rust
2023-11-05 18:28:04 +01:00
Eduardo Sánchez Muñoz
5a4a732762
Avoid unneeded transmutes in generated ARM tests
2023-10-31 17:58:01 +01:00
Eduardo Sánchez Muñoz
c808ba4722
Remove unneeded transmutes in ARM code, except generated tests
2023-10-31 17:58:01 +01:00
Eduardo Sánchez Muñoz
3b2a5e2866
Refactor some loops to avoid indexing
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
9f741c5986
Simplify some expressions with pointers and references
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
02156819c9
Avoid constans that are too close to PI
or TAU
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
d2674ea2fe
Replace some x >= LO && x <= HI
with matches!(x, LO..=HI)
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
db57b42188
Change x <= y - 1
to x < y
in static_assert_{u,s}imm_bits
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
438d00e891
Silence four additional clippy warnings and sort them alphabetically
2023-10-31 02:20:17 +01:00
Eduardo Sánchez Muñoz
fa766fe954
Add #[cfg_attr(miri, ignore)]
to tests of functions that cannot be supported by Miri
...
This includes functions that use inline assemby or that do certains operations such as saving/restoring the processor state.
2023-10-30 00:01:33 +01:00
Eduardo Sánchez Muñoz
8b88fb87b7
Improve _mm_round_ss/_mm_round_sd tests
...
* Do not use deprecated CSR access functions
* Test different rounding modes
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
4f52b00597
Extend _mm_minpos_epu16 test to check case where minimum value is repeated
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
46c6fee14e
Extend _mm_insert_ps test to check zeroing priority over copying
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
88cf134226
Extend _mm_mulhrs_epi16 test to check large values
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
e8d5cbd60f
Extend _mm_maddubs_epi16 test to check widening and saturating behavior
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
c07535ca79
Extend SSSE3 hadd/hsub tests to check overflow behavior (wrapping or saturating)
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
0d09b65521
Extend _mm_shuffle_epi8 test to check index wrapping
2023-10-30 00:00:49 +01:00
Eduardo Sánchez Muñoz
d2970f4514
Extend _mm_madd_epi16 test to check cases with large values.
2023-10-30 00:00:49 +01:00
Amanieu d'Antras
ea27e5cfcb
Fix various compilation errors
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
3e5850284a
Fix more missing/incorrect feature specifications
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
Amanieu d'Antras
941d609570
Add tracking issue for 32-bit ARM DSP instrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
0352c542d1
Remove ARM udf and dbg intrinsics
...
These have already been removed for AArch64
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
7de980e124
Add tracking issue for all remaining unstable NEON intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
736da66780
Add tracking issue for ARM barrier intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
bd54f94098
Add tracking issue for ARM hint intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
6bde701fe3
Add tracking issue for AArch64 prefetch intrinsic
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
a70d90d17a
Add tracking issue for AArch64 TME intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
9a1854b844
Add tracking issue for ARM CRC32 intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
1838ada25d
Add stability attributes for re-exports of AArch64 NEON intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
b10902e788
Fix 'since' in simd_avx512_types stability attribute
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
bde97f485d
Fix stability attributes for ARM crypto intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
1dcafa2caf
Add tracking issue for ARM NEON instructions
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
ed25ca9875
Add tracking issue for NVPTX intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
39c6d6af13
Add tracking issue for MIPS intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
ead4834277
Add tracking issues for WebAssembly
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
676ad64cae
Add tracking issue for _MM_SHUFFLE
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
04ab1c04b1
Check for missing stability attributes when building outside core
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
ef2c441c81
Add tracking issue for PowerPC intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
5f29166d6a
Add tracking issue for RISC-V intrinsics
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
3243b5b41f
Revert accidental stabilization of _mm512_storeu_ps
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
ef968b89fe
Add tracking issue on has_cpuid
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
3c7af52600
Add stability attributes on x86 re-exports
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
7c238335ea
Add tracking issue for RTM
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
ca55a52eba
Add tracking issue for AVX-512
2023-10-29 20:39:50 +01:00
Amanieu d'Antras
7f5fd0955a
Disable NEON intrinsics on big-endian ARM
...
These are currently broken because the order of elements inside
vectors is reversed on big-endian systems: the ARM ABI requires that
element 0 is located at the highest address of the vector type. However
LLVM intrinsics expect element 0 to be located at the lowest address.
See https://llvm.org/docs/BigEndianNEON.html and `arm_neon.h` in
Clang for more details.
Although this is a breaking change, this is acceptable for 2 reasons:
- big endian ARM targets are only tier 3.
- it is preferable to stop existing code from compiling than to let it
run and produce incorrect results.
2023-10-21 16:29:18 +02:00
Eduardo Sánchez Muñoz
45f28923ce
Fix UB in _mm_movemask_ps, _mm_movemask_pd, _mm256_movemask_ps and _mm256_movemask_pd
...
The `simd_bitmask` intrinsic requires each element to be all-1 or all-0, while the x86 functions only check for the highest bit.
2023-10-12 08:37:29 +02:00
Eduardo Sánchez Muñoz
b2c5bc9696
Remove unneeded transmutes
...
(or replace them with safe versions)
2023-10-11 18:11:51 +02:00