Commit Graph

325 Commits

Author SHA1 Message Date
Caleb Zulawski
9e818d62b3 Ignore doctest 2023-05-12 09:16:43 -04:00
Caleb Zulawski
b3b5cfca66 Add a prelude 2023-05-12 09:16:43 -04:00
Jubilee Young
852762563a Temp fix for swizzle_dyn
- disable the AVX512 variant for now (flaky)
- tell Clippy to knock it off
2023-05-10 06:49:00 -07:00
Jubilee Young
d361e4335f Drop const_ptr_read feature gate 2023-05-10 06:49:00 -07:00
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
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
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
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
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
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
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
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