Skip to content

Commit 8448a0f

Browse files
gnzlbgalexcrichton
authored andcommitted
remaining masks and select (rust-lang#417)
1 parent 65740ab commit 8448a0f

21 files changed

+857
-241
lines changed

coresimd/aarch64/neon.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,24 +18,29 @@ impl_from_bits_!(
1818
float64x1_t: u32x2,
1919
i32x2,
2020
f32x2,
21+
m32x2,
2122
u16x4,
2223
i16x4,
24+
m16x4,
2325
u8x8,
2426
i8x8,
25-
b8x8
27+
m8x8
2628
);
2729
impl_from_bits_!(
2830
float64x2_t: u64x2,
2931
i64x2,
3032
f64x2,
33+
m64x2,
3134
u32x4,
3235
i32x4,
3336
f32x4,
37+
m32x4,
3438
u16x8,
3539
i16x8,
40+
m16x8,
3641
u8x16,
3742
i8x16,
38-
b8x16
43+
m8x16
3944
);
4045

4146
/// Vector add.

coresimd/arm/neon.rs

Lines changed: 74 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -70,245 +70,298 @@ impl_from_bits_!(
7070
int8x8_t: u32x2,
7171
i32x2,
7272
f32x2,
73+
m32x2,
7374
u16x4,
7475
i16x4,
76+
m16x4,
7577
u8x8,
7678
i8x8,
77-
b8x8
79+
m8x8
7880
);
7981
impl_from_bits_!(
8082
uint8x8_t: u32x2,
8183
i32x2,
8284
f32x2,
85+
m32x2,
8386
u16x4,
8487
i16x4,
88+
m16x4,
8589
u8x8,
8690
i8x8,
87-
b8x8
91+
m8x8
8892
);
8993
impl_from_bits_!(
9094
int16x4_t: u32x2,
9195
i32x2,
9296
f32x2,
97+
m32x2,
9398
u16x4,
9499
i16x4,
100+
m16x4,
95101
u8x8,
96102
i8x8,
97-
b8x8
103+
m8x8
98104
);
99105
impl_from_bits_!(
100106
uint16x4_t: u32x2,
101107
i32x2,
102108
f32x2,
109+
m32x2,
103110
u16x4,
104111
i16x4,
112+
m16x4,
105113
u8x8,
106114
i8x8,
107-
b8x8
115+
m8x8
108116
);
109117
impl_from_bits_!(
110118
int32x2_t: u32x2,
111119
i32x2,
112120
f32x2,
121+
m32x2,
113122
u16x4,
114123
i16x4,
124+
m16x4,
115125
u8x8,
116126
i8x8,
117-
b8x8
127+
m8x8
118128
);
119129
impl_from_bits_!(
120130
uint32x2_t: u32x2,
121131
i32x2,
122132
f32x2,
133+
m32x2,
123134
u16x4,
124135
i16x4,
136+
m16x4,
125137
u8x8,
126138
i8x8,
127-
b8x8
139+
m8x8
128140
);
129141
impl_from_bits_!(
130142
int64x1_t: u32x2,
131143
i32x2,
132144
f32x2,
145+
m32x2,
133146
u16x4,
134147
i16x4,
148+
m16x4,
135149
u8x8,
136150
i8x8,
137-
b8x8
151+
m8x8
138152
);
139153
impl_from_bits_!(
140154
float32x2_t: u32x2,
141155
i32x2,
142156
f32x2,
157+
m32x2,
143158
u16x4,
144159
i16x4,
160+
m16x4,
145161
u8x8,
146162
i8x8,
147-
b8x8
163+
m8x8
148164
);
149165
impl_from_bits_!(
150166
poly8x8_t: u32x2,
151167
i32x2,
152168
f32x2,
169+
m32x2,
153170
u16x4,
154171
i16x4,
172+
m16x4,
155173
u8x8,
156174
i8x8,
157-
b8x8
175+
m8x8
158176
);
159177
impl_from_bits_!(
160178
poly16x4_t: u32x2,
161179
i32x2,
162180
f32x2,
181+
m32x2,
163182
u16x4,
164183
i16x4,
184+
m16x4,
165185
u8x8,
166186
i8x8,
167-
b8x8
187+
m8x8
168188
);
169189

170190
impl_from_bits_!(
171191
int8x16_t: u64x2,
172192
i64x2,
173193
f64x2,
194+
m64x2,
174195
u32x4,
175196
i32x4,
176197
f32x4,
198+
m32x4,
177199
u16x8,
178200
i16x8,
201+
m16x8,
179202
u8x16,
180203
i8x16,
181-
b8x16
204+
m8x16
182205
);
183206
impl_from_bits_!(
184207
uint8x16_t: u64x2,
185208
i64x2,
186209
f64x2,
210+
m64x2,
187211
u32x4,
188212
i32x4,
189213
f32x4,
214+
m32x4,
190215
u16x8,
191216
i16x8,
217+
m16x8,
192218
u8x16,
193219
i8x16,
194-
b8x16
220+
m8x16
195221
);
196222
impl_from_bits_!(
197223
poly8x16_t: u64x2,
198224
i64x2,
199225
f64x2,
226+
m64x2,
200227
u32x4,
201228
i32x4,
202229
f32x4,
230+
m32x4,
203231
u16x8,
204232
i16x8,
233+
m16x8,
205234
u8x16,
206235
i8x16,
207-
b8x16
236+
m8x16
208237
);
209238
impl_from_bits_!(
210239
int16x8_t: u64x2,
211240
i64x2,
212241
f64x2,
242+
m64x2,
213243
u32x4,
214244
i32x4,
215245
f32x4,
246+
m32x4,
216247
u16x8,
217248
i16x8,
249+
m16x8,
218250
u8x16,
219251
i8x16,
220-
b8x16
252+
m8x16
221253
);
222254
impl_from_bits_!(
223255
uint16x8_t: u64x2,
224256
i64x2,
225257
f64x2,
258+
m64x2,
226259
u32x4,
227260
i32x4,
228261
f32x4,
262+
m32x4,
229263
u16x8,
230264
i16x8,
265+
m16x8,
231266
u8x16,
232267
i8x16,
233-
b8x16
268+
m8x16
234269
);
235270
impl_from_bits_!(
236271
poly16x8_t: u64x2,
237272
i64x2,
238273
f64x2,
274+
m64x2,
239275
u32x4,
240276
i32x4,
241277
f32x4,
278+
m32x4,
242279
u16x8,
243280
i16x8,
281+
m16x8,
244282
u8x16,
245283
i8x16,
246-
b8x16
284+
m8x16
247285
);
248286
impl_from_bits_!(
249287
int32x4_t: u64x2,
250288
i64x2,
251289
f64x2,
290+
m64x2,
252291
u32x4,
253292
i32x4,
254293
f32x4,
294+
m32x4,
255295
u16x8,
256296
i16x8,
297+
m16x8,
257298
u8x16,
258299
i8x16,
259-
b8x16
300+
m8x16
260301
);
261302
impl_from_bits_!(
262303
uint32x4_t: u64x2,
263304
i64x2,
264305
f64x2,
306+
m64x2,
265307
u32x4,
266308
i32x4,
267309
f32x4,
310+
m32x4,
268311
u16x8,
269312
i16x8,
313+
m16x8,
270314
u8x16,
271315
i8x16,
272-
b8x16
316+
m8x16
273317
);
274318
impl_from_bits_!(
275319
float32x4_t: u64x2,
276320
i64x2,
277321
f64x2,
322+
m64x2,
278323
u32x4,
279324
i32x4,
280325
f32x4,
326+
m32x4,
281327
u16x8,
282328
i16x8,
329+
m16x8,
283330
u8x16,
284331
i8x16,
285-
b8x16
332+
m8x16
286333
);
287334
impl_from_bits_!(
288335
int64x2_t: u64x2,
289336
i64x2,
290337
f64x2,
338+
m64x2,
291339
u32x4,
292340
i32x4,
293341
f32x4,
342+
m32x4,
294343
u16x8,
295344
i16x8,
345+
m16x8,
296346
u8x16,
297347
i8x16,
298-
b8x16
348+
m8x16
299349
);
300350
impl_from_bits_!(
301351
uint64x2_t: u64x2,
302352
i64x2,
303353
f64x2,
354+
m64x2,
304355
u32x4,
305356
i32x4,
306357
f32x4,
358+
m32x4,
307359
u16x8,
308360
i16x8,
361+
m16x8,
309362
u8x16,
310363
i8x16,
311-
b8x16
364+
m8x16
312365
);
313366

314367
#[allow(improper_ctypes)]

coresimd/ppsv/api/bitwise_ops.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,10 @@ macro_rules! test_int_bitwise_ops {
123123
}
124124

125125
#[cfg(test)]
126-
macro_rules! test_bool_bitwise_ops {
126+
macro_rules! test_mask_bitwise_ops {
127127
($id:ident) => {
128128
#[test]
129-
fn bool_arithmetic() {
129+
fn mask_bitwise_ops() {
130130
use coresimd::simd::*;
131131

132132
let t = $id::splat(true);

coresimd/ppsv/api/bitwise_reductions.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! Implements portable bitwise vector reductions.
1+
//! Implements portable horizontal bitwise vector reductions.
22
#![allow(unused)]
33

44
macro_rules! impl_bitwise_reductions {
@@ -67,7 +67,7 @@ macro_rules! impl_bitwise_reductions {
6767
};
6868
}
6969

70-
macro_rules! impl_bool_bitwise_reductions {
70+
macro_rules! impl_mask_bitwise_reductions {
7171
($id:ident, $elem_ty:ident, $internal_ty:ident) => {
7272
impl $id {
7373
/// Lane-wise bitwise `and` of the vector elements.

coresimd/ppsv/api/bitwise_scalar_ops.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
//! Lane-wise bitwise operations for integer and boolean vectors.
1+
//! Lane-wise bitwise operations for integer vectors and vector masks.
22
#![allow(unused)]
33

44
macro_rules! impl_bitwise_scalar_ops {
@@ -156,7 +156,7 @@ macro_rules! test_int_bitwise_scalar_ops {
156156
}
157157

158158
#[cfg(test)]
159-
macro_rules! test_bool_bitwise_scalar_ops {
159+
macro_rules! test_mask_bitwise_scalar_ops {
160160
($id:ident) => {
161161
#[test]
162162
fn bool_scalar_arithmetic() {

0 commit comments

Comments
 (0)