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
Jubilee Young
4a6b4c0a2e
Introduce saturating math
2021-03-30 17:42:05 -07:00
Caleb Zulawski
fa77b196c8
Add std cargo feature
2021-03-22 14:00:02 -07:00
Caleb Zulawski
8cb1fe0c0e
Fix wasm-bindgen dependency
2021-03-06 22:00:39 -05:00
Jubilee Young
a2302da5b2
Move macros.rs to first.rs
...
This awkwardly has to go first right now, and we don't want more
macros to go into this ambiguously named mod, so let's rename it
to be more literal.
2021-02-21 17:32:23 -08:00
Jubilee Young
39fb223385
Partially carve macros.rs into other files
...
The base impl_vector! in macros.rs is staying put for the moment as
it must go first before everything in order to work.
Everything else, like transmutes, specific type impls, etc. have
been moved into appropriate files elsewhere to subdivide concerns.
2021-02-21 17:32:23 -08:00
Jubilee Young
ca15e4fcd8
cat vector types by kind
...
Rearrange aliases to bottom of files
2021-02-21 17:32:15 -08:00
Jubilee Young
27f094f5ee
Nominate base files
2021-02-21 16:25:58 -08:00
Jubilee Young
1a19ad4fb0
Reorg vectors into crate::vector::*;
2021-02-21 16:25:58 -08:00
Jubilee Young
2f2a463c0d
Remove From<Scalar> for SimdTy impl
...
0. It was not being tested.
1. The possible conversions are ambiguous between splatting
and setting a single value but zero-initializing the rest.
2. Splat works fine.
2021-02-16 10:04:50 -08:00
Caleb Zulawski
2b3f4b258c
Add LanesAtMost64 bounds
2021-02-15 18:38:35 -05:00
Caleb Zulawski
8c378d3027
Add documentation
2021-02-15 18:22:56 -05:00
Caleb Zulawski
714ad639b3
Fix MulAssign typo in tests, move panic tests
2021-02-15 18:22:56 -05:00
Caleb Zulawski
0ec3ecfab1
Split ops tests
2021-02-15 18:22:56 -05:00
Caleb Zulawski
976fafcf4f
Fix wasm tests
2021-02-15 18:22:56 -05:00
Caleb Zulawski
8d5702e437
Fix performance issues
2021-02-15 18:22:56 -05:00
Caleb Zulawski
38b18904d0
Remove obsolete helpers
2021-02-15 18:22:56 -05:00
Caleb Zulawski
b38d342d77
Simplify test creation
2021-02-15 18:22:24 -05:00
Caleb Zulawski
223daea83e
Update supported lane counts
2021-02-15 18:22:24 -05:00
Caleb Zulawski
5b0818a221
Remove old integer tests
2021-02-15 18:22:24 -05:00
Caleb Zulawski
0ac057a354
Add integer tests
2021-02-15 18:22:24 -05:00
Caleb Zulawski
d5c227998b
Add proptest float tests
2021-02-15 18:22:24 -05:00
Caleb Zulawski
d3c58daa96
Merge pull request #73 from rust-lang/scalar-docs
...
Add to glossary: vectorize, scalar, vector register
2021-02-15 17:00:25 -05:00
Jubilee Young
08ee3385c0
Add to glossary: vectorize, scalar, vector register
...
Also document the lanewise scalar helpers.
2021-02-15 13:43:43 -08:00
Caleb Zulawski
faae170f5f
Remove glob import
2021-02-13 00:52:42 -05:00
Caleb Zulawski
16904ebfc7
Add missing type bounds
2021-02-13 00:49:51 -05:00
Caleb Zulawski
6362540f11
Limit all types to 64 lanes
2021-02-09 22:13:27 -05:00
Caleb Zulawski
26061b4e84
Fix wasm tests
2021-02-09 19:14:46 -05:00
Caleb Zulawski
9e96c8a2a8
Add missing From implementation, add simple mask API tests
2021-02-09 19:14:46 -05:00
Caleb Zulawski
92293aff9d
Add bitmask that supports up to 64 lanes. Simplify mask op API.
2021-02-09 19:14:46 -05:00
Ashley Mannix
1b0c231948
Merge pull request #62 from rust-lang/feature/shuffle-self
...
Add SIMD shuffles for SimdType{2,4,8,16,32,64}
2021-02-09 13:16:17 +10:00
Jubilee Young
5424140b66
Add SIMD shuffles for SimdType{2,4,8,16,32,64}
...
This const generic implementation for certain lane sizes represents
a more limited interface than what LLVM's shufflevector instruction
can handle, as normally the length of U can be different from the
length of T, but offers an interface that it is expected to be able
to expand the capabilities of in the future.
2021-02-05 23:28:12 -08:00
miguel raz
8bea63425e
AsRef -> as_slices()
2021-02-03 17:46:08 -06:00
Jubilee
98015403c5
Merge pull request #55 from miguelraz/min-panics
...
implement guards in rem and div unsound cases
2021-02-02 17:21:09 -08:00
miguel raz
c67fc2e4c5
Add guards/tests for div,rem overflow cases
2021-02-02 18:59:22 -06:00
Jubilee Young
cb036b534d
min_const_generics ride the train to stable
2021-01-26 21:46:10 -08:00
Caleb Zulawski
59947717c5
Add workaround for rust-lang/rust#80108
2020-12-17 01:19:39 -05:00
Caleb Zulawski
9b8cb18c9f
Remove obsolete files
2020-12-14 00:40:59 -05:00
Caleb Zulawski
62d98e3a11
Remove obsolete macros
2020-12-14 00:34:32 -05:00
Caleb Zulawski
2720ccc5a7
Fix masks
2020-12-14 00:27:20 -05:00
Caleb Zulawski
0ddf7acc89
Reenable rounding ops
2020-12-14 00:07:36 -05:00
Caleb Zulawski
9cc3deaa92
Finish refactoring vector types
2020-12-14 00:00:02 -05:00
Caleb Zulawski
25c7640fb3
Reenable ops and fix tests
2020-12-14 00:00:02 -05:00
Caleb Zulawski
22576bb6e0
Implement additional functions
2020-12-14 00:00:02 -05:00
Caleb Zulawski
27e944231c
Begin changing vectors to const generics
2020-12-14 00:00:02 -05:00
Caleb Zulawski
35b9ab9f5c
Simplify some formatting
2020-12-14 00:00:02 -05:00
Caleb Zulawski
78a8d615b5
Implement missing traits on opaque masks, fix tests
2020-12-14 00:00:02 -05:00
Caleb Zulawski
5bc5d7f0d1
Add comparison ops
2020-12-14 00:00:02 -05:00
Caleb Zulawski
cebc2ca707
Add opaque masks
2020-12-13 23:59:07 -05:00
Jubilee Young
3d9bbf9b86
Use simd_{floor,ceil} intrinsics for round.rs
2020-11-30 19:31:08 -08:00
Jubilee Young
e9cc3066a8
Remove round, trunc tests
...
There are no platform intrinsics in the rustc for these functions yet,
so this removes them as a distinct commit for later reversion.
2020-11-30 19:26:53 -08:00
Caleb Zulawski
3870633828
Add rounding mode test
2020-10-12 20:48:05 -04:00
Caleb Zulawski
dc85c13ff3
Account for sign bit
2020-10-11 21:41:26 -04:00
Caleb Zulawski
c27c76182b
Fix UB in test (really this time)
2020-10-11 21:28:50 -04:00
Caleb Zulawski
6e07982c4c
Fix UB in test
2020-10-11 19:08:25 -04:00
Caleb Zulawski
5805c7a051
Fix comment
2020-10-11 14:34:57 -04:00
Caleb Zulawski
3d8721b053
Fix casts, add tests
2020-10-11 14:32:46 -04:00
Caleb Zulawski
75fdacde1c
Add rounding to integers
2020-10-11 13:22:26 -04:00
Caleb Zulawski
ffedbe5b15
Add rounding functions
2020-10-10 00:22:36 -04:00
Thom Chiovoloni
ffd562f218
Add comment about fneg to the bitxor in float neg
2020-10-07 13:24:21 -07:00
Thom Chiovoloni
873639d6fd
Use bitxor to implement Neg for floats
2020-10-07 11:51:54 -07:00
Thom Chiovoloni
8d3d616b13
Apply review feedback
2020-10-06 13:40:39 -07:00
Thom Chiovoloni
541369c38e
use NEG_INFINITY and NAN constants instead computing them
2020-10-06 12:30:19 -07:00
Thom Chiovoloni
866971adf5
Implement abs, to_bits, and from_bits for float vectors
2020-10-06 11:33:29 -07:00
Ashley Mannix
0fbf64bae8
Add CI for wasm targets using wasm-bindgen ( #20 )
2020-10-03 16:36:51 +10:00
Caleb Zulawski
e7f133ead0
Add licenses and update Cargo.toml
2020-10-01 23:42:10 -04:00
Caleb Zulawski
43dabd1aea
Implement core::ops
( #10 )
...
* Add vector-vector arithmetic ops
* Add operators and integer conversions for masks
* Add unary traits
* Implement Index and IndexMut
* Implement by-ref ops for masks
* Document intrinsics
* Implement format traits for masks
* Add floating point ops tests
* Add integer tests
* Add mask tests
2020-10-01 19:50:15 -07:00
Caleb Zulawski
cfda50a82a
Remove vectors under 64-bit width
2020-09-26 19:31:14 -04:00
Caleb Zulawski
88bfbb001e
Mark trait methods inline
2020-09-26 14:41:01 -04:00
Caleb Zulawski
b9bf9ef3c2
Remove remaining derived traits
2020-09-26 14:30:00 -04:00
Caleb Zulawski
d817b56f1d
Manually implement some traits, instead of derive
2020-09-26 14:12:30 -04:00
Caleb Zulawski
167c3c8100
Change doc attributes to comments
2020-09-25 23:23:02 -04:00
Caleb Zulawski
992768709f
Remove pointer vectors
2020-09-25 21:45:09 -04:00
Caleb Zulawski
2178409df5
Remove some obsolete macros
2020-09-25 00:52:32 -04:00
Caleb Zulawski
b7d1f3e797
Improve Debug implementation, add additional formatting traits
2020-09-25 00:44:48 -04:00
Caleb Zulawski
613f242088
Add pointer vectors and implement a few more traits
2020-09-24 21:15:31 -04:00
Caleb Zulawski
3df72fddc2
Add masks
2020-09-24 19:48:18 -04:00
Caleb Zulawski
872e8f62d6
Simplify transmutes
2020-09-23 10:42:12 -04:00
Caleb Zulawski
543bcd37e9
Combine vector definition modules by scalar type
2020-09-23 10:21:19 -04:00
Caleb Zulawski
c74eec7e25
Apply suggestions from code review
...
Co-authored-by: Lokathor <zefria@gmail.com>
2020-09-23 08:11:43 -04:00
Caleb Zulawski
0f837a9147
Add docs
2020-09-22 20:26:25 -04:00
Caleb Zulawski
011aafea16
Add initial type implementations
2020-09-22 19:41:42 -04:00