Jubilee
4f0d8225fa
Implement dynamic byte-swizzle prototype ( rust-lang/portable-simd#334 )
...
This is meant to be an example that is used to test
a Rust intrinsic against, which will replace it.
The interface is fairly direct and doesn't address
more nuanced or interesting permutations one can do,
nevermind on types other than bytes.
The ultimate goal is for direct LLVM support for this.
2023-04-22 18:27:52 -07:00
Caleb Zulawski
db8b23cea5
Remove reexport of simd::*
2022-11-27 23:44:20 -05:00
Caleb Zulawski
9dc690c482
Add TryFrom<&[T]> tests
2022-11-11 18:10:51 -05:00
Caleb Zulawski
572122a95d
Add missing pointer tests and rename pointer cast fns to match scalars
2022-11-09 21:28:38 -05:00
Caleb Zulawski
da25087f79
Test a more useful pointer
2022-10-29 11:55:01 -04:00
Caleb Zulawski
f10e591de1
Fix wrapping pointer arithmetic
2022-10-29 11:55:01 -04:00
Caleb Zulawski
4076ba8a77
Implement scatter/gather with new pointer vector and add tests
2022-10-29 11:55:01 -04:00
Caleb Zulawski
3183afb6b5
Fix interleave/deinterleave for vectors with only one lane
2022-07-29 11:57:05 -04:00
Caleb Zulawski
5e320046ec
Merge pull request #246 from rust-lang/feature/bitmask_array
...
Add bitmask array
2022-05-31 14:42:34 -04:00
Caleb Zulawski
c44a608f5f
Merge pull request #278 from rust-lang/feature/simd-traits
...
Move element-specific functions to traits
2022-05-31 14:26:30 -04:00
Caleb Zulawski
1cee9304b3
Fix generic_const_exprs feature
2022-05-21 20:08:38 -04:00
Caleb Zulawski
b7fea94c96
Generically implement ToBitMaskArray
2022-05-21 20:02:31 -04:00
Caleb Zulawski
aa11959f19
Add mask cast tests
2022-05-21 16:34:27 -04:00
Caleb Zulawski
04be48ff97
Add float trait, and seal traits.
2022-04-15 02:11:16 -04:00
Caleb Zulawski
376957ad8c
Move integer functions to traits.
2022-04-15 02:00:50 -04:00
Jubilee
1ec010db2a
rust-lang/portable-simd#265 : Move comparisons to traits
...
A simpler variant of rust-lang/portable-simd#206 .
* Comparisons are moved to `SimdPartialEq`, `SimdPartialOrd`, and `SimdOrd`. The function names are prefixed with `simd_` to disambiguate from the regular `PartialEq` etc functions. With the functions on traits instead of `Simd` directly, shadowing the function names doesn't work very well.
* Floating point `Ord`-like functions are put into a `SimdFloat` trait. The intention is that eventually (some time after this PR) all floating point functions will be moved from `Simd` to `SimdFloat`, and the same goes for future `SimdInt`/`SimdUint` traits.
2022-04-04 10:19:20 -07:00
Jubilee
0711e11593
rust-lang/portable-simd#267 : fix big-endian bitmasks smaller than a byte
2022-03-21 00:05:38 -07:00
Ralf Jung
35e16a1e06
rust-lang/portable-simd#266 : reduce Miri test count in round.rs
2022-03-20 16:17:33 -07:00
Ralf Jung
60555b57f1
fix big-endian bitmasks smaller than a byte
2022-03-17 10:42:39 -04:00
Ralf Jung
50fbfa4eba
add bitmask roundtrip test for vector length below 8
2022-03-16 20:28:18 -04:00
Caleb Zulawski
2a02c4d9cb
Create SimdFloat trait
2022-03-13 19:57:06 +00:00
Caleb Zulawski
80469c66d6
Move comparisons to SimdPartialOrd and SimdOrd traits
2022-03-13 19:07:36 +00:00
Jubilee
72df4c4505
portable-simd#261: Rename horizontal_* to reduce_*
2022-03-12 15:34:58 -08:00
Ralf Jung
49043f4434
rust-lang/portable-simd#262 : also implement clamp for integer vectors
...
* add test from issue rust-lang/portable-simd#253
2022-03-12 15:32:28 -08:00
Jacob Lifshay
c196b8abaa
replace horizontal_* with reduce_*
2022-03-11 14:49:06 -08:00
Jorge Leitao
86b9f69622
rust-lang/portable-simd#260 : Add .min
and .max
for integers
2022-03-10 15:12:40 -08:00
Jubilee
a5789d17bf
rust-lang/portable-simd#248 : Remove default features
...
Now that we are thoroughly embedded in libcore, we don't need these on by default.
Indeed, their presence may provide confusing results during integration attempts.
2022-02-28 19:56:31 -08:00
Jubilee
5f49d4c843
rust-lang/portable-simd#239 : Bitmask conversion trait
...
Another approach that fixes rust-lang/portable-simd#223 , as an alternative to rust-lang/portable-simd#238 .
This adds the `ToBitMask` trait, which is implemented on a vector for each bitmask type it supports. This includes all unsigned integers with enough bits to contain it. The byte array variant has been separated out for now into rust-lang/portable-simd#246 and still requires `generic_const_exprs`, but the integer variants no longer require it and can make it to nightly.
2022-02-26 12:56:23 -08:00
Caleb Zulawski
11c3eefa35
Manually implement for supported lanes
2022-02-24 18:03:40 -08:00
Caleb Zulawski
842ac87747
Use bitmask trait
2022-02-24 18:02:39 -08:00
Jubilee
5d52455c65
Review for clarity and concision
...
Co-authored-by: Caleb Zulawski <caleb.zulawski@gmail.com>
2022-02-08 17:43:26 -08:00
Jubilee Young
672bfebfd8
Remove overflow panic from divrem
...
Includes some remarks in intrinsics.rs,
generated while auditing the interface for remaining UB.
2022-02-08 15:39:55 -08:00
Jubilee Young
4910274686
Genericize to_int_unchecked
2022-02-03 03:46:16 -08:00
Jubilee Young
ebf65de2ce
Delete outmoded fn round_from_int
2022-02-03 03:46:16 -08:00
Jubilee Young
0031b02cee
Add core_simd/tests/cast.rs
2022-01-26 21:04:47 -08:00
Jubilee Young
af26e3b9fd
Tear down and rewrite support for float testing
2021-12-31 14:28:14 -08:00
Jubilee Young
8003b04323
impl Op<&'_ RHS> for &'_ LHS
2021-12-01 15:45:01 -08:00
Jubilee Young
257fa7aa6d
Drop splats for Simd<T, _>
...
Unfortunately, splatting impls currently break several crates.
Rust needs more time to review possible mitigations, so
drop the impls for the `impl Add<T> for Simd<T, _>` pattern, for now.
2021-12-01 15:40:53 -08:00
Jubilee
081240a663
Merge pull request #175 from rust-lang/feature/more-actions
...
Delete travis config, move tests to github actions.
2021-11-09 20:12:47 -08:00
Caleb Zulawski
349a61143c
Delete travis config, move tests to github actions.
2021-11-10 02:18:41 +00:00
Caleb Zulawski
4e00aa68c7
rotate_{left,right} -> rotate_lanes_{left,right}
2021-11-06 00:34:23 +00:00
Caleb Zulawski
10168fb7c4
Add new swizzle API
...
Expand swizzle API and migrate existing functions. Add rotate_left, rotate_right.
Hide implementation details
Add simd_shuffle macro
2021-10-11 13:18:59 -07:00
Jubilee Young
c2f59483f9
Feature-flag fused mul-add to block libcalls
2021-09-21 19:42:31 -07:00
Caleb Zulawski
8cf7a62e5d
Fix cargo features for nightly ( #155 )
...
* Fix cargo features for nightly
2021-09-08 17:01:16 -07:00
Caleb Zulawski
00165ed5be
Remove mask aliases
2021-08-07 21:22:10 +00:00
Caleb Zulawski
40142ac034
Remove aliases
2021-08-07 21:15:24 +00:00
Caleb Zulawski
275889f7f4
Remove remaining usage of aliases
2021-08-07 21:06:40 +00:00
Caleb Zulawski
f7f29683a8
Remove aliases from most tests
2021-08-07 20:38:41 +00:00
Caleb Zulawski
34384b7a68
Add const_evaluatable_checked feature, change to_bitmask to use it, and fix existing std feature
2021-07-28 04:19:31 +00:00
Caleb Zulawski
732b7edfab
Add fmt and clippy to CI ( #147 )
...
* Add fmt and clippy to CI
* Add rust components
* Fix formatting
2021-07-23 17:43:53 -07:00