Jubilee Young
8f50a17c37
Fixups for sync
...
- Fix LANES over-replace
- Bring in traits
- Use less inference-heavy types
2023-05-10 06:49:00 -07:00
Caleb Zulawski
50416fcc2c
Merge pull request #345 from Sp00ph/from_to_slice
...
Use the new `load`/`store` functions in `{from,to}_slice`
2023-05-07 08:16:26 -04:00
Markus Everling
b246e45438
Fix inaccurate safety comments
2023-05-07 00:15:18 +00:00
Markus Everling
4967f25f6b
Use the new load
/store
functions in {from,to}_slice
2023-05-07 00:11:56 +00:00
Michael Goulet
a2cdcd53bf
Make sure that signatures aren't accidental refinements
2023-04-28 17:36:49 +00:00
Caleb Zulawski
c504f01abe
Use cast and improve comments
2023-04-25 21:37:04 -04:00
Caleb Zulawski
394a8845c6
Fix {to,from}_array UB when repr(simd) produces padding
2023-04-23 14:52:38 -04:00
Jubilee
ad8afa8c81
lane -> element for core::simd::Simd
( rust-lang/portable-simd#338 )
2023-04-22 19:07:46 -07:00
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
Jubilee Young
2b32732d0f
Do not construct Simd
2023-04-22 18:22:04 -07:00
Jubilee Young
4064678daf
Explain why to use Simd early
2023-04-22 17:58:54 -07:00
Jubilee
92259a4a6c
Clarify elementwise cmp reduces
...
Saying "elementwise (non-)equal" may suggest it returns a vector.
The comments should be clear that it instead reduces to a scalar.
Co-authored-by: Jacob Lifshay <programmerjake@gmail.com>
2023-04-22 17:58:54 -07:00
Jubilee Young
71d4c36850
lane -> element for core::simd::Simd
...
A while ago we began saying T, N instead of T, LANES in reference to Simd.
At some point that leaked in to us checking in code with const N: usize.
After a while, we had a discussion and agreed that "lanes", while common,
is unnecessary jargon for Rust learners who aren't familiar with SIMD, and
is fully interchangeable with terms for arrays like element and index.
But we never acted on that. Let's update the main type's docs, at least.
The example tweaks also enable removing a slated-for-removal nightly fn.
2023-04-22 17:58:51 -07:00
Markus Everling
f1b86baf84
Use pointer reads for better codegen in debug mode
2023-04-22 23:29:23 +00:00
Markus Everling
52833ccbe8
Add notes to avoid direct field accesses
2023-04-22 23:08:55 +00:00
Markus Everling
afad9c3f64
Don't use direct field access in Simd
functions
2023-04-22 21:40:36 +00:00
KaDiWa
280657066a
remove some unneeded imports
2023-04-12 19:27:18 +02:00
Jubilee
ceb2611592
Remove formats [T; N]
does not impl ( rust-lang/portable-simd#337 )
...
Remove these extra formatting traits, as they are
inconsistent with how arrays and slices format,
and it can cause unnecessary code bloat in binaries.
We can revisit this if people ever agree on doing these
formatters for the other slice-y types.
Prefer to dispatch to the `impl `fmt::Debug for [T]`,
to reduce the chances of monomorphizing twice.
Inlining it seems like a good idea for similar reasons?
2023-04-09 21:26:40 -07:00
Caleb Zulawski
90f2af774a
Fix lint
2023-03-26 16:11:05 -04:00
bjorn3
65b5210bdb
Skip building wasm-bindgen-test on non-wasm targets
...
This reduces compilation time
2023-03-26 12:56:35 +02:00
est31
ddcb68a94f
Match unmatched backticks in library/
2023-03-03 03:03:29 +01:00
Caleb Zulawski
36829ddca7
Check that vectors aren't padded
2023-02-19 15:35:36 -05:00
Caleb Zulawski
0fd7c8e138
Add copy_to_slice
2023-02-19 12:33:40 -05:00
Yang Hau
e3ef226f7b
Fix the typo
2023-01-23 11:00:35 +07:00
Nikolai Vazquez
3cb40e51dc
Remove unnecessary &format!
...
These were likely from before the `PartialEq<str>` impl for `&String`.
2023-01-21 22:06:42 -05:00
The Atelier
da3bd6d3a0
Update dot_product example import
2022-12-03 18:41:43 -08:00
Miguel Raz Guzmán Macedo
64247a327d
add _scalar names for dot_product examples
2022-12-03 16:12:24 -08:00
Miguel Raz Guzmán Macedo
aeac9ed373
proper mul_add arg order, added tests
2022-12-03 16:12:24 -08:00
Miguel Raz Guzmán Macedo
4ddfd2f3f8
non allocating fold simd
...
allocating fold with std::ops::Add::add
2022-12-03 16:12:19 -08:00
Miguel Raz Guzmán Macedo
4615805ec2
add remainder dot_product and cleanup
...
cleanup dot_product and README.md
2022-12-03 16:12:00 -08:00
Miguel Raz Guzmán Macedo
c08a4d1f10
add more basic dot products and comments, README
2022-12-03 16:12:00 -08:00
miguel raz
df3a63906c
add dot_product example
2022-12-03 16:12:00 -08:00
Caleb Zulawski
1547dd66f9
Merge pull request #318 from thomcc/simd_from_slice
...
Avoid a scalar loop in `Simd::from_slice`
2022-11-28 09:17:02 -05:00
Thom Chiovoloni
54b6f6923e
Avoid a scalar loop in Simd::from_slice
2022-11-28 06:03:32 -08:00
Caleb Zulawski
db8b23cea5
Remove reexport of simd::*
2022-11-27 23:44:20 -05:00
Caleb Zulawski
6e30c6eca3
Merge pull request #315 from rust-lang/scatter-gather-ptr
...
Scatter/gather for pointers
2022-11-19 21:37:58 -05:00
Caleb Zulawski
7e614f0438
Fix typo typo
2022-11-12 22:41:44 -05:00
Caleb Zulawski
c247915eb8
Update crates/core_simd/src/vector.rs
...
Co-authored-by: Jubilee <46493976+workingjubilee@users.noreply.github.com>
2022-11-12 22:39:54 -05:00
Caleb Zulawski
bef4c41fc0
Add test examples
2022-11-11 21:31:05 -05:00
Caleb Zulawski
fd53445d05
Add pointer scatter/gather
2022-11-11 19:48:27 -05:00
Caleb Zulawski
9dc690c482
Add TryFrom<&[T]> tests
2022-11-11 18:10:51 -05:00
Caleb Zulawski
7ac1fbbcb1
impl TryFrom<&[T]> for Simd
2022-11-11 17:32:48 -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
Mark Rousskov
6afcb85219
Fix rustdoc lints
2022-11-06 17:21:22 -05:00
Caleb Zulawski
469c620bde
Account for pointer metadata in pointer bounds
2022-10-29 11:55:01 -04:00
Caleb Zulawski
078cb58e76
Apply suggestions from code review
...
Co-authored-by: Jacob Lifshay <programmerjake@gmail.com>
2022-10-29 11:55:01 -04:00
Caleb Zulawski
a79718ffa8
Use new intrinsics
2022-10-29 11:55:01 -04:00
Caleb Zulawski
0fcc4069c1
Fix pointer mutability casts and safety lints
2022-10-29 11:55:01 -04:00
Caleb Zulawski
e5db1ecc82
Fix documentation
2022-10-29 11:55:01 -04:00
Caleb Zulawski
dadf98a290
Remove duplicate intrinsic
2022-10-29 11:55:01 -04:00
Caleb Zulawski
176cc81324
Update for new intrinsics
2022-10-29 11:55:01 -04:00
Caleb Zulawski
8a5a5732a1
Clarify addr and with_addr implementations
2022-10-29 11:55:01 -04:00
Caleb Zulawski
e7cc021189
Fix casts
2022-10-29 11:55:01 -04: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
6b3c599ba2
Add missing safety comment
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
7e96f5dbea
Use safe casts
2022-10-29 11:53:48 -04:00
Caleb Zulawski
d3cfd7c5c9
Add vectors of pointers
2022-10-29 11:53:48 -04:00
Caleb Zulawski
402b50a272
Improve variable names
2022-10-16 23:46:18 -04:00
Caleb Zulawski
61a6f1854f
Specify aliases in one place, and make it more uniform which are defined
2022-10-16 21:38:13 -04:00
Caleb Zulawski
4491309cb0
Mark more mask functions inline
2022-10-16 13:31:42 -04:00
Takayuki Maeda
1a6a069365
separate the receiver from arguments in HIR under /clippy
2022-09-05 22:25:57 +09:00
Dezhi Wu
e2aec079eb
Fix a bunch of typo
...
This PR will fix some typos detected by [typos].
I only picked the ones I was sure were spelling errors to fix, mostly in
the comments.
[typos]: https://github.com/crate-ci/typos
2022-08-31 18:24:55 +08:00
Jacob Lifshay
d5cd4a8112
Merge pull request #300 from programmerjake/all_lane_counts
...
add all_lane_counts feature to enable non-power-of-2 lane counts <= 64
2022-08-15 14:11:13 -07:00
Caleb Zulawski
7145dc5a41
Merge pull request #299 from rust-lang/interleave-one
...
Fix interleave/deinterleave for vectors with only one lane
2022-08-03 23:23:19 -04:00
Caleb Zulawski
5f7066430b
Simplify expression
2022-08-01 19:57:41 -04:00
Caleb Zulawski
d030301161
Remove special case for length-1 vectors
2022-08-01 19:52:35 -04:00
Caleb Zulawski
c739af3908
Hide rustc unstable feature from docs
2022-08-01 00:38:29 -04:00
Caleb Zulawski
6bf5128235
Simplify interleave/deinterleave and fix for odd-length vectors.
2022-08-01 00:34:58 -04:00
Jacob Lifshay
8742a86b1d
add all_lane_counts feature to enable non-power-of-2 lane counts <= 64
2022-07-29 16:12:24 -07:00
Caleb Zulawski
3183afb6b5
Fix interleave/deinterleave for vectors with only one lane
2022-07-29 11:57:05 -04:00
Ralf Jung
ddede9fb9b
make some Miri backtraces more pretty
2022-07-22 09:39:23 -04:00
Thom Chiovoloni
b5f9d43ff1
rust-lang/portable-simd#289 : Strengthen warnings about relying on Mask layout
...
This makes it more clear that you can't rely on the layout of these,
which seems worth doing given that the names vaguely suggest that you can
(and the docs only clarify that you can't on Mask but not the maskNxM aliases).
2022-07-21 14:53:07 -07:00
Jubilee Young
210275cc75
Sync core::simd up to rust-lang/portable-simd@2e081db92a
2022-07-20 17:57:56 -07:00
The Atelier
2e081db92a
Fix doctest imports using as_crate feature
...
Within core, `use self::` does not work to import these items.
And because core is not core_simd, neither does the existing `use`.
So, use this quirky hack instead, switching the import on a feature.
2022-07-20 17:55:47 -07:00
Mark Rousskov
bbf31f9c78
Finish bumping stage0
...
It looks like the last time had left some remaining cfg's -- which made me think
that the stage0 bump was actually successful. This brings us to a released 1.62
beta though.
2022-07-19 16:37:34 -07:00
Ralf Jung
64bef2910b
portable-simd: use simd_arith_offset to avoid ptr-int transmutation
2022-07-19 16:37:34 -07:00
Caleb Zulawski
ed8092e96b
Clarify comment
2022-06-21 20:52:43 -04:00
Caleb Zulawski
0f6399b166
Merge pull request #284 from programmerjake/fix_splat
...
Change `Simd::splat` to not generate a loop
2022-06-21 20:50:11 -04:00
Jacob Lifshay
f7412ad7b9
add workaround comment in Simd::splat
2022-06-06 12:43:29 -07:00
Jacob Lifshay
c9636158d9
Change Simd::splat
to not generate a loop
...
This fixes poor codegen in some circumstances for `u16x8::splat` on x86_64
https://rust-lang.zulipchat.com/#narrow/stream/257879-project-portable-simd/topic/Very.20bad.20.60u16x8.3A.3Asplat.60.20codegen.20on.20x86_64
2022-06-06 12:16:17 -07:00
Caleb Zulawski
5562b02ff0
Deduplicate to_int_unchecked
2022-06-02 10:19:20 -04:00
Caleb Zulawski
05c92c73c1
Document remaining internal unsafety, and deny undocumented unsafety
2022-05-31 14:44:23 -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
Mark Rousskov
352e7b30c2
Finish bumping stage0
...
It looks like the last time had left some remaining cfg's -- which made me think
that the stage0 bump was actually successful. This brings us to a released 1.62
beta though.
2022-05-27 07:36:17 -04:00
Caleb Zulawski
bca8dec404
Remove incorrect comment
2022-05-22 01:20:28 -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
c9f4e0ef98
Use Mask::cast in From impl
2022-05-21 16:49:03 -04:00
Caleb Zulawski
aa11959f19
Add mask cast tests
2022-05-21 16:34:27 -04:00
Jubilee Young
98cd636d58
Add Mask::cast
2022-05-21 15:13:33 -04:00
Caleb Zulawski
af53b5de24
rust-lang/portable-simd#279 : Silence clippy false alarms
2022-04-25 13:32:56 -07:00
Caleb Zulawski
62d3b2e39c
Add Copy bound to SIMD traits
2022-04-16 16:17:43 -04:00
Caleb Zulawski
528bc8593a
Improve copysign documentation
2022-04-15 13:47:43 -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
Ralf Jung
62e239cc51
portable-simd: use simd_arith_offset to avoid ptr-int transmutation
2022-04-12 11:09:26 -04:00
Sean Stangl
fcc5ca0f93
rust-lang/portable-simd#273 : Documentation update for reduce functions, swizzle
...
Working through giving example documentation to every Simd function.
The major change in this patch is using doc macros to generate
type-specific examples for each function, using a visually-apparent type
constructor. This makes it feel nicer to have twelve separate
documentation entries for reduce_product(), for example.
2022-04-10 23:08:34 -07:00