Skip to content

Commit 8b5a04f

Browse files
Stop using old-style simd_shuffle (rust-lang/packed-simd#350)
Stop using old-style `simd_shuffle`. This prevents some possible future ICEs from internal compiler changes.
2 parents 2ffcc96 + c6a25c5 commit 8b5a04f

File tree

3 files changed

+9
-16
lines changed

3 files changed

+9
-16
lines changed

.github/workflows/run-ci-script.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ jobs:
4848
~/.rustup/toolchains
4949
key: ${{ runner.os }}-cargo-${{ hashFiles('**/rust-toolchain') }}
5050
- name: Install Toolchain
51-
uses: dtolnay/rust-toolchain@master
51+
uses: dtolnay/rust-toolchain@nightly
5252
with:
5353
# FIXME: change to nightly once https://github.com/rust-lang/packed_simd/pull/350 is merged
5454
# needs to be kept in sync with the toolchain files
55-
toolchain: nightly-2023-06-14
5655
targets: ${{ inputs.target }}
5756
components: rustfmt
5857
- name: Generate Lockfile

rust-toolchain

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nightly-2023-06-14
1+
nightly

src/codegen/llvm.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,8 @@ use crate::sealed::Shuffle;
55
#[allow(unused_imports)] // FIXME: spurious warning?
66
use crate::sealed::Simd;
77

8-
// Shuffle intrinsics: expanded in users' crates, therefore public.
98
extern "platform-intrinsic" {
10-
pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
11-
pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U;
12-
pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U;
13-
pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U;
14-
pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U;
15-
pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U;
9+
fn simd_shuffle<T, I, U>(x: T, y: T, idx: I) -> U;
1610
}
1711

1812
#[allow(clippy::missing_safety_doc)]
@@ -22,7 +16,7 @@ where
2216
T: Simd,
2317
<T as Simd>::Element: Shuffle<[u32; 2], Output = U>,
2418
{
25-
simd_shuffle2(x, y, IDX)
19+
simd_shuffle(x, y, IDX)
2620
}
2721

2822
#[allow(clippy::missing_safety_doc)]
@@ -32,7 +26,7 @@ where
3226
T: Simd,
3327
<T as Simd>::Element: Shuffle<[u32; 4], Output = U>,
3428
{
35-
simd_shuffle4(x, y, IDX)
29+
simd_shuffle(x, y, IDX)
3630
}
3731

3832
#[allow(clippy::missing_safety_doc)]
@@ -42,7 +36,7 @@ where
4236
T: Simd,
4337
<T as Simd>::Element: Shuffle<[u32; 8], Output = U>,
4438
{
45-
simd_shuffle8(x, y, IDX)
39+
simd_shuffle(x, y, IDX)
4640
}
4741

4842
#[allow(clippy::missing_safety_doc)]
@@ -52,7 +46,7 @@ where
5246
T: Simd,
5347
<T as Simd>::Element: Shuffle<[u32; 16], Output = U>,
5448
{
55-
simd_shuffle16(x, y, IDX)
49+
simd_shuffle(x, y, IDX)
5650
}
5751

5852
#[allow(clippy::missing_safety_doc)]
@@ -62,7 +56,7 @@ where
6256
T: Simd,
6357
<T as Simd>::Element: Shuffle<[u32; 32], Output = U>,
6458
{
65-
simd_shuffle32(x, y, IDX)
59+
simd_shuffle(x, y, IDX)
6660
}
6761

6862
#[allow(clippy::missing_safety_doc)]
@@ -72,7 +66,7 @@ where
7266
T: Simd,
7367
<T as Simd>::Element: Shuffle<[u32; 64], Output = U>,
7468
{
75-
simd_shuffle64(x, y, IDX)
69+
simd_shuffle(x, y, IDX)
7670
}
7771

7872
extern "platform-intrinsic" {

0 commit comments

Comments
 (0)