1573 Commits

Author SHA1 Message Date
Folkert de Vries
6761c73789 add vec_load_len and vec_store_len 2025-03-16 13:50:11 +00:00
Folkert de Vries
3813933b58 add vec_xl and vec_xst 2025-03-16 13:50:11 +00:00
Folkert de Vries
e4d33640d0 add vec_reve 2025-03-16 13:50:11 +00:00
Alex Crichton
267558c5c2 Document safety conditions of simd shifts 2025-03-16 13:20:37 +00:00
Alex Crichton
28580edab8 Fix rustfmt 2025-03-16 13:20:37 +00:00
Alex Crichton
ab098c6be6 wasm32: Fix undefined behavior with shift intrinsics
This commit fixes an issue where simd shift intrinsic in LLVM are
undefined behavior if the shift amount is larger than the bit width of
the lane. While in WebAssembly the corresponding instructions are
defined as masking out the upper bits we need to represent that
explicitly in LLVM IR to ensure that the semantics remain defined.

cc rust-lang/rust#137941
2025-03-16 13:20:37 +00:00
Scott McMurray
9405357868 Don't field-project (.0) into SIMD types 2025-03-06 17:55:01 +00:00
James Barford-Evans
89c9c8ba9c feat - FEAT_LUT neon instrinsics 2025-03-05 14:54:05 +00:00
James Barford-Evans
520dfd5210 add unstable for faminmax 2025-03-04 15:50:04 +00:00
James Barford-Evans
61b9f9f9eb mark FEAT_FAMINMAX intrinsics as safe 2025-03-04 15:50:04 +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
James Barford-Evans
1088aae289 feat - FEAT_FAMINMAX neon intrinsics 2025-03-04 15:50:04 +00:00
Ralf Jung
694214b200 fix unnecessary unsafe error in doctest 2025-03-04 15:03:48 +00:00
Ralf Jung
f5a577c2d7 make _mm256_zero{upper,all} safe 2025-03-03 14:50:07 +00:00
Folkert de Vries
5b0c5d2dad add vec_find_any_eq_or_0_idx_cc and vec_find_any_ne_or_0_idx_cc 2025-03-03 11:09:56 +00:00
Folkert de Vries
fcf6612d42 add vec_find_any_eq_or_0_idx and vec_find_any_ne_or_0_idx 2025-03-03 11:09:56 +00:00
Folkert de Vries
15def154eb add vec_find_any_eq_cc and vec_find_any_ne_cc 2025-03-03 11:09:56 +00:00
Folkert de Vries
b7bcdcb819 add vec_find_any_eq_idx and vec_find_any_ne_idx 2025-03-03 11:09:56 +00:00
Folkert de Vries
79b89a0e14 add vec_find_any_eq and vec_find_any_ne 2025-03-03 11:09:56 +00:00
Folkert de Vries
914cd5a539 add vec_splat and friends 2025-03-03 11:09:56 +00:00
Folkert de Vries
08215ac576 add vec_sqrt 2025-03-03 11:09:56 +00:00
Folkert de Vries
4c48771da2 add vec_nabs 2025-03-03 11:09:56 +00:00
Folkert de Vries
b84a33dd10 add vec_subc_u128, vec_sube_u128, vec_subec_u128, vec_sub_u128
and `vec_subc`
2025-03-03 11:09:56 +00:00
Folkert de Vries
a956edc847 add vec_sum2, vec_sum4 and vec_sum_u128 2025-03-03 11:09:56 +00:00
Folkert de Vries
5d20f31a2c add vec_perm 2025-03-03 11:09:56 +00:00
Folkert de Vries
33f1f20443 add vec_genmask and vec_genmasks 2025-03-03 11:09:56 +00:00
Folkert de Vries
1766b7ce5e pull out ShuffleMask 2025-03-03 11:09:56 +00:00
Folkert de Vries
24ef1ac370 add vec_mergel and vec_mergeh 2025-03-03 11:09:56 +00:00
Folkert de Vries
fb05c533b8 add vec_revb 2025-03-03 11:09:56 +00:00
Folkert de Vries
7cc682d402 add vec_reve 2025-03-03 11:09:56 +00:00
Folkert de Vries
4341a8b8b3 add vec_rl_mask 2025-03-03 11:09:56 +00:00
Folkert de Vries
dc0a5c88fb add vec_rli 2025-03-03 11:09:56 +00:00
Folkert de Vries
c9a9385b0a add vector shift by byte 2025-03-03 11:09:56 +00:00
Folkert de Vries
81be4a28db implement rotate left 2025-03-03 11:09:56 +00:00
Folkert de Vries
b1d20cb036 implement standard bitshifts 2025-03-03 11:09:56 +00:00
Folkert de Vries
ef68d2ffaa implement the long bitshifts 2025-03-03 11:09:56 +00:00
Folkert de Vries
a82046181e powerpc: use llvm.fshl for vec_rl 2025-03-03 11:08:19 +00:00
Folkert de Vries
aa4ce89f9e use the simd_fma intrinsic for vec_madd 2025-03-03 11:05:07 +00:00
Ralf Jung
6a30c9320e wasm: update for rintf intrinsic rename 2025-03-03 10:59:51 +00:00
usamoi
6c0068d93f fix compilation on armebv7r-none-eabi 2025-03-03 10:59:14 +00:00
Eric Huss
4efb6d5fd4 Fix doctests failing due to unused_unsafe 2025-02-28 02:59:16 +00:00
usamoi
bcf796a34c mark arm intrinsics as safe 2025-02-27 22:02:52 +00:00
Tobias Decking
25b17cf9f3 Update simd128.rs 2025-02-27 22:02:32 +00:00
James Barford-Evans
fc83e49bb1 fix - neon type signed unsigned conversions 2025-02-26 12:15:15 +00:00
aaishwarymishra@gmail.com
e18318ccf5 replaced extern "rust-intrinsic" block with core::ptr::copy_nonoverlapping
using core::ptr::copy_nonoverlapping for memory operations

changes core::ptr::coopy_nonoverlapping to crate::ptr::
2025-02-25 14:17:35 +00:00
Eduardo Sánchez Muñoz
b8d25bdefa Remove some allow(unsafe_op_in_unsafe_fn)s and use target_feature 1.1 in examples 2025-02-25 01:11:47 +00:00
Folkert de Vries
d0bc126ec5 powerpc: use simd_ceil and simd_floor 2025-02-24 14:25:39 +00:00
Folkert de Vries
d3880872ea nvptx: use simd_fmin and simd_fmax for minnum and maxnum 2025-02-24 14:25:11 +00:00