Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit da91361

Browse files
committedMay 6, 2017
Add reverse benchmarks for u128, [u8;3], and Simd<[f64;4]>
None of these are affected by e8fad32.
1 parent 1f891d1 commit da91361

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed
 

‎src/libcollections/benches/lib.rs

+2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010

1111
#![deny(warnings)]
1212

13+
#![feature(i128_type)]
1314
#![feature(rand)]
15+
#![feature(repr_simd)]
1416
#![feature(sort_unstable)]
1517
#![feature(test)]
1618

‎src/libcollections/benches/slice.rs

+10-6
Original file line numberDiff line numberDiff line change
@@ -292,22 +292,26 @@ sort!(sort_unstable, sort_unstable_large_strings, gen_strings, 10000);
292292
sort_expensive!(sort_unstable_by, sort_unstable_large_random_expensive, gen_random, 10000);
293293

294294
macro_rules! reverse {
295-
($name:ident, $ty:ident) => {
295+
($name:ident, $ty:ty, $f:expr) => {
296296
#[bench]
297297
fn $name(b: &mut Bencher) {
298298
// odd length and offset by 1 to be as unaligned as possible
299299
let n = 0xFFFFF;
300300
let mut v: Vec<_> =
301301
(0..1+(n / mem::size_of::<$ty>() as u64))
302-
.map(|x| x as $ty)
302+
.map($f)
303303
.collect();
304304
b.iter(|| black_box(&mut v[1..]).reverse());
305305
b.bytes = n;
306306
}
307307
}
308308
}
309309

310-
reverse!(reverse_u8, u8);
311-
reverse!(reverse_u16, u16);
312-
reverse!(reverse_u32, u32);
313-
reverse!(reverse_u64, u64);
310+
reverse!(reverse_u8, u8, |x| x as u8);
311+
reverse!(reverse_u16, u16, |x| x as u16);
312+
reverse!(reverse_u8x3, [u8;3], |x| [x as u8, (x>>8) as u8, (x>>16) as u8]);
313+
reverse!(reverse_u32, u32, |x| x as u32);
314+
reverse!(reverse_u64, u64, |x| x as u64);
315+
reverse!(reverse_u128, u128, |x| x as u128);
316+
#[repr(simd)] struct F64x4(f64, f64, f64, f64);
317+
reverse!(reverse_simd_f64x4, F64x4, |x| { let x = x as f64; F64x4(x,x,x,x) });

0 commit comments

Comments
 (0)
Failed to load comments.