Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
c7b72a0
Lay groundwork for SIMD.
huonw Jul 7, 2015
272ce9b
First round of changes: remove extraneous traits etc.
huonw Jul 8, 2015
5893b16
Second round of changes: minor tweaks.
huonw Jul 8, 2015
f9e48d1
Clarify/fix typos.
huonw Jul 9, 2015
e2fc223
Note that fixed-length arrays could be repr(simd)'d.
huonw Jul 9, 2015
efeafdb
Remove the simd_primitive_trait attribute.
huonw Jul 10, 2015
a7c409b
Mention alignment changes due to repr(simd).
huonw Jul 10, 2015
f4e2ecf
Note pre-RFC discussion.
huonw Jul 10, 2015
1132ede
Clarify how the intrinsics' structural typing works.
huonw Jul 13, 2015
8317ea4
Add arithmetic intrinsics alternative.
huonw Jul 13, 2015
c6ed18a
Write down an answer to "why not `asm!`?".
huonw Jul 13, 2015
67f78ec
point to cfg-if.
huonw Jul 14, 2015
f71c4b3
Use intrinsics for arithmetic instead of built-in operators.
huonw Aug 3, 2015
8b2ec8c
Accidentally:
huonw Aug 3, 2015
47f6ae9
Use the platform-intrinsic ABI instead of rust-intrinsic.
huonw Aug 6, 2015
4a4e6ae
feature(simd_basics) -> feature(repr_simd)
huonw Aug 6, 2015
c4bf5e1
Remove struct flattening.
huonw Aug 12, 2015
6532670
Change shuffles to use arrays of indices.
huonw Aug 12, 2015
8e3a0de
shuffles don't rely on generic types for return values.
huonw Aug 12, 2015
54b0927
Intrinsics-for-operations is now the RFC, not an alternative.
huonw Aug 12, 2015
9e31ad3
Out of bounds indices are errors (backwards compat to relax).
huonw Aug 12, 2015
91a2b36
Only invalid to *call* intrinsics on bad platforms.
huonw Aug 12, 2015
60931df
There can be more shuffles.
huonw Aug 12, 2015
135ba7d
Internal references are legal.
huonw Aug 14, 2015
67fea6e
Type-level integer/values alternatives for shuffles.
huonw Aug 14, 2015
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Type-level integer/values alternatives for shuffles.
  • Loading branch information
huonw committed Aug 14, 2015
commit 67fea6e98fecb0a05adb419ddc0cf504e5e0ba04
11 changes: 11 additions & 0 deletions text/0000-simd-infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,17 @@ cfg_if_else! {
compiler can know this. The `repr(simd)` approach means there may be
more than one SIMD-vector type with the `Simd8<u32>` shape (or, in
fact, there may be zero).
- With type-level integers, there could be one shuffle intrinsic:

fn simd_shuffle<T, U, const N: usize>(x: T, y: T, idx: [u32; N]) -> U;

NB. It is possible to add this as an additional intrinsic (possibly
deprecating the `simd_shuffleNNN` forms) later.
- Type-level values can be applied more generally: since the shuffle
indices have to be compile time constants, the shuffle could be

fn simd_shuffle<T, U, const N: usize, const IDX: [u32; N]>(x: T, y: T) -> U;

- Instead of platform detection, there could be feature detection
(e.g. "platform supports something equivalent to x86's `DPPS`"), but
there probably aren't enough cross-platform commonalities for this
Expand Down