Commit Graph

231 Commits

Author SHA1 Message Date
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
Caleb Zulawski
e73985f25d
Merge pull request #89 from rust-lang/intrinsic-neg
Use neg intrinsics
2021-04-16 21:35:11 -04:00
Caleb Zulawski
01d78aa21a Update docs 2021-04-17 01:32:45 +00:00
Jubilee Young
87b7207acd Use neg intrinsics 2021-04-16 15:02:59 -07:00
Jubilee Young
e3f0124baf Silence warnings 2021-04-15 15:19:44 -07:00
Caleb Zulawski
e127586709 Improve function names and docs 2021-04-11 10:59:05 -04:00
Caleb Zulawski
e2fa502617 Enable i586 workaround for both f32 and f64 2021-04-09 16:31:03 -04:00
Caleb Zulawski
3cf970fc09 Fix test sum/product implementation 2021-04-09 16:31:03 -04:00
Caleb Zulawski
3fae09bd08 Revert "Revert i586 fix, fix test instead"
This reverts commit 1ea2f128821339d8050ca936f24b71677352437e.
2021-04-09 16:31:03 -04:00
Caleb Zulawski
b51febbd34 Revert i586 fix, fix test instead 2021-04-09 16:31:03 -04:00
Caleb Zulawski
4b8cbd5385 Fix i586 detection 2021-04-09 16:31:03 -04:00
Caleb Zulawski
64f564866b Update documentation and fix i586 inaccuracy 2021-04-09 16:31:03 -04:00
Caleb Zulawski
02608d44f7 Fix mask ops 2021-04-09 16:31:03 -04:00
Caleb Zulawski
193cd14b4a Enable special handling of zero 2021-04-09 16:31:03 -04:00
Caleb Zulawski
a7b82adb12 Add tests 2021-04-09 16:31:03 -04:00
Caleb Zulawski
875b31c33f Implement reductions 2021-04-09 16:31:03 -04:00
Caleb Zulawski
926cf3aba3 Add intrinsics 2021-04-09 16:31:03 -04:00
Caleb Zulawski
d7649f46f3 Various bug fixes 2021-04-09 16:31:03 -04:00
Caleb Zulawski
b0a005dcfb Add floating-point classification functions 2021-04-09 16:31:03 -04:00
Caleb Zulawski
e6a530907a Reduce maximum lanes from 64 to 32 2021-04-03 14:43:33 -04:00
Caleb Zulawski
97bbe2d86a Fix normal and subnormal classification 2021-04-03 13:54:29 -04:00
Caleb Zulawski
07247a001f Various bug fixes 2021-04-03 13:54:29 -04:00
Caleb Zulawski
93ce1c1a59 Add floating-point classification functions 2021-04-03 13:54:29 -04:00
Jubilee Young
331230fabf Explain why to use saturation 2021-04-02 09:11:27 -07:00
Jubilee Young
dd1a5e41ad Add saturating abs/neg 2021-04-02 08:55:45 -07:00