Skip to content

Commit 3fd17e4

Browse files
bjorn3Amanieu
authored andcommitted
Remove simd_shuffle<n> usage in favor of simd_shuffle
This slightly reduces the amount of intrinsics codegen backends need to implement.
1 parent 9f09287 commit 3fd17e4

File tree

3 files changed

+14
-24
lines changed

3 files changed

+14
-24
lines changed

crates/core_arch/src/macros.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -101,11 +101,11 @@ macro_rules! simd_shuffle2 {
101101
const IDX: [u32; 2] = $idx;
102102
}
103103

104-
simd_shuffle2($x, $y, ConstParam::<$($imm),+>::IDX)
104+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
105105
}};
106106
($x:expr, $y:expr, $idx:expr $(,)?) => {{
107107
const IDX: [u32; 2] = $idx;
108-
simd_shuffle2($x, $y, IDX)
108+
simd_shuffle($x, $y, IDX)
109109
}};
110110
}
111111

@@ -117,11 +117,11 @@ macro_rules! simd_shuffle4 {
117117
const IDX: [u32; 4] = $idx;
118118
}
119119

120-
simd_shuffle4($x, $y, ConstParam::<$($imm),+>::IDX)
120+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
121121
}};
122122
($x:expr, $y:expr, $idx:expr $(,)?) => {{
123123
const IDX: [u32; 4] = $idx;
124-
simd_shuffle4($x, $y, IDX)
124+
simd_shuffle($x, $y, IDX)
125125
}};
126126
}
127127

@@ -133,11 +133,11 @@ macro_rules! simd_shuffle8 {
133133
const IDX: [u32; 8] = $idx;
134134
}
135135

136-
simd_shuffle8($x, $y, ConstParam::<$($imm),+>::IDX)
136+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
137137
}};
138138
($x:expr, $y:expr, $idx:expr $(,)?) => {{
139139
const IDX: [u32; 8] = $idx;
140-
simd_shuffle8($x, $y, IDX)
140+
simd_shuffle($x, $y, IDX)
141141
}};
142142
}
143143

@@ -149,11 +149,11 @@ macro_rules! simd_shuffle16 {
149149
const IDX: [u32; 16] = $idx;
150150
}
151151

152-
simd_shuffle16($x, $y, ConstParam::<$($imm),+>::IDX)
152+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
153153
}};
154154
($x:expr, $y:expr, $idx:expr $(,)?) => {{
155155
const IDX: [u32; 16] = $idx;
156-
simd_shuffle16($x, $y, IDX)
156+
simd_shuffle($x, $y, IDX)
157157
}};
158158
}
159159

@@ -165,11 +165,11 @@ macro_rules! simd_shuffle32 {
165165
const IDX: [u32; 32] = $idx;
166166
}
167167

168-
simd_shuffle32($x, $y, ConstParam::<$($imm),+>::IDX)
168+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
169169
}};
170170
($x:expr, $y:expr, $idx:expr $(,)?) => {{
171171
const IDX: [u32; 32] = $idx;
172-
simd_shuffle32($x, $y, IDX)
172+
simd_shuffle($x, $y, IDX)
173173
}};
174174
}
175175

@@ -181,10 +181,10 @@ macro_rules! simd_shuffle64 {
181181
const IDX: [u32; 64] = $idx;
182182
}
183183

184-
simd_shuffle64($x, $y, ConstParam::<$($imm),+>::IDX)
184+
simd_shuffle($x, $y, ConstParam::<$($imm),+>::IDX)
185185
}};
186186
($x:expr, $y:expr, $idx:expr $(,)?) => {{
187187
const IDX: [u32; 64] = $idx;
188-
simd_shuffle64($x, $y, IDX)
188+
simd_shuffle($x, $y, IDX)
189189
}};
190190
}

crates/core_arch/src/simd_llvm.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,7 @@ extern "platform-intrinsic" {
99
pub fn simd_gt<T, U>(x: T, y: T) -> U;
1010
pub fn simd_ge<T, U>(x: T, y: T) -> U;
1111

12-
pub fn simd_shuffle2<T, U>(x: T, y: T, idx: [u32; 2]) -> U;
13-
pub fn simd_shuffle4<T, U>(x: T, y: T, idx: [u32; 4]) -> U;
14-
pub fn simd_shuffle8<T, U>(x: T, y: T, idx: [u32; 8]) -> U;
15-
pub fn simd_shuffle16<T, U>(x: T, y: T, idx: [u32; 16]) -> U;
16-
pub fn simd_shuffle32<T, U>(x: T, y: T, idx: [u32; 32]) -> U;
17-
pub fn simd_shuffle64<T, U>(x: T, y: T, idx: [u32; 64]) -> U;
18-
pub fn simd_shuffle128<T, U>(x: T, y: T, idx: [u32; 128]) -> U;
12+
pub fn simd_shuffle<T, U, V>(x: T, y: T, idx: U) -> V;
1913

2014
#[rustc_const_unstable(feature = "const_simd_insert", issue = "none")]
2115
pub fn simd_insert<T, U>(x: T, idx: u32, val: U) -> T;

crates/core_arch/src/x86/sse3.rs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
//! Streaming SIMD Extensions 3 (SSE3)
22
33
use crate::{
4-
core_arch::{
5-
simd::*,
6-
simd_llvm::{simd_shuffle2, simd_shuffle4},
7-
x86::*,
8-
},
4+
core_arch::{simd::*, simd_llvm::simd_shuffle, x86::*},
95
mem::transmute,
106
};
117

0 commit comments

Comments
 (0)