Commit Graph

255 Commits

Author SHA1 Message Date
Jubilee Young
afd7c5a5ee Make sure MaskElement is in bitmasks.rs 2021-09-27 15:27:34 -07:00
Jubilee Young
c2f59483f9 Feature-flag fused mul-add to block libcalls 2021-09-21 19:42:31 -07:00
Jubilee Young
6d3d07abfe Feature-flag doc tests so they run for core 2021-09-21 17:19:35 -07:00
Jubilee Young
8342fe75f2 Cleanup more for std::simd also 2021-09-21 10:31:37 -07:00
Jubilee Young
b25ed7f86d Restructure crate as core module
Aligns module with rust-lang/library/core, creating an... unusual
architecture that is easier to pull in as a module, as core itself can
have no dependencies (as we haven't built core yet).
2021-09-18 23:26:10 -07:00
Caleb Zulawski
8cf7a62e5d
Fix cargo features for nightly (#155)
* Fix cargo features for nightly
2021-09-08 17:01:16 -07:00
Jubilee
d42875302d
Merge pull request #154 from rust-lang/feature/generic-element-type
Change vectors to be generic over element type.
2021-08-17 12:10:44 -07:00
Caleb Zulawski
4aafd8e779 Rename element type variable 2021-08-16 16:38:30 -04:00
Caleb Zulawski
cf653c7b93
Update crates/core_simd/src/vector.rs
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2021-08-13 20:40:05 -04: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
88f79d4a6f Remove aliases from op trait impls 2021-08-07 20:20:20 +00:00
Caleb Zulawski
5ed57b4c85 Remove most usage of type aliases 2021-08-07 19:28:27 +00:00
Caleb Zulawski
e11286a362 Remove unused transmute file 2021-08-07 16:53:08 +00:00
Caleb Zulawski
e6d95e4798 Implement comparisons generically 2021-08-07 05:47:54 +00:00
Caleb Zulawski
ea0280539c Implement select generically 2021-08-07 05:19:06 +00:00
Caleb Zulawski
de13b20b27 Convert all masks to a single type 2021-08-07 04:30:24 +00:00
Caleb Zulawski
ddc67e3bf2 Remove Mask trait 2021-08-07 01:17:27 +00:00
Caleb Zulawski
8cc38ae292 Remove Vector trait 2021-08-07 01:16:23 +00:00
Caleb Zulawski
dc4dc99649 Change to various generic impls 2021-08-06 03:45:57 +00:00
Caleb Zulawski
054f25f2b0 Convert all vectors to a single type 2021-08-06 02:31:24 +00:00
Caleb Zulawski
50eb35eb3b
Merge pull request #153 from rust-lang/death-of-the-author
Rename to portable-simd and remove other names
2021-08-05 20:49:45 -04:00
Jubilee Young
2acf204b09 Rename to portable-simd and remove other names
Clean up references to the repo's previous name.
Removes the authors field, which is non-obligatory since RFC 3052.
Better to omit than confound: let git log be our witness.
2021-08-04 23:12:23 -07:00
Caleb Zulawski
cca9102429 Change bitmasks to use less opaque type 2021-07-29 04:55:28 +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
97c25dd746 Add lane count marker type 2021-07-24 17:37:36 +00:00
Caleb Zulawski
f93bef35f3 Move vector implementation 2021-07-24 17:37:36 +00:00
Caleb Zulawski
529ffe05d6 Use new module naming 2021-07-24 17:37:36 +00:00
Caleb Zulawski
fdd7d6e252 Change as_slice to as_array 2021-07-24 17:37:36 +00:00
Caleb Zulawski
f178dda187 Add as_slice/as_mut_slice to Vector 2021-07-24 17:37:36 +00:00
Caleb Zulawski
c077bf3c07 Rename SimdArray to Vector, remove its generic parameter, and remove LanesAtMost32 2021-07-24 17:37:36 +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
Caleb Zulawski
be96995d8d
Add portable_simd unstable feature gate (#141) 2021-07-19 16:13:24 -07:00
Caleb Zulawski
3954b27787
Add conversions between vendor intrinsics (#144)
* Add x86 vendor conversions
* Add wasm32 vendor types
* Add arm vendor types
* Add powerpc vendor types
2021-07-19 15:01:28 -07:00
Miguel Raz Guzmán Macedo
ac749a180b
add matrix_inversion example (#131)
* add matrix_inversion example
2021-07-19 14:58:13 -07:00
Adam Greig
871d588ec4
Add 32-bit SIMD types i/u16x2 and i/u8x4. (#145)
These types are useful for the "SIMD32" instructions available on ARMv6
(except M-class), ARMv7 (M-class with DSP), and ARMv8.
2021-07-19 14:18:29 -07:00
Jubilee
b5ba19577f
Merge pull request #139 from rust-lang/feat/gather
Add SimdArray trait and safe gather/scatter API (rust-lang/stdsimd#139)
This PR has four parts, without which it doesn't make a lot of sense:
-    The introduction of the SimdArray trait for abstraction over vectors.
-    The implementation of private vector-of-pointers types.
-    Using these to allow constructing vectors with SimdArray::gather_{or, or_default, select}.
-    Using these to allow writing vectors using SimdArray::scatter{,_select}.
2021-06-23 20:47:51 -07:00
Jubilee
3872723ead
Merge pull request #138 from rust-lang/feature/various-fns
Add various fns
- Sum/Product traits
- recip/to_degrees/to_radians/min/max/clamp/signum/copysign; rust-lang/stdsimd#14
- mul_add: rust-lang/stdsimd#14, fixes rust-lang/stdsimd#102
2021-06-23 14:19:08 -07:00
Jubilee Young
1529ed43d8 Document and test doubled writes in scatter 2021-06-23 12:13:10 -07:00
Jubilee Young
f38659a46c Add assoc const SimdArray::LANES 2021-06-22 15:28:15 -07:00
Jubilee Young
81ceda8c5b Add SimdArray::scatter{,_select} 2021-06-21 18:18:50 -07:00
Jubilee Young
128b6f5e22 Add SimdArray::gather_{or,or_default,select} 2021-06-21 18:10:28 -07:00
Jubilee Young
2f99cc80d8 Add pointer vectors: SimdConstPtr, SimdMutPtr 2021-06-21 16:15:19 -07:00
Jubilee Young
16765a1021 Introduce SimdArray trait
This provides a general framework for describing relationships
between vector types and scalar types.
2021-06-21 16:15:15 -07:00
Caleb Zulawski
b0a9fe5d07 Extract constant from scalar to_radians as well 2021-06-21 21:11:37 +00:00
Caleb Zulawski
708ae61841 Remove scalar Sum/Product over questionable order of operations 2021-06-21 21:08:26 +00:00
Caleb Zulawski
15b4e28004
Add from_bitmask (#136)
* Add from_bitmask
* Add mips workaround
2021-06-21 14:05:43 -07:00
Caleb Zulawski
7b66032ed5 Fix test typo 2021-06-13 20:11:01 +00:00
Caleb Zulawski
f102de7c8b Add mul_add 2021-06-13 19:59:17 +00:00
Caleb Zulawski
74e6262ce4 Add min/max/clamp 2021-06-13 19:47:32 +00:00
Caleb Zulawski
b936f34a5c Add various special functions (recip, signum, copysign) 2021-06-13 18:45:45 +00:00
Caleb Zulawski
96f0f5d29f Implement Sum/Product over references 2021-06-13 18:00:47 +00:00
Caleb Zulawski
bdcccba55c Implement Sum/Product traits 2021-06-13 17:52:44 +00:00
Miguel Raz Guzmán Macedo
57e67c905f
add doctests for shuffle (#130)
* add shuffle doctests/examples
2021-06-11 15:48:44 -07:00
Caleb Zulawski
68393aa594
Add mask width conversion (#127) 2021-06-11 15:48:05 -07:00
Jubilee
4311c0660e
Merge pull request #122 from miguelraz/nbodyexample
nbody example
2021-06-04 09:43:48 -07:00
miguel raz
be121c93ff clean code vis. Jubilee's comments 2021-06-04 10:54:08 -05:00
Miguel Raz Guzmán Macedo
435d1cf7a6
Update crates/core_simd/examples/nbody.rs
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2021-06-04 10:40:39 -05:00
miguel raz
c042f33673 clean up code, fudge approx true 2021-06-01 20:05:30 -05:00
miguel raz
70305c5fad add main to avoid CI crash 2021-06-01 19:46:48 -05:00
miguel raz
4e86aeb7f9 finish nbody 2021-06-01 19:31:34 -05:00
miguel raz
5557907098 rewrite unaligned slice, fix output const array 2021-06-01 15:25:56 -05:00
miguel raz
f24110aa5b collapse run_k into run 2021-06-01 12:26:29 -05:00
miguel raz
56050562f1 don't use turbofish on run 2021-06-01 12:15:37 -05:00
miguel raz
83dc5b782b don't need clippy 2021-06-01 12:09:11 -05:00
Miguel Raz Guzmán Macedo
3c05ceec70
Update crates/core_simd/examples/nbody.rs
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2021-05-31 18:03:55 -05:00
Caleb Zulawski
992621844f Remove extended_key_value_attributes feature 2021-05-26 10:27:16 -04:00
miguel raz
8bea3627cb replace sum() with horizontal_sum() 2021-05-25 21:25:42 -05:00
miguel raz
ab6af37f8f Simdf64 from attempt 2021-05-25 20:10:55 -05:00
miguel raz
2591c59ba7 fix imports 2021-05-25 20:07:20 -05:00
miguel raz
e52d51cd45 nbody example 2021-05-25 20:00:01 -05:00
Caleb Zulawski
20c3b8e13f
Merge pull request #120 from miguelraz/simd_fsqrt
add simd_fsqrt intrinsic
2021-05-24 19:07:12 -04:00
Caleb Zulawski
1c18f8fd59 Add byte conversions 2021-05-24 15:02:45 -07:00
miguel raz
d6795814d4 add simd_fsqrt intrinsic 2021-05-18 10:11:37 -05:00
Caleb Zulawski
45d7e80aa8 Clarify documentation 2021-05-08 00:13:40 +00:00
Caleb Zulawski
e8cae870fc Fix rustfmt 2021-05-08 00:11:34 +00:00
Caleb Zulawski
0bf5eb5f72 Add select for masks 2021-05-08 00:07:07 +00:00
Caleb Zulawski
563d2a2cfc Add select function 2021-05-01 15:21:41 +00:00
Caleb Zulawski
589fce0313 Attempt to workaround MIPS bug 2021-04-30 23:22:27 -07:00
Caleb Zulawski
98dad13526 Make implementation more scalable by using a helper trait to determine bitmask size. Improve bitmask to int conversion. 2021-04-30 23:22:27 -07:00
Caleb Zulawski
eec42808aa Update bitmask API 2021-04-28 21:56:11 +00:00
Caleb Zulawski
da42aa5403 Begin reducing mask API 2021-04-28 21:56:11 +00:00
Jubilee
5751179dc6
Merge pull request #107 from rust-lang/feat/simd-round
Add SIMD rounding intrinsics
2021-04-26 09:05:34 -07:00
Jubilee Young
6ea08d8d5f Add SIMD round, trunc, fract 2021-04-25 18:31:49 -07:00
Jubilee Young
b4fda6ef06 Give rounding intrinsics their own modules 2021-04-25 18:27:03 -07:00
Jubilee Young
92d643b628 Remove Simd{U,I}128 2021-04-25 16:45:19 -07:00
Jubilee Young
f06427f4d6 Move lanes_at_most_64 to _32 2021-04-25 16:42:49 -07:00
Jubilee Young
91134e614e Branchless abs 2021-04-25 16:42:49 -07:00
Jubilee Young
e8b6bca694 Finish fixing up abs docs 2021-04-25 16:42:49 -07:00
Caleb Zulawski
1f4e902ee7 Fix saturating math docs 2021-04-25 16:42:49 -07:00
Jubilee
24ebae870e
Merge pull request #83 from rust-lang/feature/reductions
Add reductions
2021-04-22 16:44:41 -07:00
Caleb Zulawski
04ee107323 Remove wrapping from sum/product fns 2021-04-22 22:41:12 +00:00
Jubilee
2fa62b91c8
Merge pull request #98 from rust-lang/feature/common-shuffles
Add some common shuffles
2021-04-20 23:33:01 -07:00
Caleb Zulawski
7028a58294 Attempt to clarify interleave/deinterleave 2021-04-20 01:51:06 +00:00
Caleb Zulawski
828b274ae7 Rename sum, product to horizontal_{sum,product} 2021-04-19 23:41:11 +00:00
Jubilee Young
9acc112090 Use fabs intrinsic 2021-04-19 04:49:04 +00:00
Caleb Zulawski
1999c54890
Clarify concatenation order
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2021-04-17 15:21:25 -04:00
Caleb Zulawski
977f26f692 Add some common shuffles 2021-04-17 17:00:14 +00:00