File tree Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Expand file tree Collapse file tree 2 files changed +21
-0
lines changed Original file line number Diff line number Diff line change 11use core:: iter:: * ;
2+ use core:: mem;
3+ use core:: num:: Wrapping ;
24use test:: { black_box, Bencher } ;
35
46#[ bench]
@@ -398,3 +400,21 @@ fn bench_trusted_random_access_adapters(b: &mut Bencher) {
398400 acc
399401 } )
400402}
403+
404+ /// Exercises the iter::Copied specialization for slice::Iter
405+ #[ bench]
406+ fn bench_copied_array_chunks ( b : & mut Bencher ) {
407+ let v = vec ! [ 1u8 ; 1024 ] ;
408+
409+ b. iter ( || {
410+ black_box ( & v)
411+ . iter ( )
412+ . copied ( )
413+ . array_chunks :: < { mem:: size_of :: < u64 > ( ) } > ( )
414+ . map ( |ary| {
415+ let d = u64:: from_ne_bytes ( ary) ;
416+ Wrapping ( d. rotate_left ( 7 ) . wrapping_add ( 1 ) )
417+ } )
418+ . sum :: < Wrapping < u64 > > ( )
419+ } )
420+ }
Original file line number Diff line number Diff line change 44#![ feature( int_log) ]
55#![ feature( test) ]
66#![ feature( trusted_random_access) ]
7+ #![ feature( iter_array_chunks) ]
78
89extern crate test;
910
You can’t perform that action at this time.
0 commit comments