diff --git a/cilly/src/asm.rs b/cilly/src/asm.rs index b28c70eb..71685e22 100644 --- a/cilly/src/asm.rs +++ b/cilly/src/asm.rs @@ -273,27 +273,6 @@ lazy_static! { }; } -impl MemoryUsage for Assembly { - fn memory_usage(&self, counter: &mut impl crate::utilis::MemoryUsageCounter) -> usize { - let self_size = std::mem::size_of::(); - let tpe_name = std::any::type_name::(); - - let functions = self.functions.memory_usage(counter); - counter.add_field(tpe_name, "types", functions); - let extern_fns = self.extern_fns.memory_usage(counter); - counter.add_field(tpe_name, "extern_fns", extern_fns); - let extern_refs = self.extern_refs.memory_usage(counter); - counter.add_field(tpe_name, "extern_refs", extern_refs); - let entrypoint = self.entrypoint.memory_usage(counter); - counter.add_field(tpe_name, "entrypoint", entrypoint); - let initializers = self.initializers.memory_usage(counter); - counter.add_field(tpe_name, "initializers", initializers); - let total_size = - self_size + functions + extern_fns + extern_refs + entrypoint + initializers; - counter.add_type(tpe_name, total_size); - total_size - } -} lazy_static! { #[doc = "Tells the codegen to use the new version of cilly."] pub static ref CILLY_V2:bool = { diff --git a/cilly/src/basic_block.rs b/cilly/src/basic_block.rs index 7667dd11..86a15fa1 100644 --- a/cilly/src/basic_block.rs +++ b/cilly/src/basic_block.rs @@ -13,43 +13,13 @@ pub struct BasicBlock { id: u32, handler: Option, } -impl MemoryUsage for BasicBlock { - fn memory_usage(&self, counter: &mut impl crate::utilis::MemoryUsageCounter) -> usize { - let mut total_size = std::mem::size_of::(); - let tpe_name = std::any::type_name::(); - //TODO:count the fields too - let trees_size = self - .trees() - .iter() - .map(|block| block.root().memory_usage(counter)) - .sum(); - counter.add_field(tpe_name, "trees", trees_size); - total_size += trees_size; - let handler_size = self.handler().memory_usage(counter); - counter.add_field(tpe_name, "handler", handler_size); - counter.add_type(tpe_name, total_size); - total_size - } -} + #[derive(Clone, PartialEq, Serialize, Deserialize, Debug)] pub enum Handler { RawID(u32), Blocks(Vec), } -impl MemoryUsage for Handler { - fn memory_usage(&self, counter: &mut impl crate::utilis::MemoryUsageCounter) -> usize { - let mut total_size = std::mem::size_of::(); - let tpe_name = std::any::type_name::(); - let size = match self { - Handler::RawID(_) => std::mem::size_of::(), - Handler::Blocks(blocks) => blocks.memory_usage(counter), - }; - counter.add_field(tpe_name, "size", size); - total_size += size; - counter.add_type(tpe_name, total_size); - total_size - } -} + impl Handler { pub fn as_blocks_mut(&mut self) -> Option<&mut Vec> { if let Self::Blocks(v) = self { @@ -240,6 +210,7 @@ impl BasicBlock { self.tree_iter() .flat_map(|tree| tree.root_mut().deref_mut().into_iter()) }*/ + /// Checks if this block does nothing except cononditionaly jump to another block. #[must_use] pub fn handler(&self) -> Option<&Handler> { diff --git a/cilly/src/method.rs b/cilly/src/method.rs index 8a7feae5..cee55057 100644 --- a/cilly/src/method.rs +++ b/cilly/src/method.rs @@ -15,7 +15,6 @@ use crate::{ cil_root::CILRoot, cil_tree::CILTree, static_field_desc::StaticFieldDescriptor, - utilis::MemoryUsage, DotnetTypeRef, FnSig, IString, Type, }; @@ -31,29 +30,7 @@ pub struct Method { attributes: Vec, arg_names: Vec>, } -impl MemoryUsage for Method { - fn memory_usage(&self, counter: &mut impl crate::utilis::MemoryUsageCounter) -> usize { - let mut total_size = std::mem::size_of::(); - let tpe_name = std::any::type_name::(); - //TODO:count the fields too - let blocks_size = self - .blocks() - .iter() - .map(|block| block.memory_usage(counter)) - .sum(); - counter.add_field(tpe_name, "blocks", blocks_size); - total_size += blocks_size; - let locals_size = self - .locals() - .iter() - .map(|locals| locals.memory_usage(counter)) - .sum(); - counter.add_field(tpe_name, "locals", locals_size); - total_size += locals_size; - counter.add_type(tpe_name, total_size); - total_size - } -} + /// Local varaible. Consists of an optional name and type. pub type LocalDef = (Option, Type); impl Eq for Method {} @@ -158,22 +135,7 @@ impl Method { } } } - pub fn opt(&mut self) { - for tree in self - .blocks - .iter_mut() - .flat_map(|block| block.all_trees_mut()) - { - let mut opt_counter: usize = 1; - while opt_counter > 0 { - // Reset `opt_counter` - opt_counter = 0; - tree.opt(&mut opt_counter); - } - } - self.const_opt_pass(); - self.opt_merge_bbs(); - } + /// Iterates over each `CILNode` and `CILRoot`. pub fn iter_cil(&self) -> impl Iterator { self.blocks().iter().flat_map(|block| block.iter_cil()) @@ -497,21 +459,21 @@ impl Method { } } - fn count_jumps_to(&self, block_id: u32) -> usize { - self.blocks() - .iter() - .flat_map(|block| block.targets()) - .filter(|(target, sub_target)| { - if *sub_target != 0 { - *sub_target == block_id - } else { - *target == block_id - } - }) - .count() - } - pub fn block_with_id(&self, id: u32) -> Option { - self.blocks.iter().position(|block| block.id() == id) + pub fn opt(&mut self) { + for tree in self + .blocks + .iter_mut() + .flat_map(|block| block.all_trees_mut()) + { + let mut opt_counter: usize = 1; + while opt_counter > 0 { + // Reset `opt_counter` + opt_counter = 0; + tree.opt(&mut opt_counter); + } + } + //self.const_opt_pass(); + self.opt_merge_bbs(); } pub fn opt_merge_bbs(&mut self) { for block in 0..self.blocks().len() { @@ -545,6 +507,23 @@ impl Method { // let prev_c = self.blocks.len(); self.blocks.retain(|block| !block.trees().is_empty()); } + fn count_jumps_to(&self, block_id: u32) -> usize { + self.blocks() + .iter() + .flat_map(|block| block.targets()) + .filter(|(target, sub_target)| { + if *sub_target != 0 { + *sub_target == block_id + } else { + *target == block_id + } + }) + .count() + } + pub fn block_with_id(&self, id: u32) -> Option { + self.blocks.iter().position(|block| block.id() == id) + } + pub fn attributes(&self) -> &[Attribute] { &self.attributes } diff --git a/cilly/src/type_def.rs b/cilly/src/type_def.rs index c423103a..5821471f 100644 --- a/cilly/src/type_def.rs +++ b/cilly/src/type_def.rs @@ -2,10 +2,7 @@ use std::num::NonZeroU32; use serde::{Deserialize, Serialize}; -use crate::{ - access_modifier::AccessModifer, method::Method, utilis::MemoryUsage, DotnetTypeRef, IString, - Type, -}; +use crate::{access_modifier::AccessModifer, method::Method, DotnetTypeRef, IString, Type}; #[derive(Serialize, Deserialize, PartialEq, Eq, Hash, Clone, Debug)] pub struct TypeDef { @@ -174,16 +171,3 @@ impl From<&TypeDef> for DotnetTypeRef { DotnetTypeRef::new::<&str, _>(None, val.name()) } } -impl MemoryUsage for TypeDef { - fn memory_usage(&self, counter: &mut impl crate::utilis::MemoryUsageCounter) -> usize { - let self_size = std::mem::size_of::(); - let tpe_name = std::any::type_name::(); - //TODO:count the fields too - let name_size = self.name.memory_usage(counter); - let fields_size = self.fields.memory_usage(counter); - let function_size = self.functions.memory_usage(counter); - let total_size = self_size + name_size + fields_size + function_size; - counter.add_type(tpe_name, total_size); - total_size - } -} diff --git a/cilly/src/v2/basic_block.rs b/cilly/src/v2/basic_block.rs index b1150ba4..43c5d705 100644 --- a/cilly/src/v2/basic_block.rs +++ b/cilly/src/v2/basic_block.rs @@ -1,16 +1,16 @@ use serde::{Deserialize, Serialize}; -use super::{Assembly, CILNode, CILRoot, RootIdx}; +use super::{opt, Assembly, CILNode, CILRoot, RootIdx}; use crate::basic_block::BasicBlock as V1Block; #[derive(Hash, PartialEq, Eq, Clone, Debug, Serialize, Deserialize)] pub struct BasicBlock { roots: Vec, block_id: u32, - handler: Option>, + handler: Option>, } impl BasicBlock { - pub fn new(roots: Vec, block_id: u32, handler: Option>) -> Self { + pub fn new(roots: Vec, block_id: u32, handler: Option>) -> Self { Self { roots, block_id, @@ -36,7 +36,7 @@ impl BasicBlock { /// Iterates trough the roots of this block and its handlers pub fn iter_roots_mut(&mut self) -> impl Iterator + '_ { let handler_iter: Box> = - match self.handler.as_mut().map(|b| b.as_mut()) { + match self.handler.as_mut().map(|b| b) { Some(handler) => { Box::new(handler.iter_mut().flat_map(|block| block.iter_roots_mut())) } @@ -60,7 +60,7 @@ impl BasicBlock { pub fn handler(&self) -> Option<&[BasicBlock]> { self.handler.as_ref().map(|b| b.as_ref()) } - pub fn handler_mut(&mut self) -> Option<&mut [BasicBlock]> { + pub fn handler_mut(&mut self) -> Option<&mut Vec> { self.handler.as_mut().map(|b| b.as_mut()) } pub fn roots_mut(&mut self) -> &mut Vec { @@ -69,10 +69,39 @@ impl BasicBlock { pub fn handler_and_root_mut(&mut self) -> (Option<&mut [BasicBlock]>, &mut Vec) { (self.handler.as_mut().map(|b| b.as_mut()), &mut self.roots) } + /// Checks if this basic block consists of nothing more than an unconditional jump to another block + pub fn is_direct_jump(&self, asm: &Assembly) -> Option<(u32, u32)> { + let mut meningfull_root = self + .iter_roots() + .filter(|root| !matches!(asm.get_root(*root), CILRoot::SourceFileInfo { .. })); + let root = meningfull_root.next()?; + let CILRoot::Branch(binfo) = asm.get_root(root) else { + return None; + }; + if opt::is_branch_unconditional(binfo) && meningfull_root.next().is_none() { + Some((binfo.0, binfo.1)) + } else { + None + } + } + /// Checks if this basic block consists of nothing more thaan an uncondtional rethrow + pub fn is_only_rethrow(&self, asm: &Assembly) -> bool { + let mut meningfull_root = self + .iter_roots() + .filter(|root| !matches!(asm.get_root(*root), CILRoot::SourceFileInfo { .. })); + let Some(root) = meningfull_root.next() else { + return false; + }; + CILRoot::ReThrow == *asm.get_root(root) && meningfull_root.next().is_none() + } + + pub fn remove_handler(&mut self) { + self.handler = None; + } } impl BasicBlock { pub fn from_v1(v1: &V1Block, asm: &mut Assembly) -> Self { - let handler: Option> = v1.handler().map(|handler| { + let handler: Option> = v1.handler().map(|handler| { handler .as_blocks() .unwrap() diff --git a/cilly/src/v2/opt/mod.rs b/cilly/src/v2/opt/mod.rs index 1dd48128..ab894eec 100644 --- a/cilly/src/v2/opt/mod.rs +++ b/cilly/src/v2/opt/mod.rs @@ -1,3 +1,5 @@ +use simplify_handlers::simplify_bbs; + use super::{ cilroot::BranchCond, method::LocalDef, BasicBlock, CILIter, CILIterElem, CILNode, CILRoot, Const, Int, MethodImpl, NodeIdx, RootIdx, Type, @@ -5,7 +7,7 @@ use super::{ use crate::v2::{Assembly, MethodDef}; use std::collections::HashMap; mod opt_node; - +mod simplify_handlers; #[derive(Clone, Eq, PartialEq, Debug)] pub struct OptFuel(u32); impl OptFuel { @@ -383,7 +385,15 @@ impl MethodImpl { blocks.iter_mut().for_each(|block| { block .roots_mut() - .retain(|root| !matches!(asm.get_root(*root), CILRoot::Nop)) + .retain(|root| !matches!(asm.get_root(*root), CILRoot::Nop)); + // Remove Nops from the handler too. + if let Some(blocks) = block.handler_mut() { + blocks.iter_mut().for_each(|block| { + block + .roots_mut() + .retain(|root| !matches!(asm.get_root(*root), CILRoot::Nop)) + }) + } }); } } @@ -460,6 +470,7 @@ impl MethodDef { cache: &mut SideEffectInfoCache, fuel: &mut OptFuel, ) { + let nop = asm.alloc_root(CILRoot::Nop); self.implementation_mut().propagate_locals(asm, cache, fuel); self.implementation_mut() .remove_dead_writes(asm, cache, fuel); @@ -467,7 +478,6 @@ impl MethodDef { self.implementation_mut().realloc_locals(asm); } if fuel.consume(5) { - let nop = asm.alloc_root(CILRoot::Nop); if let Some(roots) = self.iter_roots_mut() { let mut peekable = roots.peekable(); while let Some(curr) = peekable.next() { @@ -478,6 +488,30 @@ impl MethodDef { (CILRoot::SourceFileInfo { .. }, CILRoot::SourceFileInfo { .. }) => { *curr = nop } + // If a rethrow is followed by a rethrow, this is effectively just a single rethrow + (CILRoot::ReThrow, CILRoot::ReThrow) => *curr = nop, + /*// If SFI is followed by an uncodtional branch, then it has no effect, then it can be safely ommited. + (CILRoot::SourceFileInfo { .. }, CILRoot::Branch(info)) + if is_branch_unconditional(info) => + { + *curr = nop + }*/ + (CILRoot::Branch(info), CILRoot::Branch(info2)) + if is_branch_unconditional(info2) => + { + let (target, subtarget, cond) = info.as_ref(); + let (target2, subtarget2, _) = info2.as_ref(); + // If a conditional jump to a target is followed by an unconditonal jump to the same target, we just need to perform the unconditonla jump. + if target == target2 && subtarget == subtarget2 { + match cond { + None => *curr = nop, + Some(BranchCond::True(tr)) | Some(BranchCond::False(tr)) => { + *curr = asm.alloc_root(CILRoot::Pop(*tr)) + } + _ => (), + } + } + } _ => (), } } @@ -487,6 +521,10 @@ impl MethodDef { self.map_roots( asm, &mut |root, asm| match root { + CILRoot::Pop(pop) => match asm.get_node(pop) { + CILNode::LdLoc(_) => CILRoot::Nop, + _ => root, + }, CILRoot::Branch(ref info) => { let (target, sub_target, cond) = info.as_ref(); match cond { @@ -500,6 +538,19 @@ impl MethodDef { }, _ => root, }, + Some(BranchCond::Eq(lhs, rhs)) => { + match (asm.get_node(*lhs), asm.get_node(*rhs)) { + (_, CILNode::Const(cst)) => match cst.as_ref() { + Const::ISize(0) => CILRoot::Branch(Box::new(( + *target, + *sub_target, + Some(BranchCond::False(*lhs)), + ))), + _ => root, + }, + _ => root, + } + } Some(_) => root, None => root, } @@ -512,6 +563,23 @@ impl MethodDef { if fuel.consume(5) { self.implementation_mut().remove_duplicate_sfi(asm); } + if fuel.consume(6) { + if let MethodImpl::MethodBody { blocks, .. } = self.implementation_mut() { + blocks.iter_mut().for_each(|block| { + simplify_bbs(block.handler_mut(), asm, fuel); + /* + let Some(handler) = block.handler() else { + return; + }; + // If tall the blocks only rethrow(and don't do anything else!), then this handler nothing, and we can ommit it + if handler.iter().all(|block| block.is_only_rethrow(asm)) { + //panic!("about to remove {handler}"); + block.remove_handler(); + }*/ + }); + // simplify_bbs(Some(blocks), asm, fuel) + }; + } } } #[test] @@ -621,3 +689,6 @@ fn opt_mag() { */ +pub fn is_branch_unconditional(branch: &(u32, u32, Option)) -> bool { + branch.2.is_none() +} diff --git a/cilly/src/v2/opt/opt_node.rs b/cilly/src/v2/opt/opt_node.rs index 69cf7a79..9841daec 100644 --- a/cilly/src/v2/opt/opt_node.rs +++ b/cilly/src/v2/opt/opt_node.rs @@ -5,17 +5,25 @@ pub fn opt_node(node: crate::v2::CILNode, asm: &mut Assembly) -> CILNode { CILNode::IntCast { input, target, - extend: _, - } => { - if let CILNode::Const(cst) = asm.get_node(input) { - match (cst.as_ref(), target) { - (Const::U64(val), Int::USize) => Const::USize(*val).into(), - _ => node, + extend, + } => match asm.get_node(input) { + CILNode::Const(cst) => match (cst.as_ref(), target) { + (Const::U64(val), Int::USize) => Const::USize(*val).into(), + (Const::I64(val), Int::ISize) => Const::ISize(*val).into(), + _ => node, + }, + CILNode::IntCast { + input: input2, + target: target2, + extend: extend2, + } => { + if target == *target2 && extend == *extend2 { + return asm.get_node(input).clone(); } - } else { node } - } + _ => node, + }, CILNode::LdInd { addr, tpe, @@ -33,11 +41,16 @@ pub fn opt_node(node: crate::v2::CILNode, asm: &mut Assembly) -> CILNode { } CILNode::LdField { addr, field } => match asm.get_node(addr) { + CILNode::RefToPtr(addr) => CILNode::LdField { addr: *addr, field }, CILNode::LdLocA(loc) => CILNode::LdField { addr: asm.alloc_node(CILNode::LdLoc(*loc)), field, }, - /*CILNode::LdFieldAdress { + CILNode::LdArgA(loc) => CILNode::LdField { + addr: asm.alloc_node(CILNode::LdArg(*loc)), + field, + }, + CILNode::LdFieldAdress { addr: addr2, field: field2, } => CILNode::LdField { @@ -46,7 +59,7 @@ pub fn opt_node(node: crate::v2::CILNode, asm: &mut Assembly) -> CILNode { field: *field2, }), field, - },*/ + }, CILNode::LdInd { addr, tpe, diff --git a/cilly/src/v2/opt/simplify_handlers.rs b/cilly/src/v2/opt/simplify_handlers.rs new file mode 100644 index 00000000..34776c9f --- /dev/null +++ b/cilly/src/v2/opt/simplify_handlers.rs @@ -0,0 +1,105 @@ +use fxhash::{FxHashMap, FxHashSet}; + +use crate::v2::{Assembly, BasicBlock, CILRoot}; + +use super::OptFuel; +fn block_with_id(blocks: &[BasicBlock], id: u32) -> Option<&BasicBlock> { + blocks.iter().find(|block| block.block_id() == id) +} +fn block_targets<'a, 'asm: 'a>( + block: &'a BasicBlock, + asm: &'asm Assembly, +) -> impl Iterator + 'a { + block.roots().iter().filter_map(|root| { + if let CILRoot::Branch(info) = asm.get_root(*root) { + let (target, sub_target, _) = info.as_ref(); + //Some(*sub_target) + //(eprintln!("{target} {sub_target}"); + if *sub_target == 0 { + Some(*target) + } else { + Some(*sub_target) + } + } else { + None + } + }) +} +fn block_gc(blocks: &mut Vec, asm: &Assembly) { + //debug_assert!(crate::utilis::is_sorted(bbs.iter(),|a,b|a.id + 1 == b.id)); + let mut alive: FxHashSet = (FxHashSet::default()); + let mut resurecting = (FxHashSet::default()); + let mut to_resurect = (FxHashSet::default()); + to_resurect.insert(blocks[0].block_id()); + while !to_resurect.is_empty() { + alive.extend(&resurecting); + resurecting.clear(); + resurecting.extend(&to_resurect); + to_resurect.clear(); + for target in resurecting + .iter() + .filter_map(|bb| block_with_id(blocks, *bb)) + .flat_map(|bb| block_targets(bb, asm).collect::>()) + { + //eprintln!("Block {target} is alive."); + if !alive.contains(&target) && !resurecting.contains(&target) { + to_resurect.insert(target); + } + } + } + alive.extend(&resurecting); + *blocks = blocks + .iter() + .filter(|bb| alive.contains(&bb.block_id())) + .cloned() + .collect() +} +pub fn simplify_bbs(handler: Option<&mut Vec>, asm: &mut Assembly, fuel: &mut OptFuel) { + let Some(blocks) = handler else { return }; + let direct_jumps: FxHashMap<_, Option<(u32, u32)>> = blocks + .iter() + .map(|block| (block.block_id(), block.is_direct_jump(asm))) + .collect(); + let rethrows: FxHashMap<_, bool> = blocks + .iter() + .map(|block| (block.block_id(), block.is_only_rethrow(asm))) + .collect(); + for root in blocks + .iter_mut() + .flat_map(|block| block.roots_mut().iter_mut()) + { + let CILRoot::Branch(info) = asm.get_root(*root) else { + continue; + }; + let (target, sub_target, cond) = info.as_ref(); + // Sub target of 0, look up by the target + let jump = if *sub_target == 0 { + direct_jumps.get(target) + } else { + direct_jumps.get(sub_target) + }; + let Some(jump) = jump else { + continue; + }; + let Some((target, sub_target)) = jump else { + let rethrow = if *sub_target == 0 { + rethrows.get(target).unwrap() + } else { + rethrows.get(sub_target).unwrap() + }; + if *rethrow && fuel.consume(1) { + *root = asm.alloc_root(CILRoot::ReThrow); + } + continue; + }; + if fuel.consume(1) { + *root = asm.alloc_root(CILRoot::Branch(Box::new(( + *target, + *sub_target, + cond.clone(), + )))); + } + } + + //block_gc(handler, asm); +} diff --git a/latest_benchmarks.txt b/latest_benchmarks.txt index a9298b5d..767fc7c0 100644 --- a/latest_benchmarks.txt +++ b/latest_benchmarks.txt @@ -1,476 +1,694 @@ -running 472 tests -test any::bench_downcast_ref ... bench: 6.76 ns/iter (+/- 1.71) -test array::map_8byte_256byte_256 ... bench: 75,119.81 ns/iter (+/- 2,257.99) -test array::map_8byte_8byte_256 ... bench: 9,796.40 ns/iter (+/- 8,912.35) -test array::map_8byte_8byte_64 ... bench: 2,226.41 ns/iter (+/- 9.00) -test array::map_8byte_8byte_8 ... bench: 316.92 ns/iter (+/- 13.41) -test ascii::bench_ascii_escape_display_mixed ... bench: 41,841.18 ns/iter (+/- 136,989.96) -test ascii::bench_ascii_escape_display_no_escape ... bench: 1,350.72 ns/iter (+/- 3,241.11) -test ascii::is_ascii::long::case00_libcore ... bench: 25.58 ns/iter (+/- 2.31) = 279600 MB/s -test ascii::is_ascii::long::case01_iter_all ... bench: 205.64 ns/iter (+/- 7.20) = 34097 MB/s -test ascii::is_ascii::long::case02_align_to ... bench: 149.47 ns/iter (+/- 133.48) = 46912 MB/s -test ascii::is_ascii::long::case03_align_to_unrolled ... bench: 42.45 ns/iter (+/- 2.92) = 166428 MB/s -test ascii::is_ascii::medium::case00_libcore ... bench: 9.49 ns/iter (+/- 4.57) = 3555 MB/s -test ascii::is_ascii::medium::case01_iter_all ... bench: 32.54 ns/iter (+/- 5.67) = 1000 MB/s -test ascii::is_ascii::medium::case02_align_to ... bench: 22.25 ns/iter (+/- 2.12) = 1454 MB/s -test ascii::is_ascii::medium::case03_align_to_unrolled ... bench: 14.33 ns/iter (+/- 13.15) = 2285 MB/s -test ascii::is_ascii::short::case00_libcore ... bench: 15.02 ns/iter (+/- 0.68) = 466 MB/s -test ascii::is_ascii::short::case01_iter_all ... bench: 11.08 ns/iter (+/- 0.53) = 636 MB/s -test ascii::is_ascii::short::case02_align_to ... bench: 11.37 ns/iter (+/- 1.56) = 636 MB/s -test ascii::is_ascii::short::case03_align_to_unrolled ... bench: 11.52 ns/iter (+/- 1.00) = 636 MB/s -test ascii::is_ascii::unaligned_both::case00_libcore ... bench: 6.03 ns/iter (+/- 0.11) = 5000 MB/s -test ascii::is_ascii::unaligned_both::case01_iter_all ... bench: 31.65 ns/iter (+/- 0.55) = 967 MB/s -test ascii::is_ascii::unaligned_both::case02_align_to ... bench: 24.44 ns/iter (+/- 1.41) = 1250 MB/s -test ascii::is_ascii::unaligned_both::case03_align_to_unrolled ... bench: 22.05 ns/iter (+/- 0.64) = 1363 MB/s -test ascii::is_ascii::unaligned_head::case00_libcore ... bench: 6.57 ns/iter (+/- 0.30) = 5166 MB/s -test ascii::is_ascii::unaligned_head::case01_iter_all ... bench: 31.07 ns/iter (+/- 13.53) = 1000 MB/s -test ascii::is_ascii::unaligned_head::case02_align_to ... bench: 24.51 ns/iter (+/- 1.16) = 1291 MB/s -test ascii::is_ascii::unaligned_head::case03_align_to_unrolled ... bench: 23.34 ns/iter (+/- 0.80) = 1347 MB/s -test ascii::is_ascii::unaligned_tail::case00_libcore ... bench: 6.09 ns/iter (+/- 0.28) = 5166 MB/s -test ascii::is_ascii::unaligned_tail::case01_iter_all ... bench: 32.33 ns/iter (+/- 2.02) = 968 MB/s -test ascii::is_ascii::unaligned_tail::case02_align_to ... bench: 25.08 ns/iter (+/- 1.00) = 1240 MB/s -test ascii::is_ascii::unaligned_tail::case03_align_to_unrolled ... bench: 21.48 ns/iter (+/- 0.82) = 1476 MB/s -test ascii::long::case00_alloc_only ... bench: 137.81 ns/iter (+/- 1.04) = 51021 MB/s -test ascii::long::case01_black_box_read_each_byte ... bench: 22,450.66 ns/iter (+/- 2,510.84) = 311 MB/s -test ascii::long::case02_lookup_table ... bench: 28,333.68 ns/iter (+/- 791.70) = 246 MB/s -test ascii::long::case03_branch_and_subtract ... bench: 20,912.89 ns/iter (+/- 1,479.48) = 334 MB/s -test ascii::long::case04_branch_and_mask ... bench: 20,812.04 ns/iter (+/- 1,842.32) = 335 MB/s -test ascii::long::case05_branchless ... bench: 9,021.81 ns/iter (+/- 258.16) = 774 MB/s -test ascii::long::case06_libcore ... bench: 9,294.49 ns/iter (+/- 791.70) = 752 MB/s -test ascii::long::case07_fake_simd_u32 ... bench: 1,901.24 ns/iter (+/- 40.32) = 3677 MB/s -test ascii::long::case08_fake_simd_u64 ... bench: 1,122.75 ns/iter (+/- 21.16) = 6229 MB/s -test ascii::long::case09_mask_mult_bool_branchy_lookup_table ... bench: 17,660.60 ns/iter (+/- 310.65) = 395 MB/s -test ascii::long::case10_mask_mult_bool_lookup_table ... bench: 34,756.12 ns/iter (+/- 3,125.90) = 201 MB/s -test ascii::long::case11_mask_mult_bool_match_range ... bench: 14,223.74 ns/iter (+/- 587.25) = 491 MB/s -test ascii::long::case12_mask_shifted_bool_match_range ... bench: 14,413.76 ns/iter (+/- 1,132.18) = 484 MB/s -test ascii::long::case13_subtract_shifted_bool_match_range ... bench: 20,224.78 ns/iter (+/- 2,705.28) = 345 MB/s -test ascii::long::case14_subtract_multiplied_bool_match_range ... bench: 13,081.72 ns/iter (+/- 1,029.49) = 534 MB/s -test ascii::long::is_ascii ... bench: 326.37 ns/iter (+/- 13.53) = 21441 MB/s -test ascii::long::is_ascii_alphabetic ... bench: 139.69 ns/iter (+/- 1.83) = 50287 MB/s -test ascii::long::is_ascii_alphanumeric ... bench: 139.83 ns/iter (+/- 1.87) = 50287 MB/s -test ascii::long::is_ascii_control ... bench: 139.50 ns/iter (+/- 2.44) = 50287 MB/s -test ascii::long::is_ascii_digit ... bench: 139.78 ns/iter (+/- 2.31) = 50287 MB/s -test ascii::long::is_ascii_graphic ... bench: 137.51 ns/iter (+/- 0.45) = 51021 MB/s -test ascii::long::is_ascii_hexdigit ... bench: 137.73 ns/iter (+/- 1.56) = 51021 MB/s -test ascii::long::is_ascii_lowercase ... bench: 139.87 ns/iter (+/- 2.10) = 50287 MB/s -test ascii::long::is_ascii_punctuation ... bench: 139.90 ns/iter (+/- 1.46) = 50287 MB/s -test ascii::long::is_ascii_uppercase ... bench: 139.51 ns/iter (+/- 3.02) = 50287 MB/s -test ascii::long::is_ascii_whitespace ... bench: 177.94 ns/iter (+/- 37.86) = 39491 MB/s -test ascii::medium::case00_alloc_only ... bench: 55.52 ns/iter (+/- 1.17) = 581 MB/s -test ascii::medium::case01_black_box_read_each_byte ... bench: 87.43 ns/iter (+/- 7.70) = 367 MB/s -test ascii::medium::case02_lookup_table ... bench: 137.28 ns/iter (+/- 2.84) = 233 MB/s -test ascii::medium::case03_branch_and_subtract ... bench: 99.94 ns/iter (+/- 2.84) = 323 MB/s -test ascii::medium::case04_branch_and_mask ... bench: 121.55 ns/iter (+/- 11.55) = 264 MB/s -test ascii::medium::case05_branchless ... bench: 98.99 ns/iter (+/- 2.78) = 326 MB/s -test ascii::medium::case06_libcore ... bench: 80.62 ns/iter (+/- 5.23) = 400 MB/s -test ascii::medium::case07_fake_simd_u32 ... bench: 59.30 ns/iter (+/- 5.98) = 542 MB/s -test ascii::medium::case08_fake_simd_u64 ... bench: 57.38 ns/iter (+/- 3.91) = 561 MB/s -test ascii::medium::case09_mask_mult_bool_branchy_lookup_table ... bench: 146.84 ns/iter (+/- 24.23) = 219 MB/s -test ascii::medium::case10_mask_mult_bool_lookup_table ... bench: 152.13 ns/iter (+/- 12.17) = 210 MB/s -test ascii::medium::case11_mask_mult_bool_match_range ... bench: 95.35 ns/iter (+/- 2.37) = 336 MB/s -test ascii::medium::case12_mask_shifted_bool_match_range ... bench: 134.33 ns/iter (+/- 4.04) = 238 MB/s -test ascii::medium::case13_subtract_shifted_bool_match_range ... bench: 94.69 ns/iter (+/- 3.30) = 340 MB/s -test ascii::medium::case14_subtract_multiplied_bool_match_range ... bench: 122.51 ns/iter (+/- 19.62) = 262 MB/s -test ascii::medium::is_ascii ... bench: 87.84 ns/iter (+/- 15.80) = 367 MB/s -test ascii::medium::is_ascii_alphabetic ... bench: 59.52 ns/iter (+/- 2.43) = 542 MB/s -test ascii::medium::is_ascii_alphanumeric ... bench: 61.29 ns/iter (+/- 1.47) = 524 MB/s -test ascii::medium::is_ascii_control ... bench: 58.91 ns/iter (+/- 1.82) = 551 MB/s -test ascii::medium::is_ascii_digit ... bench: 57.22 ns/iter (+/- 1.71) = 561 MB/s -test ascii::medium::is_ascii_graphic ... bench: 59.00 ns/iter (+/- 2.77) = 551 MB/s -test ascii::medium::is_ascii_hexdigit ... bench: 58.96 ns/iter (+/- 2.21) = 551 MB/s -test ascii::medium::is_ascii_lowercase ... bench: 57.25 ns/iter (+/- 1.20) = 561 MB/s -test ascii::medium::is_ascii_punctuation ... bench: 57.56 ns/iter (+/- 0.79) = 561 MB/s -test ascii::medium::is_ascii_uppercase ... bench: 58.78 ns/iter (+/- 1.83) = 551 MB/s -test ascii::medium::is_ascii_whitespace ... bench: 57.40 ns/iter (+/- 1.48) = 561 MB/s -test ascii::short::case00_alloc_only ... bench: 57.14 ns/iter (+/- 1.65) = 122 MB/s -test ascii::short::case01_black_box_read_each_byte ... bench: 56.91 ns/iter (+/- 3.73) = 125 MB/s -test ascii::short::case02_lookup_table ... bench: 67.24 ns/iter (+/- 4.03) = 104 MB/s -test ascii::short::case03_branch_and_subtract ... bench: 58.33 ns/iter (+/- 7.15) = 120 MB/s -test ascii::short::case04_branch_and_mask ... bench: 58.06 ns/iter (+/- 4.23) = 120 MB/s -test ascii::short::case05_branchless ... bench: 60.37 ns/iter (+/- 1.77) = 116 MB/s -test ascii::short::case06_libcore ... bench: 58.14 ns/iter (+/- 2.25) = 120 MB/s -test ascii::short::case07_fake_simd_u32 ... bench: 56.49 ns/iter (+/- 3.91) = 125 MB/s -test ascii::short::case08_fake_simd_u64 ... bench: 63.19 ns/iter (+/- 3.82) = 111 MB/s -test ascii::short::case09_mask_mult_bool_branchy_lookup_table ... bench: 60.95 ns/iter (+/- 4.76) = 116 MB/s -test ascii::short::case10_mask_mult_bool_lookup_table ... bench: 60.91 ns/iter (+/- 6.37) = 116 MB/s -test ascii::short::case11_mask_mult_bool_match_range ... bench: 60.24 ns/iter (+/- 2.28) = 116 MB/s -test ascii::short::case12_mask_shifted_bool_match_range ... bench: 59.95 ns/iter (+/- 2.12) = 118 MB/s -test ascii::short::case13_subtract_shifted_bool_match_range ... bench: 60.12 ns/iter (+/- 3.35) = 116 MB/s -test ascii::short::case14_subtract_multiplied_bool_match_range ... bench: 59.07 ns/iter (+/- 1.01) = 118 MB/s -test ascii::short::is_ascii ... bench: 57.88 ns/iter (+/- 1.78) = 122 MB/s -test ascii::short::is_ascii_alphabetic ... bench: 64.26 ns/iter (+/- 13.27) = 109 MB/s -test ascii::short::is_ascii_alphanumeric ... bench: 60.57 ns/iter (+/- 1.67) = 116 MB/s -test ascii::short::is_ascii_control ... bench: 56.82 ns/iter (+/- 2.10) = 125 MB/s -test ascii::short::is_ascii_digit ... bench: 56.89 ns/iter (+/- 1.49) = 125 MB/s -test ascii::short::is_ascii_graphic ... bench: 60.72 ns/iter (+/- 2.10) = 116 MB/s -test ascii::short::is_ascii_hexdigit ... bench: 57.85 ns/iter (+/- 1.40) = 122 MB/s -test ascii::short::is_ascii_lowercase ... bench: 56.44 ns/iter (+/- 2.17) = 125 MB/s -test ascii::short::is_ascii_punctuation ... bench: 57.07 ns/iter (+/- 2.31) = 122 MB/s -test ascii::short::is_ascii_uppercase ... bench: 64.45 ns/iter (+/- 10.25) = 109 MB/s -test ascii::short::is_ascii_whitespace ... bench: 56.95 ns/iter (+/- 1.49) = 125 MB/s -test char::methods::bench_ascii_char_to_lowercase ... bench: 1,047,718.00 ns/iter (+/- 842,780.01) -test char::methods::bench_ascii_char_to_uppercase ... bench: 248,515.47 ns/iter (+/- 5,387.24) -test char::methods::bench_ascii_mix_to_lowercase ... bench: 314,501.60 ns/iter (+/- 8,856.05) -test char::methods::bench_ascii_mix_to_uppercase ... bench: 314,701.75 ns/iter (+/- 8,604.14) -test char::methods::bench_non_ascii_char_to_lowercase ... bench: 382,270.51 ns/iter (+/- 440,674.54) -test char::methods::bench_non_ascii_char_to_uppercase ... bench: 380,020.62 ns/iter (+/- 10,971.20) -test char::methods::bench_to_ascii_lowercase ... bench: 151,814.62 ns/iter (+/- 3,883.62) -test char::methods::bench_to_ascii_uppercase ... bench: 158,617.33 ns/iter (+/- 353,455.36) -test char::methods::bench_to_digit_radix_10 ... bench: 350,321.03 ns/iter (+/- 11,598.86) -test char::methods::bench_to_digit_radix_16 ... bench: 364,904.75 ns/iter (+/- 13,229.64) -test char::methods::bench_to_digit_radix_2 ... bench: 333,833.55 ns/iter (+/- 10,656.12) -test char::methods::bench_to_digit_radix_36 ... bench: 386,168.15 ns/iter (+/- 11,374.36) -test char::methods::bench_to_digit_radix_var ... bench: 372,390.66 ns/iter (+/- 6,588.27) -test fmt::write_str_macro1 ... bench: 47,697.14 ns/iter (+/- 886.69) -test fmt::write_str_macro2 ... bench: 37,187.15 ns/iter (+/- 419.72) -test fmt::write_str_macro_debug ... bench: 1,465,566.90 ns/iter (+/- 12,241.17) -test fmt::write_str_macro_debug_ascii ... bench: 136,218.15 ns/iter (+/- 11,669.83) -test fmt::write_str_ref ... bench: 15,096.67 ns/iter (+/- 267.99) -test fmt::write_str_value ... bench: 8,277.55 ns/iter (+/- 101.15) -test fmt::write_u128_max ... bench: 221.34 ns/iter (+/- 3.78) -test fmt::write_u128_min ... bench: 57.15 ns/iter (+/- 1.51) -test fmt::write_u64_max ... bench: 167.48 ns/iter (+/- 20.02) -test fmt::write_u64_min ... bench: 57.26 ns/iter (+/- 1.13) -test fmt::write_vec_macro1 ... bench: 36,806.68 ns/iter (+/- 304.79) -test fmt::write_vec_macro2 ... bench: 36,743.06 ns/iter (+/- 399.34) -test fmt::write_vec_macro_debug ... bench: 1,477,240.90 ns/iter (+/- 11,505.54) -test fmt::write_vec_ref ... bench: 10,736.54 ns/iter (+/- 180.27) -test fmt::write_vec_value ... bench: 10,308.33 ns/iter (+/- 249.24) -test hash::sip::bench_bytes_4 ... bench: 31.46 ns/iter (+/- 0.91) = 129 MB/s -test hash::sip::bench_bytes_7 ... bench: 31.67 ns/iter (+/- 1.77) = 225 MB/s -test hash::sip::bench_bytes_8 ... bench: 38.50 ns/iter (+/- 2.01) = 210 MB/s -test hash::sip::bench_bytes_a_16 ... bench: 46.22 ns/iter (+/- 3.68) = 347 MB/s -test hash::sip::bench_bytes_b_32 ... bench: 65.83 ns/iter (+/- 4.96) = 492 MB/s -test hash::sip::bench_bytes_c_128 ... bench: 196.41 ns/iter (+/- 17.70) = 653 MB/s -test hash::sip::bench_long_str ... bench: 518.98 ns/iter (+/- 34.47) -test hash::sip::bench_str_of_8_bytes ... bench: 39.81 ns/iter (+/- 1.86) -test hash::sip::bench_str_over_8_bytes ... bench: 39.85 ns/iter (+/- 2.47) -test hash::sip::bench_str_under_8_bytes ... bench: 33.64 ns/iter (+/- 2.57) -test hash::sip::bench_u32 ... bench: 30.94 ns/iter (+/- 1.00) = 266 MB/s -test hash::sip::bench_u32_keyed ... bench: 31.49 ns/iter (+/- 1.84) = 258 MB/s -test hash::sip::bench_u64 ... bench: 37.89 ns/iter (+/- 1.50) = 216 MB/s -test iter::bench_chain_partial_cmp ... bench: 2,872,547.60 ns/iter (+/- 27,212.30) -test iter::bench_cycle_skip_take_ref_sum ... bench: 15,617,962.20 ns/iter (+/- 192,458.94) -test iter::bench_cycle_skip_take_sum ... bench: 15,161,367.60 ns/iter (+/- 155,375.74) -test iter::bench_cycle_take_ref_sum ... bench: 15,818,529.80 ns/iter (+/- 245,356.24) -test iter::bench_cycle_take_skip_ref_sum ... bench: 14,077,267.40 ns/iter (+/- 364,849.01) -test iter::bench_cycle_take_skip_sum ... bench: 13,661,744.50 ns/iter (+/- 191,812.96) -test iter::bench_cycle_take_sum ... bench: 15,193,051.20 ns/iter (+/- 3,277,898.77) -test iter::bench_enumerate_chain_ref_sum ... bench: 40,867,986.30 ns/iter (+/- 834,153.79) -test iter::bench_enumerate_chain_sum ... bench: 39,717,332.90 ns/iter (+/- 1,144,519.70) -test iter::bench_enumerate_ref_sum ... bench: 20,239,759.40 ns/iter (+/- 265,121.15) -test iter::bench_enumerate_sum ... bench: 20,054,538.50 ns/iter (+/- 200,572.11) -test iter::bench_filter_chain_count ... bench: 28,526,421.00 ns/iter (+/- 548,671.71) -test iter::bench_filter_chain_ref_count ... bench: 28,956,407.50 ns/iter (+/- 10,766,461.70) -test iter::bench_filter_chain_ref_sum ... bench: 20,942,111.80 ns/iter (+/- 375,270.38) -test iter::bench_filter_chain_sum ... bench: 20,460,550.50 ns/iter (+/- 434,467.57) -test iter::bench_filter_count ... bench: 14,503,262.00 ns/iter (+/- 516,117.94) -test iter::bench_filter_map_chain_ref_sum ... bench: 43,234,805.60 ns/iter (+/- 4,188,292.57) -test iter::bench_filter_map_chain_sum ... bench: 43,066,980.50 ns/iter (+/- 11,951,593.53) -test iter::bench_filter_map_ref_sum ... bench: 21,622,337.80 ns/iter (+/- 4,523,700.94) -test iter::bench_filter_map_sum ... bench: 21,574,256.60 ns/iter (+/- 94,556.68) -test iter::bench_filter_ref_count ... bench: 14,713,601.90 ns/iter (+/- 120,513.44) -test iter::bench_filter_ref_sum ... bench: 10,292,730.20 ns/iter (+/- 195,224.53) -test iter::bench_filter_sum ... bench: 10,386,715.50 ns/iter (+/- 338,748.51) -test iter::bench_flat_map_chain_ref_sum ... bench: 46,499,127.60 ns/iter (+/- 359,893.64) -test iter::bench_flat_map_chain_sum ... bench: 39,675,838.90 ns/iter (+/- 890,009.39) -test iter::bench_flat_map_ref_sum ... bench: 13,837,384.20 ns/iter (+/- 264,598.78) -test iter::bench_flat_map_sum ... bench: 13,395,516.40 ns/iter (+/- 360,868.73) -test iter::bench_for_each_chain_fold ... bench: 15,464,084.30 ns/iter (+/- 252,664.73) -test iter::bench_for_each_chain_loop ... bench: 18,986,992.00 ns/iter (+/- 433,322.35) -test iter::bench_for_each_chain_ref_fold ... bench: 16,152,349.70 ns/iter (+/- 573,733.93) -test iter::bench_fuse_chain_ref_sum ... bench: 28,121,497.40 ns/iter (+/- 242,273.88) -test iter::bench_fuse_chain_sum ... bench: 26,447,089.20 ns/iter (+/- 293,101.23) -test iter::bench_fuse_ref_sum ... bench: 14,057,655.00 ns/iter (+/- 105,047.67) -test iter::bench_fuse_sum ... bench: 13,143,696.60 ns/iter (+/- 12,082,899.58) -test iter::bench_inspect_chain_ref_sum ... bench: 28,942,911.30 ns/iter (+/- 659,509.49) -test iter::bench_inspect_chain_sum ... bench: 28,027,032.00 ns/iter (+/- 410,492.39) -test iter::bench_inspect_ref_sum ... bench: 14,257,048.90 ns/iter (+/- 232,544.69) -test iter::bench_inspect_sum ... bench: 14,307,677.80 ns/iter (+/- 553,617.47) -test iter::bench_lt ... bench: 2,871,089.60 ns/iter (+/- 78,828.94) -test iter::bench_max ... bench: 1,696.62 ns/iter (+/- 41.46) -test iter::bench_max_by_key ... bench: 3,212.75 ns/iter (+/- 70.67) -test iter::bench_max_by_key2 ... bench: 34,421.89 ns/iter (+/- 1,417.17) -test iter::bench_multiple_take ... bench: 2,105.64 ns/iter (+/- 58.81) -test iter::bench_next_chunk_copied ... bench: 1,668.07 ns/iter (+/- 49.02) -test iter::bench_next_chunk_filter_even ... bench: 251.94 ns/iter (+/- 11.73) -test iter::bench_next_chunk_filter_mostly_false ... bench: 3,433.20 ns/iter (+/- 175.48) -test iter::bench_next_chunk_filter_predictably_true ... bench: 140.16 ns/iter (+/- 6.58) -test iter::bench_next_chunk_trusted_random_access ... bench: 2,454.13 ns/iter (+/- 85.16) -test iter::bench_partial_cmp ... bench: 2,878,678.80 ns/iter (+/- 38,335.29) -test iter::bench_peekable_chain_ref_sum ... bench: 27,673,296.00 ns/iter (+/- 615,601.33) -test iter::bench_peekable_chain_sum ... bench: 26,569,146.20 ns/iter (+/- 367,969.74) -test iter::bench_peekable_ref_sum ... bench: 13,843,728.90 ns/iter (+/- 398,300.15) -test iter::bench_peekable_sum ... bench: 13,142,617.10 ns/iter (+/- 410,468.02) -test iter::bench_range_step_by_fold_u16 ... bench: 1,405.62 ns/iter (+/- 95.37) -test iter::bench_range_step_by_fold_usize ... bench: 1,945.97 ns/iter (+/- 360.50) -test iter::bench_range_step_by_loop_u32 ... bench: 6,653.18 ns/iter (+/- 88.23) -test iter::bench_range_step_by_sum_reducible ... bench: 827.18 ns/iter (+/- 15.30) -test iter::bench_rposition ... bench: 98.19 ns/iter (+/- 14.36) -test iter::bench_skip_chain_ref_sum ... bench: 28,073,325.80 ns/iter (+/- 557,980.69) -test iter::bench_skip_chain_sum ... bench: 26,535,869.20 ns/iter (+/- 103,713.26) -test iter::bench_skip_cycle_skip_zip_add_ref_sum ... bench: 27,193,690.60 ns/iter (+/- 345,479.31) -test iter::bench_skip_cycle_skip_zip_add_sum ... bench: 26,512,899.50 ns/iter (+/- 328,208.81) -test iter::bench_skip_ref_sum ... bench: 14,033,535.20 ns/iter (+/- 236,438.04) -test iter::bench_skip_sum ... bench: 13,353,680.10 ns/iter (+/- 250,329.65) -test iter::bench_skip_then_zip ... bench: 1,066.65 ns/iter (+/- 16.81) -test iter::bench_skip_trusted_random_access ... bench: 66,125.76 ns/iter (+/- 942.70) -test iter::bench_skip_while ... bench: 1,594.60 ns/iter (+/- 307.70) -test iter::bench_skip_while_chain_ref_sum ... bench: 28,060,995.80 ns/iter (+/- 463,749.63) -test iter::bench_skip_while_chain_sum ... bench: 26,533,209.90 ns/iter (+/- 6,161,697.15) -test iter::bench_skip_while_ref_sum ... bench: 14,041,043.20 ns/iter (+/- 239,234.80) -test iter::bench_skip_while_sum ... bench: 13,374,225.70 ns/iter (+/- 213,622.01) -test iter::bench_take_while_chain_ref_sum ... bench: 16,931,940.10 ns/iter (+/- 344,255.19) -test iter::bench_take_while_chain_sum ... bench: 16,470,377.40 ns/iter (+/- 215,884.75) -test iter::bench_trusted_random_access_adapters ... bench: 672,557.70 ns/iter (+/- 25,341.10) -test iter::bench_zip_add ... bench: 14,708.62 ns/iter (+/- 229.51) -test iter::bench_zip_copy ... bench: 12,832.17 ns/iter (+/- 282.06) -test iter::bench_zip_then_skip ... bench: 3,361.26 ns/iter (+/- 122.86) -test net::addr_parser::bench_parse_ipaddr_v4 ... bench: 228.35 ns/iter (+/- 9.34) -test net::addr_parser::bench_parse_ipaddr_v6_compress ... bench: 662.79 ns/iter (+/- 19.19) -test net::addr_parser::bench_parse_ipaddr_v6_full ... bench: 933.40 ns/iter (+/- 25.18) -test net::addr_parser::bench_parse_ipaddr_v6_v4 ... bench: 674.37 ns/iter (+/- 15.52) -test net::addr_parser::bench_parse_ipv4 ... bench: 215.80 ns/iter (+/- 2.45) -test net::addr_parser::bench_parse_ipv6_compress ... bench: 582.78 ns/iter (+/- 11.94) -test net::addr_parser::bench_parse_ipv6_full ... bench: 858.07 ns/iter (+/- 26.55) -test net::addr_parser::bench_parse_ipv6_v4 ... bench: 593.31 ns/iter (+/- 16.20) -test net::addr_parser::bench_parse_socket_v4 ... bench: 365.62 ns/iter (+/- 11.52) -test net::addr_parser::bench_parse_socket_v6 ... bench: 754.91 ns/iter (+/- 12.07) -test net::addr_parser::bench_parse_socket_v6_scope_id ... bench: 847.93 ns/iter (+/- 12.00) -test net::addr_parser::bench_parse_socketaddr_v4 ... bench: 391.38 ns/iter (+/- 21.36) -test net::addr_parser::bench_parse_socketaddr_v6 ... bench: 821.75 ns/iter (+/- 10.99) -test num::bench_i16_from_str ... bench: 302,784.05 ns/iter (+/- 4,260.37) -test num::bench_i16_from_str_radix_10 ... bench: 303,080.50 ns/iter (+/- 3,600.27) -test num::bench_i16_from_str_radix_16 ... bench: 363,531.20 ns/iter (+/- 8,252.10) -test num::bench_i16_from_str_radix_2 ... bench: 168,503.80 ns/iter (+/- 4,730.26) -test num::bench_i16_from_str_radix_36 ... bench: 362,988.55 ns/iter (+/- 4,810.76) -test num::bench_i32_from_str ... bench: 268,928.32 ns/iter (+/- 4,822.29) -test num::bench_i32_from_str_radix_10 ... bench: 290,461.30 ns/iter (+/- 35,275.14) -test num::bench_i32_from_str_radix_16 ... bench: 291,301.65 ns/iter (+/- 4,891.43) -test num::bench_i32_from_str_radix_2 ... bench: 120,433.58 ns/iter (+/- 1,684.57) -test num::bench_i32_from_str_radix_36 ... bench: 473,366.03 ns/iter (+/- 4,225.89) -test num::bench_i64_from_str ... bench: 127,174.04 ns/iter (+/- 4,778.96) -test num::bench_i64_from_str_radix_10 ... bench: 128,432.52 ns/iter (+/- 4,451.05) -test num::bench_i64_from_str_radix_16 ... bench: 224,352.65 ns/iter (+/- 40,441.67) -test num::bench_i64_from_str_radix_2 ... bench: 58,498.76 ns/iter (+/- 3,306.24) -test num::bench_i64_from_str_radix_36 ... bench: 608,366.20 ns/iter (+/- 14,350.81) -test num::bench_i8_from_str ... bench: 186,657.70 ns/iter (+/- 3,344.05) -test num::bench_i8_from_str_radix_10 ... bench: 215,052.45 ns/iter (+/- 5,941.08) -test num::bench_i8_from_str_radix_16 ... bench: 221,903.60 ns/iter (+/- 6,565.83) -test num::bench_i8_from_str_radix_2 ... bench: 130,266.19 ns/iter (+/- 4,466.00) -test num::bench_i8_from_str_radix_36 ... bench: 213,889.15 ns/iter (+/- 6,376.71) -test num::bench_u16_from_str ... bench: 253,276.98 ns/iter (+/- 4,073.24) -test num::bench_u16_from_str_radix_10 ... bench: 279,949.15 ns/iter (+/- 33,860.86) -test num::bench_u16_from_str_radix_16 ... bench: 286,662.85 ns/iter (+/- 5,456.83) -test num::bench_u16_from_str_radix_2 ... bench: 127,027.84 ns/iter (+/- 3,594.88) -test num::bench_u16_from_str_radix_36 ... bench: 308,850.85 ns/iter (+/- 4,927.70) -test num::bench_u32_from_str ... bench: 220,515.80 ns/iter (+/- 5,229.10) -test num::bench_u32_from_str_radix_10 ... bench: 243,467.75 ns/iter (+/- 26,293.54) -test num::bench_u32_from_str_radix_16 ... bench: 267,309.80 ns/iter (+/- 28,712.35) -test num::bench_u32_from_str_radix_2 ... bench: 111,099.74 ns/iter (+/- 4,479.74) -test num::bench_u32_from_str_radix_36 ... bench: 420,570.10 ns/iter (+/- 12,899.51) -test num::bench_u64_from_str ... bench: 119,924.85 ns/iter (+/- 4,471.87) -test num::bench_u64_from_str_radix_10 ... bench: 119,939.60 ns/iter (+/- 3,374.72) -test num::bench_u64_from_str_radix_16 ... bench: 139,643.81 ns/iter (+/- 5,794.56) -test num::bench_u64_from_str_radix_2 ... bench: 58,253.61 ns/iter (+/- 1,538.02) -test num::bench_u64_from_str_radix_36 ... bench: 366,856.75 ns/iter (+/- 3,991.98) -test num::bench_u8_from_str ... bench: 165,313.97 ns/iter (+/- 3,831.71) -test num::bench_u8_from_str_radix_10 ... bench: 192,477.35 ns/iter (+/- 4,590.29) -test num::bench_u8_from_str_radix_16 ... bench: 176,837.77 ns/iter (+/- 5,231.36) -test num::bench_u8_from_str_radix_2 ... bench: 120,464.30 ns/iter (+/- 2,672.57) -test num::bench_u8_from_str_radix_36 ... bench: 194,460.95 ns/iter (+/- 6,343.66) -test num::dec2flt::bench_0 ... bench: 51.56 ns/iter (+/- 1.11) -test num::dec2flt::bench_1e150 ... bench: 54.04 ns/iter (+/- 1.48) -test num::dec2flt::bench_42 ... bench: 41.23 ns/iter (+/- 0.60) -test num::dec2flt::bench_huge_int ... bench: 93.59 ns/iter (+/- 3.97) -test num::dec2flt::bench_long_decimal_and_exp ... bench: 106.53 ns/iter (+/- 3.95) -test num::dec2flt::bench_max ... bench: 73.17 ns/iter (+/- 1.87) -test num::dec2flt::bench_min_normal ... bench: 81.87 ns/iter (+/- 13.42) -test num::dec2flt::bench_min_subnormal ... bench: 55.73 ns/iter (+/- 2.54) -test num::dec2flt::bench_pi_long ... bench: 99.15 ns/iter (+/- 3.12) -test num::dec2flt::bench_pi_short ... bench: 79.96 ns/iter (+/- 17.80) -test num::dec2flt::bench_short_decimal ... bench: 73.05 ns/iter (+/- 15.71) -test num::flt2dec::bench_big_shortest ... bench: 199.81 ns/iter (+/- 2.78) -test num::flt2dec::bench_small_shortest ... bench: 157.68 ns/iter (+/- 1.84) -test num::flt2dec::strategy::dragon::bench_big_exact_12 ... bench: 15,967.96 ns/iter (+/- 131.69) -test num::flt2dec::strategy::dragon::bench_big_exact_3 ... bench: 5,917.95 ns/iter (+/- 232.13) +test any::bench_downcast_ref ... bench: 6.81 ns/iter (+/- 4.26) +test array::map_8byte_256byte_256 ... bench: 49,912.54 ns/iter (+/- 2,466.79) +test array::map_8byte_8byte_256 ... bench: 7,847.88 ns/iter (+/- 14,447.79) +test array::map_8byte_8byte_64 ... bench: 1,734.56 ns/iter (+/- 57.08) +test array::map_8byte_8byte_8 ... bench: 272.29 ns/iter (+/- 3.72) +test ascii::bench_ascii_escape_display_mixed ... bench: 22,972.41 ns/iter (+/- 359.04) +test ascii::bench_ascii_escape_display_no_escape ... bench: 705.66 ns/iter (+/- 30.04) +test ascii::is_ascii::long::case00_libcore ... bench: 18.37 ns/iter (+/- 1.94) = 388333 MB/s +test ascii::is_ascii::long::case01_iter_all ... bench: 179.25 ns/iter (+/- 12.76) = 39050 MB/s +test ascii::is_ascii::long::case02_align_to ... bench: 37.24 ns/iter (+/- 2.09) = 188918 MB/s +test ascii::is_ascii::long::case03_align_to_unrolled ... bench: 20.10 ns/iter (+/- 2.29) = 349500 MB/s +test ascii::is_ascii::medium::case00_libcore ... bench: 4.13 ns/iter (+/- 0.39) = 8000 MB/s +test ascii::is_ascii::medium::case01_iter_all ... bench: 31.24 ns/iter (+/- 7.86) = 1032 MB/s +test ascii::is_ascii::medium::case02_align_to ... bench: 12.12 ns/iter (+/- 0.32) = 2666 MB/s +test ascii::is_ascii::medium::case03_align_to_unrolled ... bench: 10.59 ns/iter (+/- 0.71) = 3200 MB/s +test ascii::is_ascii::short::case00_libcore ... bench: 22.78 ns/iter (+/- 0.81) = 318 MB/s +test ascii::is_ascii::short::case01_iter_all ... bench: 8.47 ns/iter (+/- 1.16) = 875 MB/s +test ascii::is_ascii::short::case02_align_to ... bench: 10.68 ns/iter (+/- 0.46) = 700 MB/s +test ascii::is_ascii::short::case03_align_to_unrolled ... bench: 10.78 ns/iter (+/- 3.41) = 700 MB/s +test ascii::is_ascii::unaligned_both::case00_libcore ... bench: 4.94 ns/iter (+/- 0.37) = 7500 MB/s +test ascii::is_ascii::unaligned_both::case01_iter_all ... bench: 31.98 ns/iter (+/- 4.73) = 967 MB/s +test ascii::is_ascii::unaligned_both::case02_align_to ... bench: 20.26 ns/iter (+/- 0.60) = 1500 MB/s +test ascii::is_ascii::unaligned_both::case03_align_to_unrolled ... bench: 18.42 ns/iter (+/- 1.16) = 1666 MB/s +test ascii::is_ascii::unaligned_head::case00_libcore ... bench: 4.48 ns/iter (+/- 0.37) = 7750 MB/s +test ascii::is_ascii::unaligned_head::case01_iter_all ... bench: 29.68 ns/iter (+/- 4.80) = 1068 MB/s +test ascii::is_ascii::unaligned_head::case02_align_to ... bench: 16.86 ns/iter (+/- 0.48) = 1937 MB/s +test ascii::is_ascii::unaligned_head::case03_align_to_unrolled ... bench: 18.32 ns/iter (+/- 1.28) = 1722 MB/s +test ascii::is_ascii::unaligned_tail::case00_libcore ... bench: 5.18 ns/iter (+/- 0.32) = 6200 MB/s +test ascii::is_ascii::unaligned_tail::case01_iter_all ... bench: 29.91 ns/iter (+/- 4.97) = 1068 MB/s +test ascii::is_ascii::unaligned_tail::case02_align_to ... bench: 16.92 ns/iter (+/- 0.41) = 1937 MB/s +test ascii::is_ascii::unaligned_tail::case03_align_to_unrolled ... bench: 18.36 ns/iter (+/- 1.97) = 1722 MB/s +test ascii::long::case00_alloc_only ... bench: 132.95 ns/iter (+/- 0.75) = 52954 MB/s +test ascii::long::case01_black_box_read_each_byte ... bench: 4,579.59 ns/iter (+/- 228.88) = 1526 MB/s +test ascii::long::case02_lookup_table ... bench: 22,499.80 ns/iter (+/- 864.10) = 310 MB/s +test ascii::long::case03_branch_and_subtract ... bench: 9,119.10 ns/iter (+/- 260.32) = 766 MB/s +test ascii::long::case04_branch_and_mask ... bench: 18,200.71 ns/iter (+/- 9,547.04) = 384 MB/s +test ascii::long::case05_branchless ... bench: 11,180.97 ns/iter (+/- 175.05) = 625 MB/s +test ascii::long::case06_libcore ... bench: 9,837.65 ns/iter (+/- 169.58) = 710 MB/s +test ascii::long::case07_fake_simd_u32 ... bench: 3,492.81 ns/iter (+/- 8.92) = 2001 MB/s +test ascii::long::case08_fake_simd_u64 ... bench: 1,629.54 ns/iter (+/- 14.62) = 4290 MB/s +test ascii::long::case09_mask_mult_bool_branchy_lookup_table ... bench: 21,109.16 ns/iter (+/- 1,287.30) = 331 MB/s +test ascii::long::case10_mask_mult_bool_lookup_table ... bench: 11,847.58 ns/iter (+/- 373.66) = 590 MB/s +test ascii::long::case11_mask_mult_bool_match_range ... bench: 10,642.53 ns/iter (+/- 1,158.20) = 656 MB/s +test ascii::long::case12_mask_shifted_bool_match_range ... bench: 10,474.61 ns/iter (+/- 624.40) = 667 MB/s +test ascii::long::case13_subtract_shifted_bool_match_range ... bench: 9,963.58 ns/iter (+/- 3,423.01) = 701 MB/s +test ascii::long::case14_subtract_multiplied_bool_match_range ... bench: 11,028.30 ns/iter (+/- 17,639.53) = 633 MB/s +test ascii::long::is_ascii ... bench: 300.84 ns/iter (+/- 9.94) = 23300 MB/s +test ascii::long::is_ascii_alphabetic ... bench: 135.48 ns/iter (+/- 0.36) = 51777 MB/s +test ascii::long::is_ascii_alphanumeric ... bench: 135.44 ns/iter (+/- 0.61) = 51777 MB/s +test ascii::long::is_ascii_control ... bench: 135.40 ns/iter (+/- 0.22) = 51777 MB/s +test ascii::long::is_ascii_digit ... bench: 135.48 ns/iter (+/- 0.50) = 51777 MB/s +test ascii::long::is_ascii_graphic ... bench: 135.44 ns/iter (+/- 0.58) = 51777 MB/s +test ascii::long::is_ascii_hexdigit ... bench: 135.34 ns/iter (+/- 0.26) = 51777 MB/s +test ascii::long::is_ascii_lowercase ... bench: 135.49 ns/iter (+/- 0.60) = 51777 MB/s +test ascii::long::is_ascii_punctuation ... bench: 135.48 ns/iter (+/- 0.73) = 51777 MB/s +test ascii::long::is_ascii_uppercase ... bench: 135.43 ns/iter (+/- 0.65) = 51777 MB/s +test ascii::long::is_ascii_whitespace ... bench: 169.06 ns/iter (+/- 33.05) = 41360 MB/s +test ascii::medium::case00_alloc_only ... bench: 48.45 ns/iter (+/- 1.24) = 666 MB/s +test ascii::medium::case01_black_box_read_each_byte ... bench: 66.46 ns/iter (+/- 13.54) = 484 MB/s +test ascii::medium::case02_lookup_table ... bench: 145.73 ns/iter (+/- 3.08) = 220 MB/s +test ascii::medium::case03_branch_and_subtract ... bench: 94.18 ns/iter (+/- 18.93) = 340 MB/s +test ascii::medium::case04_branch_and_mask ... bench: 79.77 ns/iter (+/- 6.15) = 405 MB/s +test ascii::medium::case05_branchless ... bench: 79.34 ns/iter (+/- 6.14) = 405 MB/s +test ascii::medium::case06_libcore ... bench: 71.01 ns/iter (+/- 3.46) = 450 MB/s +test ascii::medium::case07_fake_simd_u32 ... bench: 56.02 ns/iter (+/- 2.33) = 571 MB/s +test ascii::medium::case08_fake_simd_u64 ... bench: 52.75 ns/iter (+/- 2.22) = 615 MB/s +test ascii::medium::case09_mask_mult_bool_branchy_lookup_table ... bench: 90.03 ns/iter (+/- 2.55) = 355 MB/s +test ascii::medium::case10_mask_mult_bool_lookup_table ... bench: 109.81 ns/iter (+/- 3.40) = 293 MB/s +test ascii::medium::case11_mask_mult_bool_match_range ... bench: 74.01 ns/iter (+/- 5.62) = 432 MB/s +test ascii::medium::case12_mask_shifted_bool_match_range ... bench: 72.66 ns/iter (+/- 8.81) = 444 MB/s +test ascii::medium::case13_subtract_shifted_bool_match_range ... bench: 80.57 ns/iter (+/- 7.17) = 400 MB/s +test ascii::medium::case14_subtract_multiplied_bool_match_range ... bench: 80.21 ns/iter (+/- 5.53) = 400 MB/s +test ascii::medium::is_ascii ... bench: 64.06 ns/iter (+/- 4.21) = 500 MB/s +test ascii::medium::is_ascii_alphabetic ... bench: 49.00 ns/iter (+/- 1.91) = 666 MB/s +test ascii::medium::is_ascii_alphanumeric ... bench: 50.63 ns/iter (+/- 1.54) = 640 MB/s +test ascii::medium::is_ascii_control ... bench: 48.25 ns/iter (+/- 1.81) = 666 MB/s +test ascii::medium::is_ascii_digit ... bench: 48.08 ns/iter (+/- 1.50) = 666 MB/s +test ascii::medium::is_ascii_graphic ... bench: 48.46 ns/iter (+/- 1.87) = 666 MB/s +test ascii::medium::is_ascii_hexdigit ... bench: 48.21 ns/iter (+/- 0.83) = 666 MB/s +test ascii::medium::is_ascii_lowercase ... bench: 48.15 ns/iter (+/- 1.35) = 666 MB/s +test ascii::medium::is_ascii_punctuation ... bench: 47.68 ns/iter (+/- 2.51) = 680 MB/s +test ascii::medium::is_ascii_uppercase ... bench: 48.27 ns/iter (+/- 1.53) = 666 MB/s +test ascii::medium::is_ascii_whitespace ... bench: 48.27 ns/iter (+/- 1.18) = 666 MB/s +test ascii::short::case00_alloc_only ... bench: 49.28 ns/iter (+/- 1.46) = 142 MB/s +test ascii::short::case01_black_box_read_each_byte ... bench: 46.81 ns/iter (+/- 4.81) = 152 MB/s +test ascii::short::case02_lookup_table ... bench: 67.31 ns/iter (+/- 3.31) = 104 MB/s +test ascii::short::case03_branch_and_subtract ... bench: 48.66 ns/iter (+/- 2.82) = 145 MB/s +test ascii::short::case04_branch_and_mask ... bench: 48.55 ns/iter (+/- 2.98) = 145 MB/s +test ascii::short::case05_branchless ... bench: 49.63 ns/iter (+/- 0.33) = 142 MB/s +test ascii::short::case06_libcore ... bench: 49.52 ns/iter (+/- 1.94) = 142 MB/s +test ascii::short::case07_fake_simd_u32 ... bench: 51.52 ns/iter (+/- 2.48) = 137 MB/s +test ascii::short::case08_fake_simd_u64 ... bench: 54.64 ns/iter (+/- 2.69) = 129 MB/s +test ascii::short::case09_mask_mult_bool_branchy_lookup_table ... bench: 51.62 ns/iter (+/- 1.96) = 137 MB/s +test ascii::short::case10_mask_mult_bool_lookup_table ... bench: 94.58 ns/iter (+/- 46.39) = 74 MB/s +test ascii::short::case11_mask_mult_bool_match_range ... bench: 49.32 ns/iter (+/- 4.00) = 142 MB/s +test ascii::short::case12_mask_shifted_bool_match_range ... bench: 48.99 ns/iter (+/- 0.61) = 145 MB/s +test ascii::short::case13_subtract_shifted_bool_match_range ... bench: 48.64 ns/iter (+/- 3.39) = 145 MB/s +test ascii::short::case14_subtract_multiplied_bool_match_range ... bench: 48.77 ns/iter (+/- 3.52) = 145 MB/s +test ascii::short::is_ascii ... bench: 56.23 ns/iter (+/- 12.40) = 125 MB/s +test ascii::short::is_ascii_alphabetic ... bench: 48.19 ns/iter (+/- 0.71) = 145 MB/s +test ascii::short::is_ascii_alphanumeric ... bench: 50.62 ns/iter (+/- 1.59) = 140 MB/s +test ascii::short::is_ascii_control ... bench: 54.42 ns/iter (+/- 9.22) = 129 MB/s +test ascii::short::is_ascii_digit ... bench: 47.47 ns/iter (+/- 1.88) = 148 MB/s +test ascii::short::is_ascii_graphic ... bench: 48.24 ns/iter (+/- 1.42) = 145 MB/s +test ascii::short::is_ascii_hexdigit ... bench: 47.89 ns/iter (+/- 2.61) = 148 MB/s +test ascii::short::is_ascii_lowercase ... bench: 47.58 ns/iter (+/- 1.66) = 148 MB/s +test ascii::short::is_ascii_punctuation ... bench: 47.44 ns/iter (+/- 1.29) = 148 MB/s +test ascii::short::is_ascii_uppercase ... bench: 47.85 ns/iter (+/- 1.29) = 148 MB/s +test ascii::short::is_ascii_whitespace ... bench: 47.68 ns/iter (+/- 1.49) = 148 MB/s +test char::methods::bench_ascii_char_to_lowercase ... bench: 254,141.55 ns/iter (+/- 15,925.27) +test char::methods::bench_ascii_char_to_uppercase ... bench: 254,350.46 ns/iter (+/- 3,109.66) +test char::methods::bench_ascii_mix_to_lowercase ... bench: 316,703.10 ns/iter (+/- 2,466.52) +test char::methods::bench_ascii_mix_to_uppercase ... bench: 316,414.85 ns/iter (+/- 2,696.15) +test char::methods::bench_non_ascii_char_to_lowercase ... bench: 380,337.22 ns/iter (+/- 10,306.20) +test char::methods::bench_non_ascii_char_to_uppercase ... bench: 379,907.10 ns/iter (+/- 6,845.33) +test char::methods::bench_to_ascii_lowercase ... bench: 289,016.15 ns/iter (+/- 151,372.26) +test char::methods::bench_to_ascii_uppercase ... bench: 235,422.40 ns/iter (+/- 97,173.16) +test char::methods::bench_to_digit_radix_10 ... bench: 338,015.08 ns/iter (+/- 7,303.71) +test char::methods::bench_to_digit_radix_16 ... bench: 344,104.90 ns/iter (+/- 10,446.78) +test char::methods::bench_to_digit_radix_2 ... bench: 315,754.55 ns/iter (+/- 12,674.51) +test char::methods::bench_to_digit_radix_36 ... bench: 369,899.85 ns/iter (+/- 7,524.58) +test char::methods::bench_to_digit_radix_var ... bench: 357,929.12 ns/iter (+/- 4,571.27) +test fmt::write_str_macro1 ... bench: 30,445.90 ns/iter (+/- 761.56) +test fmt::write_str_macro2 ... bench: 40,562.09 ns/iter (+/- 10,670.89) +test fmt::write_str_macro_debug ... bench: 1,404,267.25 ns/iter (+/- 5,810.36) +test fmt::write_str_macro_debug_ascii ... bench: 65,701.13 ns/iter (+/- 969.53) +test fmt::write_str_ref ... bench: 10,002.53 ns/iter (+/- 39.53) +test fmt::write_str_value ... bench: 8,064.42 ns/iter (+/- 45.66) +test fmt::write_u128_max ... bench: 188.46 ns/iter (+/- 1.62) +test fmt::write_u128_min ... bench: 51.07 ns/iter (+/- 1.31) +test fmt::write_u64_max ... bench: 132.45 ns/iter (+/- 6.86) +test fmt::write_u64_min ... bench: 51.04 ns/iter (+/- 2.42) +test fmt::write_vec_macro1 ... bench: 30,044.33 ns/iter (+/- 154.99) +test fmt::write_vec_macro2 ... bench: 30,076.43 ns/iter (+/- 205.92) +test fmt::write_vec_macro_debug ... bench: 1,414,779.55 ns/iter (+/- 6,409.73) +test fmt::write_vec_ref ... bench: 10,659.49 ns/iter (+/- 42.92) +test fmt::write_vec_value ... bench: 9,779.21 ns/iter (+/- 45.69) +test hash::sip::bench_bytes_4 ... bench: 29.88 ns/iter (+/- 1.02) = 137 MB/s +test hash::sip::bench_bytes_7 ... bench: 29.90 ns/iter (+/- 1.78) = 241 MB/s +test hash::sip::bench_bytes_8 ... bench: 35.91 ns/iter (+/- 1.39) = 228 MB/s +test hash::sip::bench_bytes_a_16 ... bench: 44.88 ns/iter (+/- 1.63) = 363 MB/s +test hash::sip::bench_bytes_b_32 ... bench: 62.51 ns/iter (+/- 1.42) = 516 MB/s +test hash::sip::bench_bytes_c_128 ... bench: 184.00 ns/iter (+/- 12.76) = 699 MB/s +test hash::sip::bench_long_str ... bench: 489.84 ns/iter (+/- 24.75) +test hash::sip::bench_str_of_8_bytes ... bench: 39.19 ns/iter (+/- 1.22) +test hash::sip::bench_str_over_8_bytes ... bench: 39.44 ns/iter (+/- 1.49) +test hash::sip::bench_str_under_8_bytes ... bench: 32.29 ns/iter (+/- 1.33) +test hash::sip::bench_u32 ... bench: 29.89 ns/iter (+/- 0.85) = 275 MB/s +test hash::sip::bench_u32_keyed ... bench: 30.38 ns/iter (+/- 1.02) = 266 MB/s +test hash::sip::bench_u64 ... bench: 36.29 ns/iter (+/- 1.34) = 222 MB/s +test iter::bench_chain_partial_cmp ... bench: 2,752,467.75 ns/iter (+/- 36,426.03) +test iter::bench_cycle_skip_take_ref_sum ... bench: 9,426,490.90 ns/iter (+/- 34,461.88) +test iter::bench_cycle_skip_take_sum ... bench: 9,218,999.00 ns/iter (+/- 39,879.94) +test iter::bench_cycle_take_ref_sum ... bench: 9,416,492.00 ns/iter (+/- 30,919.48) +test iter::bench_cycle_take_skip_ref_sum ... bench: 8,675,376.90 ns/iter (+/- 183,766.13) +test iter::bench_cycle_take_skip_sum ... bench: 8,659,503.80 ns/iter (+/- 389,677.53) +test iter::bench_cycle_take_sum ... bench: 9,201,793.10 ns/iter (+/- 30,024.05) +test iter::bench_enumerate_chain_ref_sum ... bench: 28,294,421.90 ns/iter (+/- 60,439.88) +test iter::bench_enumerate_chain_sum ... bench: 28,357,442.90 ns/iter (+/- 316,904.45) +test iter::bench_enumerate_ref_sum ... bench: 14,315,912.40 ns/iter (+/- 217,129.14) +test iter::bench_enumerate_sum ... bench: 14,106,894.70 ns/iter (+/- 36,110.40) +test iter::bench_filter_chain_count ... bench: 17,526,403.00 ns/iter (+/- 212,124.14) +test iter::bench_filter_chain_ref_count ... bench: 17,979,275.50 ns/iter (+/- 393,337.64) +test iter::bench_filter_chain_ref_sum ... bench: 16,121,509.60 ns/iter (+/- 41,064.65) +test iter::bench_filter_chain_sum ... bench: 15,671,442.70 ns/iter (+/- 214,282.48) +test iter::bench_filter_count ... bench: 8,769,852.55 ns/iter (+/- 21,239.57) +test iter::bench_filter_map_chain_ref_sum ... bench: 29,070,400.00 ns/iter (+/- 60,742.57) +test iter::bench_filter_map_chain_sum ... bench: 28,661,243.90 ns/iter (+/- 162,062.48) +test iter::bench_filter_map_ref_sum ... bench: 14,738,854.70 ns/iter (+/- 39,962.90) +test iter::bench_filter_map_sum ... bench: 14,340,920.60 ns/iter (+/- 187,115.58) +test iter::bench_filter_ref_count ... bench: 8,975,094.95 ns/iter (+/- 16,100.25) +test iter::bench_filter_ref_sum ... bench: 8,264,608.60 ns/iter (+/- 25,863.83) +test iter::bench_filter_sum ... bench: 7,835,209.20 ns/iter (+/- 11,831.58) +test iter::bench_flat_map_chain_ref_sum ... bench: 33,051,144.40 ns/iter (+/- 311,654.64) +test iter::bench_flat_map_chain_sum ... bench: 26,563,128.30 ns/iter (+/- 290,787.09) +test iter::bench_flat_map_ref_sum ... bench: 7,726,461.20 ns/iter (+/- 11,376.42) +test iter::bench_flat_map_sum ... bench: 7,489,001.10 ns/iter (+/- 9,025.24) +test iter::bench_for_each_chain_fold ... bench: 14,527,576.10 ns/iter (+/- 431,740.73) +test iter::bench_for_each_chain_loop ... bench: 17,762,182.20 ns/iter (+/- 80,648.92) +test iter::bench_for_each_chain_ref_fold ... bench: 14,975,018.40 ns/iter (+/- 41,294.35) +test iter::bench_fuse_chain_ref_sum ... bench: 15,403,869.40 ns/iter (+/- 27,089.28) +test iter::bench_fuse_chain_sum ... bench: 14,954,830.80 ns/iter (+/- 240,318.56) +test iter::bench_fuse_ref_sum ... bench: 7,688,841.25 ns/iter (+/- 8,224.76) +test iter::bench_fuse_sum ... bench: 7,478,862.25 ns/iter (+/- 11,469.98) +test iter::bench_inspect_chain_ref_sum ... bench: 16,686,310.10 ns/iter (+/- 37,046.79) +test iter::bench_inspect_chain_sum ... bench: 15,807,657.90 ns/iter (+/- 214,018.42) +test iter::bench_inspect_ref_sum ... bench: 8,545,639.80 ns/iter (+/- 13,070.70) +test iter::bench_inspect_sum ... bench: 7,902,843.70 ns/iter (+/- 7,965.66) +test iter::bench_lt ... bench: 2,750,559.30 ns/iter (+/- 28,396.48) +test iter::bench_max ... bench: 1,629.04 ns/iter (+/- 24.77) +test iter::bench_max_by_key ... bench: 3,133.06 ns/iter (+/- 120.66) +test iter::bench_max_by_key2 ... bench: 44,538.85 ns/iter (+/- 769.28) +test iter::bench_multiple_take ... bench: 2,031.14 ns/iter (+/- 112.03) +test iter::bench_next_chunk_copied ... bench: 1,572.39 ns/iter (+/- 12.16) +test iter::bench_next_chunk_filter_even ... bench: 228.24 ns/iter (+/- 8.56) +test iter::bench_next_chunk_filter_mostly_false ... bench: 3,225.50 ns/iter (+/- 61.58) +test iter::bench_next_chunk_filter_predictably_true ... bench: 128.72 ns/iter (+/- 4.50) +test iter::bench_next_chunk_trusted_random_access ... bench: 1,710.53 ns/iter (+/- 246.39) +test iter::bench_partial_cmp ... bench: 2,750,685.25 ns/iter (+/- 55,791.02) +test iter::bench_peekable_chain_ref_sum ... bench: 15,402,590.50 ns/iter (+/- 441,801.95) +test iter::bench_peekable_chain_sum ... bench: 14,972,759.60 ns/iter (+/- 30,933.04) +test iter::bench_peekable_ref_sum ... bench: 7,713,907.90 ns/iter (+/- 16,906.01) +test iter::bench_peekable_sum ... bench: 7,480,594.05 ns/iter (+/- 12,903.43) +test iter::bench_range_step_by_fold_u16 ... bench: 1,779.52 ns/iter (+/- 105.86) +test iter::bench_range_step_by_fold_usize ... bench: 1,763.96 ns/iter (+/- 6.51) +test iter::bench_range_step_by_loop_u32 ... bench: 10,342.41 ns/iter (+/- 7,051.64) +test iter::bench_range_step_by_sum_reducible ... bench: 796.24 ns/iter (+/- 10.32) +test iter::bench_rposition ... bench: 263.63 ns/iter (+/- 3.32) +test iter::bench_skip_chain_ref_sum ... bench: 15,829,729.60 ns/iter (+/- 455,102.29) +test iter::bench_skip_chain_sum ... bench: 15,179,200.70 ns/iter (+/- 35,640.32) +test iter::bench_skip_cycle_skip_zip_add_ref_sum ... bench: 21,081,493.70 ns/iter (+/- 194,993.93) +test iter::bench_skip_cycle_skip_zip_add_sum ... bench: 20,872,517.20 ns/iter (+/- 546,686.02) +test iter::bench_skip_ref_sum ... bench: 7,897,145.80 ns/iter (+/- 221,321.11) +test iter::bench_skip_sum ... bench: 7,474,533.80 ns/iter (+/- 17,733.42) +test iter::bench_skip_then_zip ... bench: 806.37 ns/iter (+/- 68.28) +test iter::bench_skip_trusted_random_access ... bench: 65,618.56 ns/iter (+/- 214.92) +test iter::bench_skip_while ... bench: 1,533.78 ns/iter (+/- 245.25) +test iter::bench_skip_while_chain_ref_sum ... bench: 15,838,480.10 ns/iter (+/- 450,971.86) +test iter::bench_skip_while_chain_sumrunning 472 tests +test any::bench_downcast_ref ... bench: 7.21 ns/iter (+/- 0.63) +test array::map_8byte_256byte_256 ... bench: 47,518.21 ns/iter (+/- 1,370.78) +test array::map_8byte_8byte_256 ... bench: 7,824.19 ns/iter (+/- 91.05) +test array::map_8byte_8byte_64 ... bench: 1,806.18 ns/iter (+/- 149.57) +test array::map_8byte_8byte_8 ... bench: 231.80 ns/iter (+/- 7.35) +test ascii::bench_ascii_escape_display_mixed ... bench: 16,993.89 ns/iter (+/- 279.72) +test ascii::bench_ascii_escape_display_no_escape ... bench: 472.90 ns/iter (+/- 73.80) +test ascii::is_ascii::long::case00_libcore ... bench: 18.59 ns/iter (+/- 1.14) = 388333 MB/s +test ascii::is_ascii::long::case01_iter_all ... bench: 172.51 ns/iter (+/- 4.53) = 40639 MB/s +test ascii::is_ascii::long::case02_align_to ... bench: 41.11 ns/iter (+/- 8.01) = 170487 MB/s +test ascii::is_ascii::long::case03_align_to_unrolled ... bench: 32.03 ns/iter (+/- 1.51) = 218437 MB/s +test ascii::is_ascii::medium::case00_libcore ... bench: 4.98 ns/iter (+/- 0.09) = 8000 MB/s +test ascii::is_ascii::medium::case01_iter_all ... bench: 36.53 ns/iter (+/- 7.29) = 888 MB/s +test ascii::is_ascii::medium::case02_align_to ... bench: 12.44 ns/iter (+/- 1.39) = 2666 MB/s +test ascii::is_ascii::medium::case03_align_to_unrolled ... bench: 11.48 ns/iter (+/- 0.32) = 2909 MB/s +test ascii::is_ascii::short::case00_libcore ... bench: 27.65 ns/iter (+/- 0.40) = 259 MB/s +test ascii::is_ascii::short::case01_iter_all ... bench: 9.33 ns/iter (+/- 1.50) = 777 MB/s +test ascii::is_ascii::short::case02_align_to ... bench: 9.85 ns/iter (+/- 2.21) = 777 MB/s +test ascii::is_ascii::short::case03_align_to_unrolled ... bench: 10.24 ns/iter (+/- 0.91) = 700 MB/s +test ascii::is_ascii::unaligned_both::case00_libcore ... bench: 5.73 ns/iter (+/- 0.25) = 6000 MB/s +test ascii::is_ascii::unaligned_both::case01_iter_all ... bench: 29.10 ns/iter (+/- 2.94) = 1034 MB/s +test ascii::is_ascii::unaligned_both::case02_align_to ... bench: 23.96 ns/iter (+/- 1.29) = 1304 MB/s +test ascii::is_ascii::unaligned_both::case03_align_to_unrolled ... bench: 23.90 ns/iter (+/- 1.56) = 1304 MB/s +test ascii::is_ascii::unaligned_head::case00_libcore ... bench: 5.19 ns/iter (+/- 0.11) = 6200 MB/s +test ascii::is_ascii::unaligned_head::case01_iter_all ... bench: 32.02 ns/iter (+/- 3.54) = 968 MB/s +test ascii::is_ascii::unaligned_head::case02_align_to ... bench: 17.42 ns/iter (+/- 0.85) = 1823 MB/s +test ascii::is_ascii::unaligned_head::case03_align_to_unrolled ... bench: 23.88 ns/iter (+/- 1.49) = 1347 MB/s +test ascii::is_ascii::unaligned_tail::case00_libcore ... bench: 5.79 ns/iter (+/- 0.26) = 6200 MB/s +test ascii::is_ascii::unaligned_tail::case01_iter_all ... bench: 33.63 ns/iter (+/- 1.43) = 939 MB/s +test ascii::is_ascii::unaligned_tail::case02_align_to ... bench: 19.43 ns/iter (+/- 0.99) = 1631 MB/s +test ascii::is_ascii::unaligned_tail::case03_align_to_unrolled ... bench: 24.57 ns/iter (+/- 2.19) = 1291 MB/s +test ascii::long::case00_alloc_only ... bench: 127.55 ns/iter (+/- 0.89) = 55039 MB/s +test ascii::long::case01_black_box_read_each_byte ... bench: 3,613.43 ns/iter (+/- 209.40) = 1934 MB/s +test ascii::long::case02_lookup_table ... bench: 22,522.75 ns/iter (+/- 16.61) = 310 MB/s +test ascii::long::case03_branch_and_subtract ... bench: 12,398.83 ns/iter (+/- 3,157.67) = 563 MB/s +test ascii::long::case04_branch_and_mask ... bench: 18,580.72 ns/iter (+/- 7,015.55) = 376 MB/s +test ascii::long::case05_branchless ... bench: 11,624.02 ns/iter (+/- 5,237.58) = 601 MB/s +test ascii::long::case06_libcore ... bench: 9,387.19 ns/iter (+/- 775.50) = 744 MB/s +test ascii::long::case07_fake_simd_u32 ... bench: 3,123.10 ns/iter (+/- 40.10) = 2238 MB/s +test ascii::long::case08_fake_simd_u64 ... bench: 1,450.70 ns/iter (+/- 308.73) = 4820 MB/s +test ascii::long::case09_mask_mult_bool_branchy_lookup_table ... bench: 16,156.47 ns/iter (+/- 72.19) = 432 MB/s +test ascii::long::case10_mask_mult_bool_lookup_table ... bench: 12,417.80 ns/iter (+/- 121.16) = 562 MB/s +test ascii::long::case11_mask_mult_bool_match_range ... bench: 10,923.45 ns/iter (+/- 516.37) = 639 MB/s +test ascii::long::case12_mask_shifted_bool_match_range ... bench: 11,061.35 ns/iter (+/- 2,340.49) = 631 MB/s +test ascii::long::case13_subtract_shifted_bool_match_range ... bench: 10,896.45 ns/iter (+/- 280.64) = 641 MB/s +test ascii::long::case14_subtract_multiplied_bool_match_range ... bench: 13,693.13 ns/iter (+/- 2,479.63) = 510 MB/s +test ascii::long::is_ascii ... bench: 272.73 ns/iter (+/- 2.46) = 25698 MB/s +test ascii::long::is_ascii_alphabetic ... bench: 126.20 ns/iter (+/- 16.10) = 55476 MB/s +test ascii::long::is_ascii_alphanumeric ... bench: 122.52 ns/iter (+/- 12.47) = 57295 MB/s +test ascii::long::is_ascii_control ... bench: 127.27 ns/iter (+/- 16.63) = 55039 MB/s +test ascii::long::is_ascii_digit ... bench: 111.07 ns/iter (+/- 0.19) = 62972 MB/s +test ascii::long::is_ascii_graphic ... bench: 111.05 ns/iter (+/- 0.70) = 62972 MB/s +test ascii::long::is_ascii_hexdigit ... bench: 122.76 ns/iter (+/- 12.65) = 57295 MB/s +test ascii::long::is_ascii_lowercase ... bench: 122.04 ns/iter (+/- 9.18) = 57295 MB/s +test ascii::long::is_ascii_punctuation ... bench: 125.31 ns/iter (+/- 12.17) = 55920 MB/s +test ascii::long::is_ascii_uppercase ... bench: 124.50 ns/iter (+/- 11.36) = 56370 MB/s +test ascii::long::is_ascii_whitespace ... bench: 114.70 ns/iter (+/- 2.55) = 61315 MB/s +test ascii::medium::case00_alloc_only ... bench: 47.78 ns/iter (+/- 0.81) = 680 MB/s +test ascii::medium::case01_black_box_read_each_byte ... bench: 66.85 ns/iter (+/- 6.36) = 484 MB/s +test ascii::medium::case02_lookup_table ... bench: 147.58 ns/iter (+/- 1.50) = 217 MB/s +test ascii::medium::case03_branch_and_subtract ... bench: 76.00 ns/iter (+/- 3.64) = 426 MB/s +test ascii::medium::case04_branch_and_mask ... bench: 269.05 ns/iter (+/- 12.55) = 118 MB/s +test ascii::medium::case05_branchless ... bench: 80.84 ns/iter (+/- 2.54) = 400 MB/s +test ascii::medium::case06_libcore ... bench: 71.97 ns/iter (+/- 3.58) = 450 MB/s +test ascii::medium::case07_fake_simd_u32 ... bench: 55.78 ns/iter (+/- 4.93) = 581 MB/s +test ascii::medium::case08_fake_simd_u64 ... bench: 93.62 ns/iter (+/- 44.45) = 344 MB/s +test ascii::medium::case09_mask_mult_bool_branchy_lookup_table ... bench: 103.95 ns/iter (+/- 18.37) = 310 MB/s +test ascii::medium::case10_mask_mult_bool_lookup_table ... bench: 99.72 ns/iter (+/- 7.72) = 323 MB/s +test ascii::medium::case11_mask_mult_bool_match_range ... bench: 76.81 ns/iter (+/- 2.81) = 421 MB/s +test ascii::medium::case12_mask_shifted_bool_match_range ... bench: 76.93 ns/iter (+/- 3.74) = 421 MB/s +test ascii::medium::case13_subtract_shifted_bool_match_range ... bench: 81.27 ns/iter (+/- 5.79) = 395 MB/s +test ascii::medium::case14_subtract_multiplied_bool_match_range ... bench: 81.19 ns/iter (+/- 1.65) = 395 MB/s +test ascii::medium::is_ascii ... bench: 68.04 ns/iter (+/- 2.24) = 470 MB/s +test ascii::medium::is_ascii_alphabetic ... bench: 48.18 ns/iter (+/- 1.56) = 666 MB/s +test ascii::medium::is_ascii_alphanumeric ... bench: 50.50 ns/iter (+/- 2.04) = 640 MB/s +test ascii::medium::is_ascii_control ... bench: 48.18 ns/iter (+/- 2.12) = 666 MB/s +test ascii::medium::is_ascii_digit ... bench: 47.85 ns/iter (+/- 1.49) = 680 MB/s +test ascii::medium::is_ascii_graphic ... bench: 56.64 ns/iter (+/- 13.42) = 571 MB/s +test ascii::medium::is_ascii_hexdigit ... bench: 49.10 ns/iter (+/- 1.46) = 653 MB/s +test ascii::medium::is_ascii_lowercase ... bench: 47.83 ns/iter (+/- 1.39) = 680 MB/s +test ascii::medium::is_ascii_punctuation ... bench: 54.21 ns/iter (+/- 8.89) = 592 MB/s +test ascii::medium::is_ascii_uppercase ... bench: 47.46 ns/iter (+/- 0.96) = 680 MB/s +test ascii::medium::is_ascii_whitespace ... bench: 47.38 ns/iter (+/- 1.72) = 680 MB/s +test ascii::short::case00_alloc_only ... bench: 48.61 ns/iter (+/- 0.72) = 145 MB/s +test ascii::short::case01_black_box_read_each_byte ... bench: 46.15 ns/iter (+/- 1.77) = 152 MB/s +test ascii::short::case02_lookup_table ... bench: 107.39 ns/iter (+/- 9.72) = 65 MB/s +test ascii::short::case03_branch_and_subtract ... bench: 48.21 ns/iter (+/- 0.99) = 145 MB/s +test ascii::short::case04_branch_and_mask ... bench: 48.22 ns/iter (+/- 0.42) = 145 MB/s +test ascii::short::case05_branchless ... bench: 49.44 ns/iter (+/- 1.47) = 142 MB/s +test ascii::short::case06_libcore ... bench: 49.88 ns/iter (+/- 2.16) = 142 MB/s +test ascii::short::case07_fake_simd_u32 ... bench: 51.57 ns/iter (+/- 2.53) = 137 MB/s +test ascii::short::case08_fake_simd_u64 ... bench: 54.05 ns/iter (+/- 4.47) = 129 MB/s +test ascii::short::case09_mask_mult_bool_branchy_lookup_table ... bench: 50.29 ns/iter (+/- 2.25) = 140 MB/s +test ascii::short::case10_mask_mult_bool_lookup_table ... bench: 49.76 ns/iter (+/- 0.51) = 142 MB/s +test ascii::short::case11_mask_mult_bool_match_range ... bench: 48.74 ns/iter (+/- 0.63) = 145 MB/s +test ascii::short::case12_mask_shifted_bool_match_range ... bench: 48.76 ns/iter (+/- 4.02) = 145 MB/s +test ascii::short::case13_subtract_shifted_bool_match_range ... bench: 48.36 ns/iter (+/- 0.47) = 145 MB/s +test ascii::short::case14_subtract_multiplied_bool_match_range ... bench: 48.50 ns/iter (+/- 1.08) = 145 MB/s +test ascii::short::is_ascii ... bench: 47.94 ns/iter (+/- 2.27) = 148 MB/s +test ascii::short::is_ascii_alphabetic ... bench: 48.21 ns/iter (+/- 1.93) = 145 MB/s +test ascii::short::is_ascii_alphanumeric ... bench: 50.34 ns/iter (+/- 0.92) = 140 MB/s +test ascii::short::is_ascii_control ... bench: 46.97 ns/iter (+/- 2.08) = 152 MB/s +test ascii::short::is_ascii_digit ... bench: 46.87 ns/iter (+/- 0.93) = 152 MB/s +test ascii::short::is_ascii_graphic ... bench: 48.41 ns/iter (+/- 2.18) = 145 MB/s +test ascii::short::is_ascii_hexdigit ... bench: 48.55 ns/iter (+/- 2.05) = 145 MB/s +test ascii::short::is_ascii_lowercase ... bench: 52.88 ns/iter (+/- 7.95) = 134 MB/s +test ascii::short::is_ascii_punctuation ... bench: 47.19 ns/iter (+/- 1.67) = 148 MB/s +test ascii::short::is_ascii_uppercase ... bench: 47.58 ns/iter (+/- 2.43) = 148 MB/s +test ascii::short::is_ascii_whitespace ... bench: 47.18 ns/iter (+/- 2.88) = 148 MB/s +test char::methods::bench_ascii_char_to_lowercase ... bench: 243,535.35 ns/iter (+/- 6,900.28) +test char::methods::bench_ascii_char_to_uppercase ... bench: 243,035.12 ns/iter (+/- 1,811.77) +test char::methods::bench_ascii_mix_to_lowercase ... bench: 307,041.35 ns/iter (+/- 2,616.27) +test char::methods::bench_ascii_mix_to_uppercase ... bench: 307,205.45 ns/iter (+/- 3,348.47) +test char::methods::bench_non_ascii_char_to_lowercase ... bench: 371,823.70 ns/iter (+/- 6,177.12) +test char::methods::bench_non_ascii_char_to_uppercase ... bench: 373,393.70 ns/iter (+/- 15,155.82) +test char::methods::bench_to_ascii_lowercase ... bench: 87,509.73 ns/iter (+/- 3,666.82) +test char::methods::bench_to_ascii_uppercase ... bench: 85,383.86 ns/iter (+/- 3,898.56) +test char::methods::bench_to_digit_radix_10 ... bench: 243,527.33 ns/iter (+/- 2,941.04) +test char::methods::bench_to_digit_radix_16 ... bench: 253,300.27 ns/iter (+/- 5,388.01) +test char::methods::bench_to_digit_radix_2 ... bench: 224,488.67 ns/iter (+/- 10,814.74) +test char::methods::bench_to_digit_radix_36 ... bench: 275,449.03 ns/iter (+/- 2,335.19) +test char::methods::bench_to_digit_radix_var ... bench: 177,453.65 ns/iter (+/- 5,756.21) +test fmt::write_str_macro1 ... bench: 29,849.13 ns/iter (+/- 452.27) +test fmt::write_str_macro2 ... bench: 30,889.88 ns/iter (+/- 549.75) +test fmt::write_str_macro_debug ... bench: 1,401,808.95 ns/iter (+/- 4,045.97) +test fmt::write_str_macro_debug_ascii ... bench: 61,459.99 ns/iter (+/- 2,368.39) +test fmt::write_str_ref ... bench: 17,442.01 ns/iter (+/- 584.54) +test fmt::write_str_value ... bench: 8,053.69 ns/iter (+/- 33.05) +test fmt::write_u128_max ... bench: 187.90 ns/iter (+/- 1.60) +test fmt::write_u128_min ... bench: 51.10 ns/iter (+/- 1.30) +test fmt::write_u64_max ... bench: 133.11 ns/iter (+/- 14.34) +test fmt::write_u64_min ... bench: 51.08 ns/iter (+/- 1.75) +test fmt::write_vec_macro1 ... bench: 30,214.40 ns/iter (+/- 1,440.13) +test fmt::write_vec_macro2 ... bench: 30,312.21 ns/iter (+/- 687.77) +test fmt::write_vec_macro_debug ... bench: 1,453,625.35 ns/iter (+/- 6,588.74) +test fmt::write_vec_ref ... bench: 10,691.38 ns/iter (+/- 134.69) +test fmt::write_vec_value ... bench: 9,829.46 ns/iter (+/- 86.29) +test hash::sip::bench_bytes_4 ... bench: 30.22 ns/iter (+/- 0.95) = 133 MB/s +test hash::sip::bench_bytes_7 ... bench: 30.75 ns/iter (+/- 1.52) = 233 MB/s +test hash::sip::bench_bytes_8 ... bench: 36.40 ns/iter (+/- 1.82) = 222 MB/s +test hash::sip::bench_bytes_a_16 ... bench: 43.96 ns/iter (+/- 1.17) = 372 MB/s +test hash::sip::bench_bytes_b_32 ... bench: 67.72 ns/iter (+/- 2.07) = 477 MB/s +test hash::sip::bench_bytes_c_128 ... bench: 184.45 ns/iter (+/- 12.44) = 695 MB/s +test hash::sip::bench_long_str ... bench: 483.59 ns/iter (+/- 20.37) +test hash::sip::bench_str_of_8_bytes ... bench: 37.38 ns/iter (+/- 1.34) +test hash::sip::bench_str_over_8_bytes ... bench: 37.40 ns/iter (+/- 1.08) +test hash::sip::bench_str_under_8_bytes ... bench: 31.72 ns/iter (+/- 1.64) +test hash::sip::bench_u32 ... bench: 30.34 ns/iter (+/- 0.95) = 266 MB/s +test hash::sip::bench_u32_keyed ... bench: 32.82 ns/iter (+/- 1.06) = 250 MB/s +test hash::sip::bench_u64 ... bench: 37.49 ns/iter (+/- 1.10) = 216 MB/s +test iter::bench_chain_partial_cmp ... bench: 2,263,557.25 ns/iter (+/- 18,303.49) +test iter::bench_cycle_skip_take_ref_sum ... bench: 8,153,562.05 ns/iter (+/- 20,763.72) +test iter::bench_cycle_skip_take_sum ... bench: 7,947,809.25 ns/iter (+/- 34,035.96) +test iter::bench_cycle_take_ref_sum ... bench: 8,141,788.75 ns/iter (+/- 19,788.75) +test iter::bench_cycle_take_skip_ref_sum ... bench: 7,334,504.35 ns/iter (+/- 24,209.32) +test iter::bench_cycle_take_skip_sum ... bench: 7,178,369.50 ns/iter (+/- 16,600.47) +test iter::bench_cycle_take_sum ... bench: 7,911,583.55 ns/iter (+/- 12,833.92) +test iter::bench_enumerate_chain_ref_sum ... bench: 27,037,100.70 ns/iter (+/- 37,710.87) +test iter::bench_enumerate_chain_sum ... bench: 26,538,541.70 ns/iter (+/- 92,839.30) +test iter::bench_enumerate_ref_sum ... bench: 14,956,501.20 ns/iter (+/- 928,489.36) +test iter::bench_enumerate_sum ... bench: 18,856,978.80 ns/iter (+/- 4,773,921.89) +test iter::bench_filter_chain_count ... bench: 16,409,451.60 ns/iter (+/- 50,939.84) +test iter::bench_filter_chain_ref_count ... bench: 16,741,921.70 ns/iter (+/- 48,883.56) +test iter::bench_filter_chain_ref_sum ... bench: 15,178,000.90 ns/iter (+/- 45,583.20) +test iter::bench_filter_chain_sum ... bench: 14,828,559.90 ns/iter (+/- 77,952.01) +test iter::bench_filter_count ... bench: 8,346,891.30 ns/iter (+/- 208,462.59) +test iter::bench_filter_map_chain_ref_sum ... bench: 27,971,826.90 ns/iter (+/- 541,466.81) +test iter::bench_filter_map_chain_sum ... bench: 27,468,454.60 ns/iter (+/- 795,289.89) +test iter::bench_filter_map_ref_sum ... bench: 14,206,644.10 ns/iter (+/- 664,367.23) +test iter::bench_filter_map_sum ... bench: 13,907,003.60 ns/iter (+/- 147,942.63) +test iter::bench_filter_ref_count ... bench: 8,383,451.45 ns/iter (+/- 203,993.99) +test iter::bench_filter_ref_sum ... bench: 7,861,609.70 ns/iter (+/- 293,279.94) +test iter::bench_filter_sum ... bench: 7,637,902.40 ns/iter (+/- 197,939.21) +test iter::bench_flat_map_chain_ref_sum ... bench: 38,049,400.40 ns/iter (+/- 1,112,211.96) +test iter::bench_flat_map_chain_sum ... bench: 25,866,209.30 ns/iter (+/- 509,495.53) +test iter::bench_flat_map_ref_sum ... bench: 7,303,482.20 ns/iter (+/- 17,455.35) +test iter::bench_flat_map_sum ... bench: 7,061,628.75 ns/iter (+/- 11,843.74) +test iter::bench_for_each_chain_fold ... bench: 13,671,342.20 ns/iter (+/- 77,933.63) +test iter::bench_for_each_chain_loop ... bench: 17,541,585.90 ns/iter (+/- 33,479.69) +test iter::bench_for_each_chain_ref_fold ... bench: 14,123,363.20 ns/iter (+/- 336,858.02) +test iter::bench_fuse_chain_ref_sum ... bench: 14,967,429.80 ns/iter (+/- 360,607.57) +test iter::bench_fuse_chain_sum ... bench: 14,528,920.70 ns/iter (+/- 20,100.32) +test iter::bench_fuse_ref_sum ... bench: 13,028,455.30 ns/iter (+/- 5,740,420.72) +test iter::bench_fuse_sum ... bench: 7,049,998.75 ns/iter (+/- 10,642.76) +test iter::bench_inspect_chain_ref_sum ... bench: 15,464,409.20 ns/iter (+/- 78,027.93) +test iter::bench_inspect_chain_sum ... bench: 15,023,542.90 ns/iter (+/- 262,082.28) +test iter::bench_inspect_ref_sum ... bench: 8,121,717.20 ns/iter (+/- 385,800.05) +test iter::bench_inspect_sum ... bench: 7,729,559.70 ns/iter (+/- 35,257.47) +test iter::bench_lt ... bench: 2,263,499.00 ns/iter (+/- 24,569.67) +test iter::bench_max ... bench: 896.18 ns/iter (+/- 6.00) +test iter::bench_max_by_key ... bench: 2,681.37 ns/iter (+/- 99.61) +test iter::bench_max_by_key2 ... bench: 88,357.90 ns/iter (+/- 901.25) +test iter::bench_multiple_take ... bench: 1,933.21 ns/iter (+/- 38.52) +test iter::bench_next_chunk_copied ... bench: 1,596.08 ns/iter (+/- 3.43) +test iter::bench_next_chunk_filter_even ... bench: 155.15 ns/iter (+/- 5.55) +test iter::bench_next_chunk_filter_mostly_false ... bench: 1,850.91 ns/iter (+/- 42.76) +test iter::bench_next_chunk_filter_predictably_true ... bench: 91.46 ns/iter (+/- 3.15) +test iter::bench_next_chunk_trusted_random_access ... bench: 1,346.53 ns/iter (+/- 122.68) +test iter::bench_partial_cmp ... bench: 2,263,883.17 ns/iter (+/- 20,597.89) +test iter::bench_peekable_chain_ref_sum ... bench: 14,571,747.50 ns/iter (+/- 625,491.87) +test iter::bench_peekable_chain_sum ... bench: 14,146,755.30 ns/iter (+/- 135,259.69) +test iter::bench_peekable_ref_sum ... bench: 7,291,130.40 ns/iter (+/- 26,339.79) +test iter::bench_peekable_sum ... bench: 7,049,952.35 ns/iter (+/- 9,933.69) +test iter::bench_range_step_by_fold_u16 ... bench: 1,651.89 ns/iter (+/- 44.84) +test iter::bench_range_step_by_fold_usize ... bench: 1,541.62 ns/iter (+/- 3.61) +test iter::bench_range_step_by_loop_u32 ... bench: 6,365.81 ns/iter (+/- 7.08) +test iter::bench_range_step_by_sum_reducible ... bench: 796.36 ns/iter (+/- 7.85) +test iter::bench_rposition ... bench: 192.41 ns/iter (+/- 37.19) +test iter::bench_skip_chain_ref_sum ... bench: 14,546,851.00 ns/iter (+/- 43,678.79) +test iter::bench_skip_chain_sum ... bench: 14,546,863.90 ns/iter (+/- 358,926.37) +test iter::bench_skip_cycle_skip_zip_add_ref_sum ... bench: 19,413,910.10 ns/iter (+/- 123,483.37) +test iter::bench_skip_cycle_skip_zip_add_sum ... bench: 19,244,385.60 ns/iter (+/- 121,358.71) +test iter::bench_skip_ref_sum ... bench: 8,751,556.80 ns/iter (+/- 1,455,497.61) +test iter::bench_skip_sum ... bench: 7,041,774.15 ns/iter (+/- 14,164.22) +test iter::bench_skip_then_zip ... bench: 724.69 ns/iter (+/- 35.35) +test iter::bench_skip_trusted_random_access ... bench: 45,616.96 ns/iter (+/- 18,464.12) +test iter::bench_skip_while ... bench: 694.05 ns/iter (+/- 17.01) +test iter::bench_skip_while_chain_ref_sum ... bench: 14,551,992.10 ns/iter (+/- 58,620.47) +test iter::bench_skip_while_chain_sum ... bench: 14,556,451.80 ns/iter (+/- 358,132.12) +test iter::bench_skip_while_ref_sum ... bench: 7,262,558.65 ns/iter (+/- 17,854.70) +test iter::bench_skip_while_sum ... bench: 7,266,156.20 ns/iter (+/- 12,905.92) +test iter::bench_take_while_chain_ref_sum ... bench: 8,708,763.40 ns/iter (+/- 170,073.01) +test iter::bench_take_while_chain_sum ... bench: 8,358,689.20 ns/iter (+/- 57,460.54) +test iter::bench_trusted_random_access_adapters ... bench: 555,548.50 ns/iter (+/- 558.73) +test iter::bench_zip_add ... bench: 12,287.89 ns/iter (+/- 174.07) +test iter::bench_zip_copy ... bench: 12,085.51 ns/iter (+/- 471.04) +test iter::bench_zip_then_skip ... bench: 2,756.38 ns/iter (+/- 59.85) +test net::addr_parser::bench_parse_ipaddr_v4 ... bench: 198.75 ns/iter (+/- 7.68) +test net::addr_parser::bench_parse_ipaddr_v6_compress ... bench: 565.30 ns/iter (+/- 10.93) +test net::addr_parser::bench_parse_ipaddr_v6_full ... bench: 795.81 ns/iter (+/- 13.40) +test net::addr_parser::bench_parse_ipaddr_v6_v4 ... bench: 579.28 ns/iter (+/- 17.31) +test net::addr_parser::bench_parse_ipv4 ... bench: 192.66 ns/iter (+/- 6.56) +test net::addr_parser::bench_parse_ipv6_compress ... bench: 490.70 ns/iter (+/- 17.51) +test net::addr_parser::bench_parse_ipv6_full ... bench: 719.26 ns/iter (+/- 8.23) +test net::addr_parser::bench_parse_ipv6_v4 ... bench: 504.84 ns/iter (+/- 13.75) +test net::addr_parser::bench_parse_socket_v4 ... bench: 396.93 ns/iter (+/- 97.12) +test net::addr_parser::bench_parse_socket_v6 ... bench: 650.73 ns/iter (+/- 19.12) +test net::addr_parser::bench_parse_socket_v6_scope_id ... bench: 783.53 ns/iter (+/- 89.03) +test net::addr_parser::bench_parse_socketaddr_v4 ... bench: 345.09 ns/iter (+/- 17.52) +test net::addr_parser::bench_parse_socketaddr_v6 ... bench: 702.46 ns/iter (+/- 9.62) +test num::bench_i16_from_str ... bench: 236,360.33 ns/iter (+/- 6,391.93) +test num::bench_i16_from_str_radix_10 ... bench: 236,316.48 ns/iter (+/- 8,201.81) +test num::bench_i16_from_str_radix_16 ... bench: 264,095.08 ns/iter (+/- 4,124.94) +test num::bench_i16_from_str_radix_2 ... bench: 93,017.98 ns/iter (+/- 3,963.07) +test num::bench_i16_from_str_radix_36 ... bench: 289,267.00 ns/iter (+/- 3,750.70) +test num::bench_i32_from_str ... bench: 204,103.62 ns/iter (+/- 3,414.25) +test num::bench_i32_from_str_radix_10 ... bench: 252,533.30 ns/iter (+/- 105,242.44) +test num::bench_i32_from_str_radix_16 ... bench: 225,272.15 ns/iter (+/- 3,052.66) +test num::bench_i32_from_str_radix_2 ... bench: 166,890.40 ns/iter (+/- 8,286.95) +test num::bench_i32_from_str_radix_36 ... bench: 394,905.95 ns/iter (+/- 2,027.92) +test num::bench_i64_from_str ... bench: 113,038.45 ns/iter (+/- 3,283.69) +test num::bench_i64_from_str_radix_10 ... bench: 112,884.18 ns/iter (+/- 2,914.14) +test num::bench_i64_from_str_radix_16 ... bench: 137,581.08 ns/iter (+/- 2,526.18) +test num::bench_i64_from_str_radix_2 ... bench: 250,164.70 ns/iter (+/- 201,968.95) +test num::bench_i64_from_str_radix_36 ... bench: 513,279.38 ns/iter (+/- 1,765.53) +test num::bench_i8_from_str ... bench: 132,656.77 ns/iter (+/- 2,148.16) +test num::bench_i8_from_str_radix_10 ... bench: 134,356.24 ns/iter (+/- 984.01) +test num::bench_i8_from_str_radix_16 ... bench: 138,667.17 ns/iter (+/- 1,873.77) +test num::bench_i8_from_str_radix_2 ... bench: 83,275.07 ns/iter (+/- 3,399.45) +test num::bench_i8_from_str_radix_36 ... bench: 261,246.90 ns/iter (+/- 137,084.84) +test num::bench_u16_from_str ... bench: 177,668.52 ns/iter (+/- 2,297.22) +test num::bench_u16_from_str_radix_10 ... bench: 276,365.80 ns/iter (+/- 105,352.40) +test num::bench_u16_from_str_radix_16 ... bench: 202,847.80 ns/iter (+/- 2,374.43) +test num::bench_u16_from_str_radix_2 ... bench: 86,406.93 ns/iter (+/- 2,133.26) +test num::bench_u16_from_str_radix_36 ... bench: 213,488.75 ns/iter (+/- 1,823.23) +test num::bench_u32_from_str ... bench: 156,650.83 ns/iter (+/- 6,402.58) +test num::bench_u32_from_str_radix_10 ... bench: 248,978.45 ns/iter (+/- 97,066.12) +test num::bench_u32_from_str_radix_16 ... bench: 274,257.30 ns/iter (+/- 98,026.59) +test num::bench_u32_from_str_radix_2 ... bench: 71,465.75 ns/iter (+/- 1,493.39) +test num::bench_u32_from_str_radix_36 ... bench: 259,844.90 ns/iter (+/- 2,681.25) +test num::bench_u64_from_str ... bench: 104,973.05 ns/iter (+/- 2,869.93) +test num::bench_u64_from_str_radix_10 ... bench: 105,194.23 ns/iter (+/- 3,912.37) +test num::bench_u64_from_str_radix_16 ... bench: 124,543.12 ns/iter (+/- 2,853.62) +test num::bench_u64_from_str_radix_2 ... bench: 249,358.70 ns/iter (+/- 203,805.01) +test num::bench_u64_from_str_radix_36 ... bench: 255,110.83 ns/iter (+/- 2,060.18) +test num::bench_u8_from_str ... bench: 116,831.40 ns/iter (+/- 4,001.80) +test num::bench_u8_from_str_radix_10 ... bench: 239,412.55 ns/iter (+/- 121,854.24) +test num::bench_u8_from_str_radix_16 ... bench: 253,888.70 ns/iter (+/- 129,806.28) +test num::bench_u8_from_str_radix_2 ... bench: 75,818.74 ns/iter (+/- 2,534.39) +test num::bench_u8_from_str_radix_36 ... bench: 246,338.80 ns/iter (+/- 126,468.65) +test num::dec2flt::bench_0 ... bench: 48.48 ns/iter (+/- 1.46) +test num::dec2flt::bench_1e150 ... bench: 51.59 ns/iter (+/- 1.39) +test num::dec2flt::bench_42 ... bench: 39.74 ns/iter (+/- 0.28) +test num::dec2flt::bench_huge_int ... bench: 91.20 ns/iter (+/- 4.73) +test num::dec2flt::bench_long_decimal_and_exp ... bench: 103.63 ns/iter (+/- 4.16) +test num::dec2flt::bench_max ... bench: 69.91 ns/iter (+/- 3.04) +test num::dec2flt::bench_min_normal ... bench: 69.63 ns/iter (+/- 1.89) +test num::dec2flt::bench_min_subnormal ... bench: 53.39 ns/iter (+/- 1.03) +test num::dec2flt::bench_pi_long ... bench: 96.19 ns/iter (+/- 5.18) +test num::dec2flt::bench_pi_short ... bench: 66.85 ns/iter (+/- 4.92) +test num::dec2flt::bench_short_decimal ... bench: 78.41 ns/iter (+/- 24.72) +test num::flt2dec::bench_big_shortest ... bench: 187.25 ns/iter (+/- 1.16) +test num::flt2dec::bench_small_shortest ... bench: 164.01 ns/iter (+/- 0.67) +test num::flt2dec::strategy::dragon::bench_big_exact_12 ... bench: 14,178.06 ns/iter (+/- 110.69) +test num::flt2dec::strategy::dragon::bench_big_exact_3 ... bench: 5,079.44 ns/iter (+/- 99.74) test num::flt2dec::strategy::dragon::bench_big_exact_inf ... FAILED -test num::flt2dec::strategy::dragon::bench_big_shortest ... bench: 3,902.75 ns/iter (+/- 51.73) -test num::flt2dec::strategy::dragon::bench_small_exact_12 ... bench: 3,354.87 ns/iter (+/- 44.62) -test num::flt2dec::strategy::dragon::bench_small_exact_3 ... bench: 1,075.11 ns/iter (+/- 29.79) -test num::flt2dec::strategy::dragon::bench_small_exact_inf ... bench: 29,614.17 ns/iter (+/- 13,135.74) -test num::flt2dec::strategy::dragon::bench_small_shortest ... bench: 3,399.26 ns/iter (+/- 39.11) -test num::flt2dec::strategy::grisu::bench_big_exact_12 ... bench: 76.67 ns/iter (+/- 5.57) -test num::flt2dec::strategy::grisu::bench_big_exact_3 ... bench: 46.50 ns/iter (+/- 0.61) +test num::flt2dec::strategy::dragon::bench_big_shortest ... FAILED +test num::flt2dec::strategy::dragon::bench_small_exact_12 ... bench: 2,702.24 ns/iter (+/- 48.84) +test num::flt2dec::strategy::dragon::bench_small_exact_3 ... bench: 893.91 ns/iter (+/- 1.84) +test num::flt2dec::strategy::dragon::bench_small_exact_inf ... bench: 21,765.16 ns/iter (+/- 7,964.95) +test num::flt2dec::strategy::dragon::bench_small_shortest ... bench: 2,821.92 ns/iter (+/- 20.82) +test num::flt2dec::strategy::grisu::bench_big_exact_12 ... bench: 72.70 ns/iter (+/- 4.91) +test num::flt2dec::strategy::grisu::bench_big_exact_3 ... bench: 45.73 ns/iter (+/- 0.62) test num::flt2dec::strategy::grisu::bench_big_exact_inf ... FAILED -test num::flt2dec::strategy::grisu::bench_big_shortest ... bench: 86.68 ns/iter (+/- 1.81) -test num::flt2dec::strategy::grisu::bench_halfway_point_exact_inf ... bench: 3,083.50 ns/iter (+/- 46.99) -test num::flt2dec::strategy::grisu::bench_one_exact_inf ... bench: 3,070.26 ns/iter (+/- 63.80) -test num::flt2dec::strategy::grisu::bench_small_exact_12 ... bench: 59.57 ns/iter (+/- 6.88) -test num::flt2dec::strategy::grisu::bench_small_exact_3 ... bench: 41.97 ns/iter (+/- 0.71) -test num::flt2dec::strategy::grisu::bench_small_exact_inf ... bench: 16,972.45 ns/iter (+/- 254.68) -test num::flt2dec::strategy::grisu::bench_small_shortest ... bench: 68.08 ns/iter (+/- 5.57) -test num::flt2dec::strategy::grisu::bench_trailing_zero_exact_inf ... bench: 3,490.31 ns/iter (+/- 238.48) -test num::int_log::u128_log10_predictable ... bench: 106,561.85 ns/iter (+/- 33,288.80) -test num::int_log::u128_log10_random ... bench: 4,257.92 ns/iter (+/- 38.08) -test num::int_log::u128_log10_random_small ... bench: 1,603.43 ns/iter (+/- 45.38) -test num::int_log::u128_log_geometric ... bench: 366,824.53 ns/iter (+/- 991,035.71) -test num::int_log::u128_log_random ... bench: 6,935,705.00 ns/iter (+/- 58,871.50) -test num::int_log::u128_log_random_small ... bench: 4,250,236.10 ns/iter (+/- 90,761.17) -test num::int_log::u16_log10_predictable ... bench: 3,561.11 ns/iter (+/- 162.91) -test num::int_log::u16_log10_random ... bench: 240.72 ns/iter (+/- 8.99) -test num::int_log::u16_log10_random_small ... bench: 245.27 ns/iter (+/- 5.82) -test num::int_log::u16_log_geometric ... bench: 483.12 ns/iter (+/- 20.37) -test num::int_log::u16_log_random ... bench: 271,055.18 ns/iter (+/- 11,218.16) -test num::int_log::u16_log_random_small ... bench: 218,226.58 ns/iter (+/- 6,713.34) -test num::int_log::u32_log10_predictable ... bench: 4,983.13 ns/iter (+/- 145.71) -test num::int_log::u32_log10_random ... bench: 2,195.36 ns/iter (+/- 887.50) -test num::int_log::u32_log10_random_small ... bench: 1,383.84 ns/iter (+/- 44.46) -test num::int_log::u32_log_geometric ... bench: 827.93 ns/iter (+/- 21.21) -test num::int_log::u32_log_random ... bench: 338,926.72 ns/iter (+/- 6,314.52) -test num::int_log::u32_log_random_small ... bench: 211,804.05 ns/iter (+/- 2,773.07) -test num::int_log::u64_log10_predictable ... bench: 2,219.57 ns/iter (+/- 109.88) -test num::int_log::u64_log10_random ... bench: 729.11 ns/iter (+/- 23.98) -test num::int_log::u64_log10_random_small ... bench: 482.30 ns/iter (+/- 20.37) -test num::int_log::u64_log_geometric ... bench: 2,758.05 ns/iter (+/- 29.14) -test num::int_log::u64_log_random ... bench: 401,510.38 ns/iter (+/- 11,699.95) -test num::int_log::u64_log_random_small ... bench: 210,152.86 ns/iter (+/- 6,470.60) -test num::int_log::u8_log10_predictable ... bench: 657.45 ns/iter (+/- 8.02) -test num::int_log::u8_log10_random ... bench: 244.93 ns/iter (+/- 6.05) -test num::int_log::u8_log10_random_small ... bench: 242.09 ns/iter (+/- 2.00) -test num::int_log::u8_log_geometric ... bench: 193.98 ns/iter (+/- 18.09) -test num::int_log::u8_log_random ... bench: 221,440.35 ns/iter (+/- 3,984.31) -test num::int_log::u8_log_random_small ... bench: 189,841.94 ns/iter (+/- 4,331.00) -test num::int_pow::checked_pow_variable ... bench: 17,383.66 ns/iter (+/- 129.86) -test num::int_pow::overflowing_pow_variable ... bench: 17,922.43 ns/iter (+/- 278.85) -test num::int_pow::pow_m7 ... bench: 10,845.13 ns/iter (+/- 839.36) -test num::int_pow::pow_m8 ... bench: 10,767.34 ns/iter (+/- 847.10) -test num::int_pow::pow_variable ... bench: 9,691.51 ns/iter (+/- 89.20) -test num::int_pow::saturating_pow_variable ... bench: 17,625.75 ns/iter (+/- 480.65) -test num::int_pow::wrapping_pow_variable ... bench: 9,608.74 ns/iter (+/- 159.43) -test ops::alloc_obj_with_dtor ... bench: 0.20 ns/iter (+/- 0.01) -test pattern::ends_with_char ... bench: 9,605.37 ns/iter (+/- 298.43) -test pattern::ends_with_str ... bench: 19,933.53 ns/iter (+/- 585.08) -test pattern::starts_with_char ... bench: 10,285.71 ns/iter (+/- 162.05) -test pattern::starts_with_str ... bench: 20,470.29 ns/iter (+/- 416.28) -test slice::binary_search_l1 ... bench: 62.91 ns/iter (+/- 0.90) -test slice::binary_search_l1_with_dups ... bench: 45.96 ns/iter (+/- 0.85) -test slice::binary_search_l1_worst_case ... bench: 19.32 ns/iter (+/- 0.59) -test slice::binary_search_l2 ... bench: 100.26 ns/iter (+/- 13.99) -test slice::binary_search_l2_with_dups ... bench: 82.36 ns/iter (+/- 1.72) -test slice::binary_search_l2_worst_case ... bench: 25.77 ns/iter (+/- 0.76) -test slice::binary_search_l3 ... bench: 157.20 ns/iter (+/- 2.98) -test slice::binary_search_l3_with_dups ... bench: 158.36 ns/iter (+/- 35.21) -test slice::binary_search_l3_worst_case ... bench: 35.35 ns/iter (+/- 1.07) -test slice::fill_byte_sized ... bench: 711.72 ns/iter (+/- 196.90) -test slice::fold_to_last ... bench: 296.41 ns/iter (+/- 9.30) -test slice::rotate_16_usize_4 ... bench: 339.72 ns/iter (+/- 3.19) -test slice::rotate_16_usize_5 ... bench: 354.56 ns/iter (+/- 15.50) -test slice::rotate_64_usize_4 ... bench: 5,233.98 ns/iter (+/- 151.34) -test slice::rotate_64_usize_5 ... bench: 6,067.46 ns/iter (+/- 132.96) -test slice::rotate_rgb ... bench: 388.66 ns/iter (+/- 11.27) -test slice::rotate_u8 ... bench: 714.83 ns/iter (+/- 244.47) -test slice::rotate_usize ... bench: 400.82 ns/iter (+/- 9.95) -test slice::swap_with_slice_4x_usize_30 ... bench: 1,754.41 ns/iter (+/- 34.51) -test slice::swap_with_slice_4x_usize_3000 ... bench: 193,399.00 ns/iter (+/- 5,354.30) -test slice::swap_with_slice_5x_usize_30 ... bench: 2,131.63 ns/iter (+/- 27.18) -test slice::swap_with_slice_5x_usize_3000 ... bench: 241,595.65 ns/iter (+/- 5,671.23) -test slice::swap_with_slice_rgb_30 ... bench: 1,378.41 ns/iter (+/- 26.22) -test slice::swap_with_slice_rgb_3000 ... bench: 129,199.43 ns/iter (+/- 2,505.54) -test slice::swap_with_slice_u8_30 ... bench: 625.20 ns/iter (+/- 9.50) -test slice::swap_with_slice_u8_3000 ... bench: 43,266.03 ns/iter (+/- 615.07) -test slice::swap_with_slice_usize_30 ... bench: 621.89 ns/iter (+/- 23.23) -test slice::swap_with_slice_usize_3000 ... bench: 43,002.86 ns/iter (+/- 1,382.83) -test str::char_count::emoji_huge::case00_libcore ... bench: 127,542.05 ns/iter (+/- 17,119.86) = 2842 MB/s -test str::char_count::emoji_huge::case01_filter_count_cont_bytes ... bench: 2,535,942.75 ns/iter (+/- 36,838.23) = 142 MB/s -test str::char_count::emoji_huge::case02_iter_increment ... bench: 714,624.25 ns/iter (+/- 45,028.56) = 507 MB/s -test str::char_count::emoji_huge::case03_manual_char_len ... bench: 54,280.71 ns/iter (+/- 959.95) = 6678 MB/s -test str::char_count::emoji_large::case00_libcore ... bench: 2,030.75 ns/iter (+/- 190.23) = 2790 MB/s -test str::char_count::emoji_large::case01_filter_count_cont_bytes ... bench: 39,406.46 ns/iter (+/- 175.14) = 143 MB/s -test str::char_count::emoji_large::case02_iter_increment ... bench: 11,098.62 ns/iter (+/- 302.23) = 510 MB/s -test str::char_count::emoji_large::case03_manual_char_len ... bench: 870.60 ns/iter (+/- 20.97) = 6510 MB/s -test str::char_count::emoji_medium::case00_libcore ... bench: 303.29 ns/iter (+/- 54.41) = 2336 MB/s -test str::char_count::emoji_medium::case01_filter_count_cont_bytes ... bench: 5,022.29 ns/iter (+/- 114.56) = 140 MB/s -test str::char_count::emoji_medium::case02_iter_increment ... bench: 1,428.90 ns/iter (+/- 106.04) = 495 MB/s -test str::char_count::emoji_medium::case03_manual_char_len ... bench: 110.26 ns/iter (+/- 4.08) = 6436 MB/s -test str::char_count::emoji_small::case00_libcore ... bench: 62.20 ns/iter (+/- 3.34) = 1096 MB/s -test str::char_count::emoji_small::case01_filter_count_cont_bytes ... bench: 482.59 ns/iter (+/- 5.18) = 141 MB/s -test str::char_count::emoji_small::case02_iter_increment ... bench: 116.77 ns/iter (+/- 1.05) = 586 MB/s -test str::char_count::emoji_small::case03_manual_char_len ... bench: 9.94 ns/iter (+/- 0.12) = 7555 MB/s -test str::char_count::emoji_tiny::case00_libcore ... bench: 59.06 ns/iter (+/- 1.40) = 135 MB/s -test str::char_count::emoji_tiny::case01_filter_count_cont_bytes ... bench: 211.92 ns/iter (+/- 195.15) = 37 MB/s -test str::char_count::emoji_tiny::case02_iter_increment ... bench: 15.79 ns/iter (+/- 0.69) = 533 MB/s -test str::char_count::emoji_tiny::case03_manual_char_len ... bench: 3.40 ns/iter (+/- 0.06) = 2666 MB/s -test str::char_count::en_huge::case00_libcore ... bench: 123,726.44 ns/iter (+/- 6,364.91) = 2784 MB/s -test str::char_count::en_huge::case01_filter_count_cont_bytes ... bench: 2,415,937.80 ns/iter (+/- 2,154,185.39) = 142 MB/s -test str::char_count::en_huge::case02_iter_increment ... bench: 1,711,042.10 ns/iter (+/- 98,158.03) = 201 MB/s -test str::char_count::en_huge::case03_manual_char_len ... bench: 106,265.89 ns/iter (+/- 6,582.16) = 3242 MB/s -test str::char_count::en_large::case00_libcore ... bench: 2,031.38 ns/iter (+/- 101.29) = 2650 MB/s -test str::char_count::en_large::case01_filter_count_cont_bytes ... bench: 38,008.89 ns/iter (+/- 493.16) = 141 MB/s -test str::char_count::en_large::case02_iter_increment ... bench: 26,667.22 ns/iter (+/- 2,029.72) = 201 MB/s -test str::char_count::en_large::case03_manual_char_len ... bench: 1,661.05 ns/iter (+/- 240.80) = 3241 MB/s -test str::char_count::en_medium::case00_libcore ... bench: 272.51 ns/iter (+/- 101.36) = 2474 MB/s -test str::char_count::en_medium::case01_filter_count_cont_bytes ... bench: 4,756.33 ns/iter (+/- 160.34) = 141 MB/s -test str::char_count::en_medium::case02_iter_increment ... bench: 3,292.42 ns/iter (+/- 199.46) = 204 MB/s -test str::char_count::en_medium::case03_manual_char_len ... bench: 226.44 ns/iter (+/- 16.95) = 2977 MB/s -test str::char_count::en_small::case00_libcore ... bench: 45.29 ns/iter (+/- 2.78) = 777 MB/s -test str::char_count::en_small::case01_filter_count_cont_bytes ... bench: 247.72 ns/iter (+/- 6.82) = 141 MB/s -test str::char_count::en_small::case02_iter_increment ... bench: 181.22 ns/iter (+/- 7.21) = 193 MB/s -test str::char_count::en_small::case03_manual_char_len ... bench: 29.13 ns/iter (+/- 4.01) = 1206 MB/s -test str::char_count::en_tiny::case00_libcore ... bench: 59.10 ns/iter (+/- 1.74) = 135 MB/s -test str::char_count::en_tiny::case01_filter_count_cont_bytes ... bench: 57.71 ns/iter (+/- 2.85) = 140 MB/s -test str::char_count::en_tiny::case02_iter_increment ... bench: 43.80 ns/iter (+/- 3.37) = 186 MB/s -test str::char_count::en_tiny::case03_manual_char_len ... bench: 9.24 ns/iter (+/- 0.79) = 888 MB/s -test str::char_count::ru_huge::case00_libcore ... bench: 115,708.44 ns/iter (+/- 148,449.08) = 2809 MB/s -test str::char_count::ru_huge::case01_filter_count_cont_bytes ... bench: 2,257,630.90 ns/iter (+/- 62,568.08) = 144 MB/s -test str::char_count::ru_huge::case02_iter_increment ... bench: 1,147,786.17 ns/iter (+/- 44,168.21) = 283 MB/s -test str::char_count::ru_huge::case03_manual_char_len ... bench: 171,802.67 ns/iter (+/- 9,971.45) = 1892 MB/s -test str::char_count::ru_large::case00_libcore ... bench: 1,905.34 ns/iter (+/- 125.08) = 2666 MB/s -test str::char_count::ru_large::case01_filter_count_cont_bytes ... bench: 35,314.13 ns/iter (+/- 1,289.15) = 143 MB/s -test str::char_count::ru_large::case02_iter_increment ... bench: 17,884.89 ns/iter (+/- 2,184.62) = 284 MB/s -test str::char_count::ru_large::case03_manual_char_len ... bench: 2,686.27 ns/iter (+/- 127.60) = 1891 MB/s -test str::char_count::ru_medium::case00_libcore ... bench: 268.26 ns/iter (+/- 15.72) = 2369 MB/s -test str::char_count::ru_medium::case01_filter_count_cont_bytes ... bench: 4,443.44 ns/iter (+/- 206.67) = 142 MB/s -test str::char_count::ru_medium::case02_iter_increment ... bench: 2,224.65 ns/iter (+/- 82.15) = 285 MB/s -test str::char_count::ru_medium::case03_manual_char_len ... bench: 309.22 ns/iter (+/- 17.86) = 2055 MB/s -test str::char_count::ru_small::case00_libcore ... bench: 30.33 ns/iter (+/- 2.35) = 1066 MB/s -test str::char_count::ru_small::case01_filter_count_cont_bytes ... bench: 232.35 ns/iter (+/- 9.62) = 137 MB/s -test str::char_count::ru_small::case02_iter_increment ... bench: 97.09 ns/iter (+/- 6.07) = 329 MB/s -test str::char_count::ru_small::case03_manual_char_len ... bench: 18.47 ns/iter (+/- 1.16) = 1777 MB/s -test str::char_count::ru_tiny::case00_libcore ... bench: 72.89 ns/iter (+/- 2.16) = 138 MB/s -test str::char_count::ru_tiny::case01_filter_count_cont_bytes ... bench: 72.25 ns/iter (+/- 2.09) = 138 MB/s -test str::char_count::ru_tiny::case02_iter_increment ... bench: 30.13 ns/iter (+/- 0.92) = 333 MB/s -test str::char_count::ru_tiny::case03_manual_char_len ... bench: 10.65 ns/iter (+/- 3.41) = 1000 MB/s -test str::char_count::zh_huge::case00_libcore ... bench: 106,546.63 ns/iter (+/- 3,569.80) = 2835 MB/s -test str::char_count::zh_huge::case01_filter_count_cont_bytes ... bench: 2,104,225.80 ns/iter (+/- 47,983.72) = 143 MB/s -test str::char_count::zh_huge::case02_iter_increment ... bench: 689,956.86 ns/iter (+/- 19,974.73) = 437 MB/s -test str::char_count::zh_huge::case03_manual_char_len ... bench: 101,665.02 ns/iter (+/- 1,873.93) = 2971 MB/s -test str::char_count::zh_large::case00_libcore ... bench: 1,748.03 ns/iter (+/- 97.68) = 2700 MB/s -test str::char_count::zh_large::case01_filter_count_cont_bytes ... bench: 32,816.91 ns/iter (+/- 1,456.33) = 143 MB/s -test str::char_count::zh_large::case02_iter_increment ... bench: 10,722.32 ns/iter (+/- 260.25) = 440 MB/s -test str::char_count::zh_large::case03_manual_char_len ... bench: 1,483.77 ns/iter (+/- 77.38) = 3182 MB/s -test str::char_count::zh_medium::case00_libcore ... bench: 268.31 ns/iter (+/- 16.78) = 2201 MB/s -test str::char_count::zh_medium::case01_filter_count_cont_bytes ... bench: 4,115.95 ns/iter (+/- 186.87) = 143 MB/s -test str::char_count::zh_medium::case02_iter_increment ... bench: 1,359.38 ns/iter (+/- 28.04) = 434 MB/s -test str::char_count::zh_medium::case03_manual_char_len ... bench: 184.00 ns/iter (+/- 6.99) = 3224 MB/s -test str::char_count::zh_small::case00_libcore ... bench: 50.95 ns/iter (+/- 6.80) = 720 MB/s -test str::char_count::zh_small::case01_filter_count_cont_bytes ... bench: 255.15 ns/iter (+/- 6.94) = 141 MB/s -test str::char_count::zh_small::case02_iter_increment ... bench: 74.51 ns/iter (+/- 2.95) = 486 MB/s -test str::char_count::zh_small::case03_manual_char_len ... bench: 13.17 ns/iter (+/- 2.63) = 2769 MB/s -test str::char_count::zh_tiny::case00_libcore ... bench: 65.77 ns/iter (+/- 2.66) = 138 MB/s -test str::char_count::zh_tiny::case01_filter_count_cont_bytes ... bench: 65.41 ns/iter (+/- 2.42) = 138 MB/s -test str::char_count::zh_tiny::case02_iter_increment ... bench: 20.33 ns/iter (+/- 1.11) = 450 MB/s -test str::char_count::zh_tiny::case03_manual_char_len ... bench: 5.54 ns/iter (+/- 0.47) = 1800 MB/s -test str::debug::ascii_escapes ... bench: 991.82 ns/iter (+/- 15.04) -test str::debug::ascii_only ... bench: 663.00 ns/iter (+/- 19.18) -test str::debug::mixed ... bench: 4,034.04 ns/iter (+/- 89.26) -test str::debug::mostly_unicode ... bench: 3,095.53 ns/iter (+/- 119.90) -test str::debug::some_unicode ... bench: 880.09 ns/iter (+/- 26.33) -test str::iter::chars_advance_by_0001 ... bench: 9.61 ns/iter (+/- 0.50) -test str::iter::chars_advance_by_0010 ... bench: 55.42 ns/iter (+/- 108.91) -test str::iter::chars_advance_by_1000 ... bench: 8,798.32 ns/iter (+/- 338.57) -test str::str_validate_emoji ... bench: 2,383.86 ns/iter (+/- 116.02) -test tuple::bench_tuple_comparison ... bench: 63.48 ns/iter (+/- 1.42) +test num::flt2dec::strategy::grisu::bench_big_shortest ... bench: 82.09 ns/iter (+/- 5.24) +test num::flt2dec::strategy::grisu::bench_halfway_point_exact_inf ... bench: 3,068.96 ns/iter (+/- 44.68) +test num::flt2dec::strategy::grisu::bench_one_exact_inf ... bench: 3,094.13 ns/iter (+/- 102.09) +test num::flt2dec::strategy::grisu::bench_small_exact_12 ... bench: 52.56 ns/iter (+/- 0.71) +test num::flt2dec::strategy::grisu::bench_small_exact_3 ... bench: 45.73 ns/iter (+/- 5.47) +test num::flt2dec::strategy::grisu::bench_small_exact_inf ... bench: 13,927.19 ns/iter (+/- 178.06) +test num::flt2dec::strategy::grisu::bench_small_shortest ... bench: 60.33 ns/iter (+/- 5.49) +test num::flt2dec::strategy::grisu::bench_trailing_zero_exact_inf ... bench: 3,408.16 ns/iter (+/- 51.17) +test num::int_log::u128_log10_predictable ... bench: 71,709.54 ns/iter (+/- 711.99) +test num::int_log::u128_log10_random ... bench: 4,208.30 ns/iter (+/- 295.71) +test num::int_log::u128_log10_random_small ... bench: 1,552.13 ns/iter (+/- 111.09) +test num::int_log::u128_log_geometric ... bench: 349,545.80 ns/iter (+/- 3,144.85) +test num::int_log::u128_log_random ... bench: 6,421,920.40 ns/iter (+/- 10,343.69) +test num::int_log::u128_log_random_small ... bench: 3,853,498.00 ns/iter (+/- 19,766.74) +test num::int_log::u16_log10_predictable ... bench: 1,427.66 ns/iter (+/- 1.93) +test num::int_log::u16_log10_random ... bench: 206.31 ns/iter (+/- 3.23) +test num::int_log::u16_log10_random_small ... bench: 207.36 ns/iter (+/- 2.76) +test num::int_log::u16_log_geometric ... bench: 401.56 ns/iter (+/- 17.96) +test num::int_log::u16_log_random ... bench: 232,758.55 ns/iter (+/- 6,384.96) +test num::int_log::u16_log_random_small ... bench: 189,617.95 ns/iter (+/- 1,718.36) +test num::int_log::u32_log10_predictable ... bench: 4,773.53 ns/iter (+/- 59.05) +test num::int_log::u32_log10_random ... bench: 2,108.39 ns/iter (+/- 665.82) +test num::int_log::u32_log10_random_small ... bench: 1,326.38 ns/iter (+/- 12.20) +test num::int_log::u32_log_geometric ... bench: 804.75 ns/iter (+/- 35.31) +test num::int_log::u32_log_random ... bench: 319,293.89 ns/iter (+/- 2,667.73) +test num::int_log::u32_log_random_small ... bench: 178,849.95 ns/iter (+/- 1,889.29) +test num::int_log::u64_log10_predictable ... bench: 2,071.94 ns/iter (+/- 78.83) +test num::int_log::u64_log10_random ... bench: 669.93 ns/iter (+/- 20.15) +test num::int_log::u64_log10_random_small ... bench: 454.99 ns/iter (+/- 9.55) +test num::int_log::u64_log_geometric ... bench: 2,517.86 ns/iter (+/- 74.62) +test num::int_log::u64_log_random ... bench: 380,133.39 ns/iter (+/- 8,605.67) +test num::int_log::u64_log_random_small ... bench: 217,455.33 ns/iter (+/- 11,345.44) +test num::int_log::u8_log10_predictable ... bench: 630.77 ns/iter (+/- 11.21) +test num::int_log::u8_log10_random ... bench: 260.80 ns/iter (+/- 3.15) +test num::int_log::u8_log10_random_small ... bench: 238.12 ns/iter (+/- 2.93) +test num::int_log::u8_log_geometric ... bench: 175.23 ns/iter (+/- 10.44) +test num::int_log::u8_log_random ... bench: 213,721.48 ns/iter (+/- 13,327.59) +test num::int_log::u8_log_random_small ... bench: 194,634.27 ns/iter (+/- 2,895.08) +test num::int_pow::checked_pow_variable ... bench: 16,569.13 ns/iter (+/- 109.76) +test num::int_pow::overflowing_pow_variable ... bench: 17,287.85 ns/iter (+/- 548.71) +test num::int_pow::pow_m7 ... bench: 10,490.34 ns/iter (+/- 294.74) +test num::int_pow::pow_m8 ... bench: 10,459.63 ns/iter (+/- 242.35) +test num::int_pow::pow_variable ... bench: 9,413.66 ns/iter (+/- 115.46) +test num::int_pow::saturating_pow_variable ... bench: 16,990.05 ns/iter (+/- 96.25) +test num::int_pow::wrapping_pow_variable ... bench: 9,218.02 ns/iter (+/- 199.55) +test ops::alloc_obj_with_dtor ... bench: 0.19 ns/iter (+/- 0.01) +test pattern::ends_with_char ... bench: 9,411.14 ns/iter (+/- 69.07) +test pattern::ends_with_str ... bench: 19,142.86 ns/iter (+/- 217.10) +test pattern::starts_with_char ... bench: 10,070.44 ns/iter (+/- 88.68) +test pattern::starts_with_str ... bench: 19,614.61 ns/iter (+/- 69.76) +test slice::binary_search_l1 ... bench: 60.05 ns/iter (+/- 1.42) +test slice::binary_search_l1_with_dups ... bench: 55.15 ns/iter (+/- 14.32) +test slice::binary_search_l1_worst_case ... bench: 13.19 ns/iter (+/- 0.26) +test slice::binary_search_l2 ... bench: 82.63 ns/iter (+/- 0.62) +test slice::binary_search_l2_with_dups ... bench: 76.12 ns/iter (+/- 0.77) +test slice::binary_search_l2_worst_case ... bench: 22.74 ns/iter (+/- 0.41) +test slice::binary_search_l3 ... bench: 146.61 ns/iter (+/- 1.82) +test slice::binary_search_l3_with_dups ... bench: 146.76 ns/iter (+/- 1.79) +test slice::binary_search_l3_worst_case ... bench: 30.48 ns/iter (+/- 0.40) +test slice::fill_byte_sized ... bench: 527.79 ns/iter (+/- 13.06) +test slice::fold_to_last ... bench: 226.28 ns/iter (+/- 1.91) +test slice::rotate_16_usize_4 ... bench: 331.95 ns/iter (+/- 4.45) +test slice::rotate_16_usize_5 ... bench: 343.32 ns/iter (+/- 48.53) +test slice::rotate_64_usize_4 ... bench: 30,023.92 ns/iter (+/- 8,248.79) +test slice::rotate_64_usize_5 ... bench: 5,783.28 ns/iter (+/- 177.36) +test slice::rotate_rgb ... bench: 370.32 ns/iter (+/- 11.64) +test slice::rotate_u8 ... bench: 400.53 ns/iter (+/- 14.95) +test slice::rotate_usize ... bench: 536.65 ns/iter (+/- 26.43) +test slice::swap_with_slice_4x_usize_30 ... bench: 1,678.98 ns/iter (+/- 18.22) +test slice::swap_with_slice_4x_usize_3000 ... bench: 185,151.65 ns/iter (+/- 1,804.67) +test slice::swap_with_slice_5x_usize_30 ... bench: 2,044.10 ns/iter (+/- 19.11) +test slice::swap_with_slice_5x_usize_3000 ... bench: 230,730.76 ns/iter (+/- 241.01) +test slice::swap_with_slice_rgb_30 ... bench: 1,319.60 ns/iter (+/- 2.90) +test slice::swap_with_slice_rgb_3000 ... bench: 124,282.52 ns/iter (+/- 1,455.51) +test slice::swap_with_slice_u8_30 ... bench: 597.37 ns/iter (+/- 9.35) +test slice::swap_with_slice_u8_3000 ... bench: 41,626.58 ns/iter (+/- 154.01) +test slice::swap_with_slice_usize_30 ... bench: 595.26 ns/iter (+/- 12.23) +test slice::swap_with_slice_usize_3000 ... bench: 43,560.86 ns/iter (+/- 443.53) +test str::char_count::emoji_huge::case00_libcore ... bench: 114,103.15 ns/iter (+/- 3,736.40) = 3176 MB/s +test str::char_count::emoji_huge::case01_filter_count_cont_bytes ... bench: 1,194,221.88 ns/iter (+/- 65,321.27) = 303 MB/s +test str::char_count::emoji_huge::case02_iter_increment ... bench: 679,977.75 ns/iter (+/- 32,487.37) = 533 MB/s +test str::char_count::emoji_huge::case03_manual_char_len ... bench: 46,738.49 ns/iter (+/- 2,644.52) = 7755 MB/s +test str::char_count::emoji_large::case00_libcore ... bench: 1,882.71 ns/iter (+/- 91.97) = 3009 MB/s +test str::char_count::emoji_large::case01_filter_count_cont_bytes ... bench: 18,460.71 ns/iter (+/- 1,208.92) = 306 MB/s +test str::char_count::emoji_large::case02_iter_increment ... bench: 10,564.31 ns/iter (+/- 537.95) = 536 MB/s +test str::char_count::emoji_large::case03_manual_char_len ... bench: 731.60 ns/iter (+/- 4.11) = 7748 MB/s +test str::char_count::emoji_medium::case00_libcore ... bench: 258.27 ns/iter (+/- 6.37) = 2744 MB/s +test str::char_count::emoji_medium::case01_filter_count_cont_bytes ... bench: 2,331.45 ns/iter (+/- 257.25) = 303 MB/s +test str::char_count::emoji_medium::case02_iter_increment ... bench: 1,330.37 ns/iter (+/- 31.86) = 532 MB/s +test str::char_count::emoji_medium::case03_manual_char_len ... bench: 93.38 ns/iter (+/- 1.07) = 7612 MB/s +test str::char_count::emoji_small::case00_libcore ... bench: 53.09 ns/iter (+/- 1.07) = 1283 MB/s +test str::char_count::emoji_small::case01_filter_count_cont_bytes ... bench: 229.75 ns/iter (+/- 25.23) = 296 MB/s +test str::char_count::emoji_small::case02_iter_increment ... bench: 127.33 ns/iter (+/- 6.52) = 535 MB/s +test str::char_count::emoji_small::case03_manual_char_len ... bench: 9.74 ns/iter (+/- 0.23) = 7555 MB/s +test str::char_count::emoji_tiny::case00_libcore ... bench: 32.02 ns/iter (+/- 1.31) = 250 MB/s +test str::char_count::emoji_tiny::case01_filter_count_cont_bytes ... bench: 28.98 ns/iter (+/- 1.48) = 285 MB/s +test str::char_count::emoji_tiny::case02_iter_increment ... bench: 17.51 ns/iter (+/- 0.71) = 470 MB/s +test str::char_count::emoji_tiny::case03_manual_char_len ... bench: 3.02 ns/iter (+/- 0.72) = 2666 MB/s +test str::char_count::en_huge::case00_libcore ... bench: 108,711.16 ns/iter (+/- 1,776.86) = 3169 MB/s +test str::char_count::en_huge::case01_filter_count_cont_bytes ... bench: 1,145,713.10 ns/iter (+/- 144,092.72) = 300 MB/s +test str::char_count::en_huge::case02_iter_increment ... bench: 1,904,884.80 ns/iter (+/- 10,817.79) = 180 MB/s +test str::char_count::en_huge::case03_manual_char_len ... bench: 97,362.05 ns/iter (+/- 948.15) = 3539 MB/s +test str::char_count::en_large::case00_libcore ... bench: 1,727.36 ns/iter (+/- 51.41) = 3117 MB/s +test str::char_count::en_large::case01_filter_count_cont_bytes ... bench: 17,612.96 ns/iter (+/- 1,156.72) = 305 MB/s +test str::char_count::en_large::case02_iter_increment ... bench: 30,013.01 ns/iter (+/- 741.68) = 179 MB/s +test str::char_count::en_large::case03_manual_char_len ... bench: 1,533.64 ns/iter (+/- 14.84) = 3512 MB/s +test str::char_count::en_medium::case00_libcore ... bench: 237.00 ns/iter (+/- 6.62) = 2839 MB/s +test str::char_count::en_medium::case01_filter_count_cont_bytes ... bench: 2,193.47 ns/iter (+/- 226.88) = 306 MB/s +test str::char_count::en_medium::case02_iter_increment ... bench: 3,720.71 ns/iter (+/- 69.76) = 180 MB/s +test str::char_count::en_medium::case03_manual_char_len ... bench: 207.90 ns/iter (+/- 4.88) = 3251 MB/s +test str::char_count::en_small::case00_libcore ... bench: 40.27 ns/iter (+/- 0.77) = 875 MB/s +test str::char_count::en_small::case01_filter_count_cont_bytes ... bench: 124.11 ns/iter (+/- 12.58) = 282 MB/s +test str::char_count::en_small::case02_iter_increment ... bench: 198.77 ns/iter (+/- 7.55) = 176 MB/s +test str::char_count::en_small::case03_manual_char_len ... bench: 24.73 ns/iter (+/- 0.53) = 1458 MB/s +test str::char_count::en_tiny::case00_libcore ... bench: 31.79 ns/iter (+/- 0.85) = 258 MB/s +test str::char_count::en_tiny::case01_filter_count_cont_bytes ... bench: 29.87 ns/iter (+/- 2.91) = 275 MB/s +test str::char_count::en_tiny::case02_iter_increment ... bench: 47.77 ns/iter (+/- 0.64) = 170 MB/s +test str::char_count::en_tiny::case03_manual_char_len ... bench: 11.06 ns/iter (+/- 1.80) = 727 MB/s +test str::char_count::ru_huge::case00_libcore ... bench: 102,540.52 ns/iter (+/- 1,793.69) = 3170 MB/s +test str::char_count::ru_huge::case01_filter_count_cont_bytes ... bench: 1,071,005.48 ns/iter (+/- 54,112.01) = 303 MB/s +test str::char_count::ru_huge::case02_iter_increment ... bench: 1,134,807.01 ns/iter (+/- 34,448.19) = 286 MB/s +test str::char_count::ru_huge::case03_manual_char_len ... bench: 126,762.76 ns/iter (+/- 1,217.04) = 2564 MB/s +test str::char_count::ru_large::case00_libcore ... bench: 1,644.94 ns/iter (+/- 43.89) = 3090 MB/s +test str::char_count::ru_large::case01_filter_count_cont_bytes ... bench: 16,297.93 ns/iter (+/- 2,175.71) = 311 MB/s +test str::char_count::ru_large::case02_iter_increment ... bench: 17,783.75 ns/iter (+/- 2,190.25) = 285 MB/s +test str::char_count::ru_large::case03_manual_char_len ... bench: 1,998.26 ns/iter (+/- 30.59) = 2542 MB/s +test str::char_count::ru_medium::case00_libcore ... bench: 236.55 ns/iter (+/- 6.96) = 2690 MB/s +test str::char_count::ru_medium::case01_filter_count_cont_bytes ... bench: 2,044.41 ns/iter (+/- 241.28) = 310 MB/s +test str::char_count::ru_medium::case02_iter_increment ... bench: 2,262.07 ns/iter (+/- 241.86) = 280 MB/s +test str::char_count::ru_medium::case03_manual_char_len ... bench: 276.84 ns/iter (+/- 2.58) = 2300 MB/s +test str::char_count::ru_small::case00_libcore ... bench: 30.16 ns/iter (+/- 1.14) = 1066 MB/s +test str::char_count::ru_small::case01_filter_count_cont_bytes ... bench: 113.26 ns/iter (+/- 12.24) = 283 MB/s +test str::char_count::ru_small::case02_iter_increment ... bench: 104.62 ns/iter (+/- 4.92) = 307 MB/s +test str::char_count::ru_small::case03_manual_char_len ... bench: 14.98 ns/iter (+/- 1.14) = 2285 MB/s +test str::char_count::ru_tiny::case00_libcore ... bench: 38.79 ns/iter (+/- 2.02) = 263 MB/s +test str::char_count::ru_tiny::case01_filter_count_cont_bytes ... bench: 35.63 ns/iter (+/- 2.65) = 285 MB/s +test str::char_count::ru_tiny::case02_iter_increment ... bench: 39.87 ns/iter (+/- 7.76) = 256 MB/s +test str::char_count::ru_tiny::case03_manual_char_len ... bench: 4.88 ns/iter (+/- 0.85) = 2500 MB/s +test str::char_count::zh_huge::case00_libcore ... bench: 94,756.34 ns/iter (+/- 1,529.17) = 3187 MB/s +test str::char_count::zh_huge::case01_filter_count_cont_bytes ... bench: 991,603.90 ns/iter (+/- 73,752.49) = 304 MB/s +test str::char_count::zh_huge::case02_iter_increment ... bench: 678,499.30 ns/iter (+/- 35,284.57) = 445 MB/s +test str::char_count::zh_huge::case03_manual_char_len ... bench: 61,013.85 ns/iter (+/- 8,355.52) = 4951 MB/s +test str::char_count::zh_large::case00_libcore ... bench: 1,538.70 ns/iter (+/- 34.09) = 3068 MB/s +test str::char_count::zh_large::case01_filter_count_cont_bytes ... bench: 15,548.62 ns/iter (+/- 2,259.14) = 303 MB/s +test str::char_count::zh_large::case02_iter_increment ... bench: 10,564.41 ns/iter (+/- 225.73) = 446 MB/s +test str::char_count::zh_large::case03_manual_char_len ... bench: 955.16 ns/iter (+/- 117.52) = 4942 MB/s +test str::char_count::zh_medium::case00_libcore ... bench: 231.27 ns/iter (+/- 5.45) = 2554 MB/s +test str::char_count::zh_medium::case01_filter_count_cont_bytes ... bench: 1,982.54 ns/iter (+/- 254.06) = 297 MB/s +test str::char_count::zh_medium::case02_iter_increment ... bench: 1,323.30 ns/iter (+/- 30.09) = 445 MB/s +test str::char_count::zh_medium::case03_manual_char_len ... bench: 126.27 ns/iter (+/- 20.82) = 4682 MB/s +test str::char_count::zh_small::case00_libcore ... bench: 44.24 ns/iter (+/- 2.72) = 818 MB/s +test str::char_count::zh_small::case01_filter_count_cont_bytes ... bench: 123.54 ns/iter (+/- 6.88) = 292 MB/s +test str::char_count::zh_small::case02_iter_increment ... bench: 77.56 ns/iter (+/- 2.07) = 467 MB/s +test str::char_count::zh_small::case03_manual_char_len ... bench: 7.97 ns/iter (+/- 0.98) = 5142 MB/s +test str::char_count::zh_tiny::case00_libcore ... bench: 35.50 ns/iter (+/- 0.87) = 257 MB/s +test str::char_count::zh_tiny::case01_filter_count_cont_bytes ... bench: 31.97 ns/iter (+/- 1.26) = 290 MB/s +test str::char_count::zh_tiny::case02_iter_increment ... bench: 21.60 ns/iter (+/- 1.26) = 428 MB/s +test str::char_count::zh_tiny::case03_manual_char_len ... bench: 3.91 ns/iter (+/- 0.16) = 3000 MB/s +test str::debug::ascii_escapes ... bench: 598.71 ns/iter (+/- 9.45) +test str::debug::ascii_only ... bench: 287.72 ns/iter (+/- 3.26) +test str::debug::mixed ... bench: 3,857.89 ns/iter (+/- 331.47) +test str::debug::mostly_unicode ... bench: 3,023.67 ns/iter (+/- 294.78) +test str::debug::some_unicode ... bench: 528.69 ns/iter (+/- 10.71) +test str::iter::chars_advance_by_0001 ... bench: 10.24 ns/iter (+/- 0.22) +test str::iter::chars_advance_by_0010 ... bench: 67.08 ns/iter (+/- 3.53) +test str::iter::chars_advance_by_1000 ... bench: 46,072.32 ns/iter (+/- 38,437.29) +test str::str_validate_emoji ... bench: 5,615.88 ns/iter (+/- 168.12) +test tuple::bench_tuple_comparison ... bench: 60.51 ns/iter (+/- 2.27) failures: @@ -479,6 +697,287 @@ thread '' panicked at core/src/panic/location.rs:89:9: range end index 41 out of range for slice of length 40 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace +---- num::flt2dec::strategy::dragon::bench_big_shortest stdout ---- +thread '' panicked at core/src/panic/location.rs:89:9: +range end index 22 out of range for slice of length 17 + +---- num::flt2dec::strategy::grisu::bench_big_exact_inf stdout ---- +thread '' panicked at core/src/panic/location.rs:89:9: +range end index 41 out of range for slice of length 40 + + +failures: + num::flt2dec::strategy::dragon::bench_big_exact_inf + num::flt2dec::strategy::dragon::bench_big_shortest + num::flt2dec::strategy::grisu::bench_big_exact_inf + +test result: FAILED. 0 passed; 3 failed; 0 ignored; 469 measured; 4 filtered out; finished in 774.01s + ... bench: 15,195,750.60 ns/iter (+/- 37,667.86) +test iter::bench_skip_while_ref_sum ... bench: 7,906,604.50 ns/iter (+/- 209,446.89) +test iter::bench_skip_while_sum ... bench: 7,478,440.10 ns/iter (+/- 15,728.36) +test iter::bench_take_while_chain_ref_sum ... bench: 10,078,085.30 ns/iter (+/- 36,884.04) +test iter::bench_take_while_chain_sum ... bench: 9,878,091.10 ns/iter (+/- 47,779.81) +test iter::bench_trusted_random_access_adapters ... bench: 555,500.78 ns/iter (+/- 545.72) +test iter::bench_zip_add ... bench: 12,718.23 ns/iter (+/- 1,987.99) +test iter::bench_zip_copy ... bench: 12,136.88 ns/iter (+/- 2,648.62) +test iter::bench_zip_then_skip ... bench: 2,845.04 ns/iter (+/- 113.71) +test net::addr_parser::bench_parse_ipaddr_v4 ... bench: 197.29 ns/iter (+/- 5.15) +test net::addr_parser::bench_parse_ipaddr_v6_compress ... bench: 573.29 ns/iter (+/- 16.36) +test net::addr_parser::bench_parse_ipaddr_v6_full ... bench: 803.25 ns/iter (+/- 9.36) +test net::addr_parser::bench_parse_ipaddr_v6_v4 ... bench: 585.04 ns/iter (+/- 17.91) +test net::addr_parser::bench_parse_ipv4 ... bench: 199.06 ns/iter (+/- 11.94) +test net::addr_parser::bench_parse_ipv6_compress ... bench: 501.36 ns/iter (+/- 17.10) +test net::addr_parser::bench_parse_ipv6_full ... bench: 729.94 ns/iter (+/- 11.36) +test net::addr_parser::bench_parse_ipv6_v4 ... bench: 514.47 ns/iter (+/- 14.69) +test net::addr_parser::bench_parse_socket_v4 ... bench: 395.86 ns/iter (+/- 95.23) +test net::addr_parser::bench_parse_socket_v6 ... bench: 644.11 ns/iter (+/- 10.25) +test net::addr_parser::bench_parse_socket_v6_scope_id ... bench: 787.70 ns/iter (+/- 91.57) +test net::addr_parser::bench_parse_socketaddr_v4 ... bench: 338.99 ns/iter (+/- 20.95) +test net::addr_parser::bench_parse_socketaddr_v6 ... bench: 696.51 ns/iter (+/- 10.29) +test num::bench_i16_from_str ... bench: 278,453.78 ns/iter (+/- 2,618.52) +test num::bench_i16_from_str_radix_10 ... bench: 279,197.62 ns/iter (+/- 3,562.11) +test num::bench_i16_from_str_radix_16 ... bench: 309,017.62 ns/iter (+/- 4,556.91) +test num::bench_i16_from_str_radix_2 ... bench: 132,873.06 ns/iter (+/- 3,897.51) +test num::bench_i16_from_str_radix_36 ... bench: 333,593.35 ns/iter (+/- 2,483.97) +test num::bench_i32_from_str ... bench: 254,621.95 ns/iter (+/- 3,616.42) +test num::bench_i32_from_str_radix_10 ... bench: 278,166.60 ns/iter (+/- 28,426.75) +test num::bench_i32_from_str_radix_16 ... bench: 289,935.75 ns/iter (+/- 30,725.87) +test num::bench_i32_from_str_radix_2 ... bench: 116,120.84 ns/iter (+/- 5,095.62) +test num::bench_i32_from_str_radix_36 ... bench: 445,919.83 ns/iter (+/- 1,435.78) +test num::bench_i64_from_str ... bench: 123,885.96 ns/iter (+/- 2,061.97) +test num::bench_i64_from_str_radix_10 ... bench: 187,349.05 ns/iter (+/- 4,534.43) +test num::bench_i64_from_str_radix_16 ... bench: 151,529.12 ns/iter (+/- 2,416.13) +test num::bench_i64_from_str_radix_2 ... bench: 117,946.93 ns/iter (+/- 66,296.74) +test num::bench_i64_from_str_radix_36 ... bench: 582,650.90 ns/iter (+/- 5,509.90) +test num::bench_i8_from_str ... bench: 178,492.60 ns/iter (+/- 2,166.30) +test num::bench_i8_from_str_radix_10 ... bench: 206,160.05 ns/iter (+/- 4,101.90) +test num::bench_i8_from_str_radix_16 ... bench: 185,149.65 ns/iter (+/- 2,104.40) +test num::bench_i8_from_str_radix_2 ... bench: 127,025.84 ns/iter (+/- 2,853.68) +test num::bench_i8_from_str_radix_36 ... bench: 205,214.95 ns/iter (+/- 5,440.82) +test num::bench_u16_from_str ... bench: 217,515.65 ns/iter (+/- 4,268.29) +test num::bench_u16_from_str_radix_10 ... bench: 242,113.50 ns/iter (+/- 29,211.01) +test num::bench_u16_from_str_radix_16 ... bench: 268,164.00 ns/iter (+/- 26,389.49) +test num::bench_u16_from_str_radix_2 ... bench: 122,300.50 ns/iter (+/- 1,123.23) +test num::bench_u16_from_str_radix_36 ... bench: 279,812.85 ns/iter (+/- 26,000.61) +test num::bench_u32_from_str ... bench: 199,109.45 ns/iter (+/- 1,640.76) +test num::bench_u32_from_str_radix_10 ... bench: 223,547.30 ns/iter (+/- 9,719.81) +test num::bench_u32_from_str_radix_16 ... bench: 248,061.00 ns/iter (+/- 26,384.46) +test num::bench_u32_from_str_radix_2 ... bench: 105,762.42 ns/iter (+/- 2,899.26) +test num::bench_u32_from_str_radix_36 ... bench: 305,225.15 ns/iter (+/- 2,576.98) +test num::bench_u64_from_str ... bench: 116,111.23 ns/iter (+/- 4,006.46) +test num::bench_u64_from_str_radix_10 ... bench: 178,957.50 ns/iter (+/- 3,908.30) +test num::bench_u64_from_str_radix_16 ... bench: 136,037.33 ns/iter (+/- 3,383.35) +test num::bench_u64_from_str_radix_2 ... bench: 57,656.50 ns/iter (+/- 2,136.39) +test num::bench_u64_from_str_radix_36 ... bench: 266,862.90 ns/iter (+/- 1,246.77) +test num::bench_u8_from_str ... bench: 158,685.12 ns/iter (+/- 878.62) +test num::bench_u8_from_str_radix_10 ... bench: 187,310.55 ns/iter (+/- 4,886.32) +test num::bench_u8_from_str_radix_16 ... bench: 169,964.62 ns/iter (+/- 3,129.91) +test num::bench_u8_from_str_radix_2 ... bench: 116,627.80 ns/iter (+/- 2,585.16) +test num::bench_u8_from_str_radix_36 ... bench: 189,823.15 ns/iter (+/- 4,543.47) +test num::dec2flt::bench_0 ... bench: 48.98 ns/iter (+/- 0.34) +test num::dec2flt::bench_1e150 ... bench: 52.90 ns/iter (+/- 1.62) +test num::dec2flt::bench_42 ... bench: 40.40 ns/iter (+/- 0.15) +test num::dec2flt::bench_huge_int ... bench: 93.58 ns/iter (+/- 6.28) +test num::dec2flt::bench_long_decimal_and_exp ... bench: 100.96 ns/iter (+/- 4.50) +test num::dec2flt::bench_max ... bench: 71.32 ns/iter (+/- 3.58) +test num::dec2flt::bench_min_normal ... bench: 80.82 ns/iter (+/- 15.42) +test num::dec2flt::bench_min_subnormal ... bench: 64.93 ns/iter (+/- 15.17) +test num::dec2flt::bench_pi_long ... bench: 95.63 ns/iter (+/- 4.11) +test num::dec2flt::bench_pi_short ... bench: 76.93 ns/iter (+/- 15.77) +test num::dec2flt::bench_short_decimal ... bench: 58.78 ns/iter (+/- 2.59) +test num::flt2dec::bench_big_shortest ... bench: 188.57 ns/iter (+/- 0.72) +test num::flt2dec::bench_small_shortest ... bench: 146.68 ns/iter (+/- 0.56) +test num::flt2dec::strategy::dragon::bench_big_exact_12 ... bench: 14,717.98 ns/iter (+/- 116.32) +test num::flt2dec::strategy::dragon::bench_big_exact_3 ... bench: 5,170.79 ns/iter (+/- 98.71) +test num::flt2dec::strategy::dragon::bench_big_exact_inf ... FAILED +test num::flt2dec::strategy::dragon::bench_big_shortest ... FAILED +test num::flt2dec::strategy::dragon::bench_small_exact_12 ... bench: 3,257.81 ns/iter (+/- 53.93) +test num::flt2dec::strategy::dragon::bench_small_exact_3 ... bench: 1,031.44 ns/iter (+/- 11.09) +test num::flt2dec::strategy::dragon::bench_small_exact_inf ... bench: 22,351.67 ns/iter (+/- 6,511.32) +test num::flt2dec::strategy::dragon::bench_small_shortest ... bench: 3,290.78 ns/iter (+/- 84.71) +test num::flt2dec::strategy::grisu::bench_big_exact_12 ... bench: 72.87 ns/iter (+/- 5.00) +test num::flt2dec::strategy::grisu::bench_big_exact_3 ... bench: 45.09 ns/iter (+/- 0.56) +test num::flt2dec::strategy::grisu::bench_big_exact_inf ... FAILED +test num::flt2dec::strategy::grisu::bench_big_shortest ... bench: 82.08 ns/iter (+/- 5.36) +test num::flt2dec::strategy::grisu::bench_halfway_point_exact_inf ... bench: 2,997.43 ns/iter (+/- 44.65) +test num::flt2dec::strategy::grisu::bench_one_exact_inf ... bench: 2,999.72 ns/iter (+/- 126.42) +test num::flt2dec::strategy::grisu::bench_small_exact_12 ... bench: 52.66 ns/iter (+/- 0.88) +test num::flt2dec::strategy::grisu::bench_small_exact_3 ... bench: 40.34 ns/iter (+/- 0.35) +test num::flt2dec::strategy::grisu::bench_small_exact_inf ... bench: 16,039.20 ns/iter (+/- 116.83) +test num::flt2dec::strategy::grisu::bench_small_shortest ... bench: 55.86 ns/iter (+/- 0.97) +test num::flt2dec::strategy::grisu::bench_trailing_zero_exact_inf ... bench: 3,286.81 ns/iter (+/- 29.64) +test num::int_log::u128_log10_predictable ... bench: 103,261.85 ns/iter (+/- 32,123.32) +test num::int_log::u128_log10_random ... bench: 4,124.30 ns/iter (+/- 68.35) +test num::int_log::u128_log10_random_small ... bench: 1,639.38 ns/iter (+/- 40.60) +test num::int_log::u128_log_geometric ... bench: 348,999.30 ns/iter (+/- 2,790.40) +test num::int_log::u128_log_random ... bench: 6,480,158.70 ns/iter (+/- 13,395.47) +test num::int_log::u128_log_random_small ... bench: 3,859,659.60 ns/iter (+/- 18,096.87) +test num::int_log::u16_log10_predictable ... bench: 1,427.70 ns/iter (+/- 1.37) +test num::int_log::u16_log10_random ... bench: 210.58 ns/iter (+/- 2.22) +test num::int_log::u16_log10_random_small ... bench: 234.04 ns/iter (+/- 5.67) +test num::int_log::u16_log_geometric ... bench: 368.28 ns/iter (+/- 18.20) +test num::int_log::u16_log_random ... bench: 192,045.41 ns/iter (+/- 8,840.25) +test num::int_log::u16_log_random_small ... bench: 172,049.00 ns/iter (+/- 2,499.42) +test num::int_log::u32_log10_predictable ... bench: 4,765.71 ns/iter (+/- 37.61) +test num::int_log::u32_log10_random ... bench: 1,312.78 ns/iter (+/- 4.74) +test num::int_log::u32_log10_random_small ... bench: 1,325.72 ns/iter (+/- 12.15) +test num::int_log::u32_log_geometric ... bench: 801.57 ns/iter (+/- 12.60) +test num::int_log::u32_log_random ... bench: 250,001.58 ns/iter (+/- 4,550.94) +test num::int_log::u32_log_random_small ... bench: 157,574.40 ns/iter (+/- 5,422.04) +test num::int_log::u64_log10_predictable ... bench: 2,043.72 ns/iter (+/- 82.63) +test num::int_log::u64_log10_random ... bench: 652.65 ns/iter (+/- 11.01) +test num::int_log::u64_log10_random_small ... bench: 469.07 ns/iter (+/- 59.61) +test num::int_log::u64_log_geometric ... bench: 2,539.99 ns/iter (+/- 83.33) +test num::int_log::u64_log_random ... bench: 343,009.33 ns/iter (+/- 4,107.89) +test num::int_log::u64_log_random_small ... bench: 171,806.45 ns/iter (+/- 2,451.57) +test num::int_log::u8_log10_predictable ... bench: 632.06 ns/iter (+/- 6.59) +test num::int_log::u8_log10_random ... bench: 233.96 ns/iter (+/- 25.75) +test num::int_log::u8_log10_random_small ... bench: 231.86 ns/iter (+/- 8.88) +test num::int_log::u8_log_geometric ... bench: 176.61 ns/iter (+/- 16.73) +test num::int_log::u8_log_random ... bench: 178,394.45 ns/iter (+/- 2,644.76) +test num::int_log::u8_log_random_small ... bench: 177,755.40 ns/iter (+/- 28,789.04) +test num::int_pow::checked_pow_variable ... bench: 16,493.65 ns/iter (+/- 130.85) +test num::int_pow::overflowing_pow_variable ... bench: 16,928.68 ns/iter (+/- 145.44) +test num::int_pow::pow_m7 ... bench: 9,131.31 ns/iter (+/- 111.60) +test num::int_pow::pow_m8 ... bench: 9,123.81 ns/iter (+/- 113.22) +test num::int_pow::pow_variable ... bench: 9,258.47 ns/iter (+/- 102.37) +test num::int_pow::saturating_pow_variable ... bench: 17,076.88 ns/iter (+/- 82.62) +test num::int_pow::wrapping_pow_variable ... bench: 9,124.03 ns/iter (+/- 125.33) +test ops::alloc_obj_with_dtor ... bench: 0.19 ns/iter (+/- 0.00) +test pattern::ends_with_char ... bench: 9,406.54 ns/iter (+/- 11.33) +test pattern::ends_with_str ... bench: 7,218.82 ns/iter (+/- 41.86) +test pattern::starts_with_char ... bench: 44,116.54 ns/iter (+/- 449.38) +test pattern::starts_with_str ... bench: 7,658.14 ns/iter (+/- 7.71) +test slice::binary_search_l1 ... bench: 59.30 ns/iter (+/- 1.10) +test slice::binary_search_l1_with_dups ... bench: 56.12 ns/iter (+/- 13.69) +test slice::binary_search_l1_worst_case ... bench: 16.82 ns/iter (+/- 0.22) +test slice::binary_search_l2 ... bench: 81.97 ns/iter (+/- 0.99) +test slice::binary_search_l2_with_dups ... bench: 75.01 ns/iter (+/- 0.72) +test slice::binary_search_l2_worst_case ... bench: 23.22 ns/iter (+/- 1.16) +test slice::binary_search_l3 ... bench: 144.49 ns/iter (+/- 1.28) +test slice::binary_search_l3_with_dups ... bench: 144.47 ns/iter (+/- 1.54) +test slice::binary_search_l3_worst_case ... bench: 30.93 ns/iter (+/- 1.40) +test slice::fill_byte_sized ... bench: 596.89 ns/iter (+/- 43.71) +test slice::fold_to_last ... bench: 308.95 ns/iter (+/- 5.85) +test slice::rotate_16_usize_4 ... bench: 308.68 ns/iter (+/- 5.63) +test slice::rotate_16_usize_5 ... bench: 465.10 ns/iter (+/- 5.43) +test slice::rotate_64_usize_4 ... bench: 29,896.18 ns/iter (+/- 5,620.59) +test slice::rotate_64_usize_5 ... bench: 7,455.02 ns/iter (+/- 45.08) +test slice::rotate_rgb ... bench: 406.57 ns/iter (+/- 17.71) +test slice::rotate_u8 ... bench: 501.95 ns/iter (+/- 11.67) +test slice::rotate_usize ... bench: 407.17 ns/iter (+/- 10.34) +test slice::swap_with_slice_4x_usize_30 ... bench: 1,678.69 ns/iter (+/- 1.40) +test slice::swap_with_slice_4x_usize_3000 ... bench: 185,271.55 ns/iter (+/- 254.27) +test slice::swap_with_slice_5x_usize_30 ... bench: 2,043.25 ns/iter (+/- 8.21) +test slice::swap_with_slice_5x_usize_3000 ... bench: 230,752.80 ns/iter (+/- 2,025.85) +test slice::swap_with_slice_rgb_30 ... bench: 1,317.38 ns/iter (+/- 3.27) +test slice::swap_with_slice_rgb_3000 ... bench: 124,233.63 ns/iter (+/- 1,444.97) +test slice::swap_with_slice_u8_30 ... bench: 596.54 ns/iter (+/- 6.23) +test slice::swap_with_slice_u8_3000 ... bench: 42,004.00 ns/iter (+/- 907.60) +test slice::swap_with_slice_usize_30 ... bench: 595.51 ns/iter (+/- 8.25) +test slice::swap_with_slice_usize_3000 ... bench: 43,068.11 ns/iter (+/- 64.49) +test str::char_count::emoji_huge::case00_libcore ... bench: 105,680.50 ns/iter (+/- 7,613.48) = 3430 MB/s +test str::char_count::emoji_huge::case01_filter_count_cont_bytes ... bench: 1,176,843.00 ns/iter (+/- 83,985.94) = 308 MB/s +test str::char_count::emoji_huge::case02_iter_increment ... bench: 685,139.43 ns/iter (+/- 21,385.31) = 529 MB/s +test str::char_count::emoji_huge::case03_manual_char_len ... bench: 51,390.74 ns/iter (+/- 113.32) = 7053 MB/s +test str::char_count::emoji_large::case00_libcore ... bench: 1,663.82 ns/iter (+/- 27.03) = 3405 MB/s +test str::char_count::emoji_large::case01_filter_count_cont_bytes ... bench: 18,357.95 ns/iter (+/- 1,278.80) = 308 MB/s +test str::char_count::emoji_large::case02_iter_increment ... bench: 10,827.21 ns/iter (+/- 471.37) = 523 MB/s +test str::char_count::emoji_large::case03_manual_char_len ... bench: 823.81 ns/iter (+/- 12.97) = 6882 MB/s +test str::char_count::emoji_medium::case00_libcore ... bench: 238.87 ns/iter (+/- 6.62) = 2974 MB/s +test str::char_count::emoji_medium::case01_filter_count_cont_bytes ... bench: 2,291.47 ns/iter (+/- 145.21) = 309 MB/s +test str::char_count::emoji_medium::case02_iter_increment ... bench: 1,349.26 ns/iter (+/- 40.08) = 524 MB/s +test str::char_count::emoji_medium::case03_manual_char_len ... bench: 103.13 ns/iter (+/- 1.85) = 6873 MB/s +test str::char_count::emoji_small::case00_libcore ... bench: 52.57 ns/iter (+/- 1.75) = 1307 MB/s +test str::char_count::emoji_small::case01_filter_count_cont_bytes ... bench: 244.40 ns/iter (+/- 11.48) = 278 MB/s +test str::char_count::emoji_small::case02_iter_increment ... bench: 140.54 ns/iter (+/- 24.32) = 485 MB/s +test str::char_count::emoji_small::case03_manual_char_len ... bench: 9.64 ns/iter (+/- 0.41) = 7555 MB/s +test str::char_count::emoji_tiny::case00_libcore ... bench: 32.34 ns/iter (+/- 0.64) = 250 MB/s +test str::char_count::emoji_tiny::case01_filter_count_cont_bytes ... bench: 31.40 ns/iter (+/- 0.79) = 258 MB/s +test str::char_count::emoji_tiny::case02_iter_increment ... bench: 17.48 ns/iter (+/- 1.26) = 470 MB/s +test str::char_count::emoji_tiny::case03_manual_char_len ... bench: 3.20 ns/iter (+/- 0.32) = 2666 MB/s +test str::char_count::en_huge::case00_libcore ... bench: 101,037.23 ns/iter (+/- 1,867.20) = 3410 MB/s +test str::char_count::en_huge::case01_filter_count_cont_bytes ... bench: 1,112,174.40 ns/iter (+/- 73,347.79) = 309 MB/s +test str::char_count::en_huge::case02_iter_increment ... bench: 1,956,726.20 ns/iter (+/- 106,341.33) = 176 MB/s +test str::char_count::en_huge::case03_manual_char_len ... bench: 93,498.78 ns/iter (+/- 13,617.44) = 3685 MB/s +test str::char_count::en_large::case00_libcore ... bench: 1,582.65 ns/iter (+/- 23.67) = 3403 MB/s +test str::char_count::en_large::case01_filter_count_cont_bytes ... bench: 18,116.81 ns/iter (+/- 1,104.34) = 297 MB/s +test str::char_count::en_large::case02_iter_increment ... bench: 30,817.69 ns/iter (+/- 1,609.12) = 174 MB/s +test str::char_count::en_large::case03_manual_char_len ... bench: 1,470.25 ns/iter (+/- 154.83) = 3662 MB/s +test str::char_count::en_medium::case00_libcore ... bench: 220.45 ns/iter (+/- 7.48) = 3059 MB/s +test str::char_count::en_medium::case01_filter_count_cont_bytes ... bench: 2,254.35 ns/iter (+/- 143.88) = 298 MB/s +test str::char_count::en_medium::case02_iter_increment ... bench: 3,859.96 ns/iter (+/- 150.27) = 174 MB/s +test str::char_count::en_medium::case03_manual_char_len ... bench: 200.77 ns/iter (+/- 15.39) = 3365 MB/s +test str::char_count::en_small::case00_libcore ... bench: 39.69 ns/iter (+/- 1.96) = 897 MB/s +test str::char_count::en_small::case01_filter_count_cont_bytes ... bench: 129.78 ns/iter (+/- 10.28) = 271 MB/s +test str::char_count::en_small::case02_iter_increment ... bench: 199.25 ns/iter (+/- 13.45) = 175 MB/s +test str::char_count::en_small::case03_manual_char_len ... bench: 25.92 ns/iter (+/- 4.50) = 1400 MB/s +test str::char_count::en_tiny::case00_libcore ... bench: 33.25 ns/iter (+/- 2.87) = 242 MB/s +test str::char_count::en_tiny::case01_filter_count_cont_bytes ... bench: 31.25 ns/iter (+/- 1.26) = 258 MB/s +test str::char_count::en_tiny::case02_iter_increment ... bench: 55.94 ns/iter (+/- 8.58) = 145 MB/s +test str::char_count::en_tiny::case03_manual_char_len ... bench: 7.36 ns/iter (+/- 1.25) = 1142 MB/s +test str::char_count::ru_huge::case00_libcore ... bench: 95,556.36 ns/iter (+/- 2,268.98) = 3402 MB/s +test str::char_count::ru_huge::case01_filter_count_cont_bytes ... bench: 1,050,327.40 ns/iter (+/- 75,783.78) = 309 MB/s +test str::char_count::ru_huge::case02_iter_increment ... bench: 1,241,049.61 ns/iter (+/- 53,702.52) = 261 MB/s +test str::char_count::ru_huge::case03_manual_char_len ... bench: 148,374.83 ns/iter (+/- 12,672.47) = 2191 MB/s +test str::char_count::ru_large::case00_libcore ... bench: 1,500.60 ns/iter (+/- 38.93) = 3386 MB/s +test str::char_count::ru_large::case01_filter_count_cont_bytes ... bench: 16,290.40 ns/iter (+/- 1,055.69) = 311 MB/s +test str::char_count::ru_large::case02_iter_increment ... bench: 19,193.59 ns/iter (+/- 1,032.05) = 264 MB/s +test str::char_count::ru_large::case03_manual_char_len ... bench: 2,770.84 ns/iter (+/- 31.92) = 1833 MB/s +test str::char_count::ru_medium::case00_libcore ... bench: 216.93 ns/iter (+/- 20.45) = 2939 MB/s +test str::char_count::ru_medium::case01_filter_count_cont_bytes ... bench: 2,059.34 ns/iter (+/- 133.85) = 308 MB/s +test str::char_count::ru_medium::case02_iter_increment ... bench: 2,468.15 ns/iter (+/- 265.74) = 257 MB/s +test str::char_count::ru_medium::case03_manual_char_len ... bench: 285.71 ns/iter (+/- 50.44) = 2228 MB/s +test str::char_count::ru_small::case00_libcore ... bench: 27.39 ns/iter (+/- 1.75) = 1185 MB/s +test str::char_count::ru_small::case01_filter_count_cont_bytes ... bench: 119.16 ns/iter (+/- 7.04) = 268 MB/s +test str::char_count::ru_small::case02_iter_increment ... bench: 101.44 ns/iter (+/- 4.12) = 316 MB/s +test str::char_count::ru_small::case03_manual_char_len ... bench: 17.71 ns/iter (+/- 1.08) = 1882 MB/s +test str::char_count::ru_tiny::case00_libcore ... bench: 39.30 ns/iter (+/- 2.16) = 256 MB/s +test str::char_count::ru_tiny::case01_filter_count_cont_bytes ... bench: 38.35 ns/iter (+/- 0.20) = 263 MB/s +test str::char_count::ru_tiny::case02_iter_increment ... bench: 32.09 ns/iter (+/- 1.88) = 312 MB/s +test str::char_count::ru_tiny::case03_manual_char_len ... bench: 6.87 ns/iter (+/- 0.66) = 1666 MB/s +test str::char_count::zh_huge::case00_libcore ... bench: 88,558.52 ns/iter (+/- 1,786.96) = 3411 MB/s +test str::char_count::zh_huge::case01_filter_count_cont_bytes ... bench: 977,602.00 ns/iter (+/- 69,321.82) = 309 MB/s +test str::char_count::zh_huge::case02_iter_increment ... bench: 697,944.55 ns/iter (+/- 15,661.34) = 432 MB/s +test str::char_count::zh_huge::case03_manual_char_len ... bench: 99,005.24 ns/iter (+/- 3,619.91) = 3051 MB/s +test str::char_count::zh_large::case00_libcore ... bench: 1,390.42 ns/iter (+/- 60.70) = 3395 MB/s +test str::char_count::zh_large::case01_filter_count_cont_bytes ... bench: 15,131.40 ns/iter (+/- 750.14) = 311 MB/s +test str::char_count::zh_large::case02_iter_increment ... bench: 10,944.23 ns/iter (+/- 278.26) = 431 MB/s +test str::char_count::zh_large::case03_manual_char_len ... bench: 1,365.03 ns/iter (+/- 118.36) = 3457 MB/s +test str::char_count::zh_medium::case00_libcore ... bench: 211.28 ns/iter (+/- 8.02) = 2796 MB/s +test str::char_count::zh_medium::case01_filter_count_cont_bytes ... bench: 1,922.77 ns/iter (+/- 129.56) = 306 MB/s +test str::char_count::zh_medium::case02_iter_increment ... bench: 1,387.56 ns/iter (+/- 41.19) = 425 MB/s +test str::char_count::zh_medium::case03_manual_char_len ... bench: 179.60 ns/iter (+/- 7.70) = 3296 MB/s +test str::char_count::zh_small::case00_libcore ... bench: 43.26 ns/iter (+/- 2.17) = 837 MB/s +test str::char_count::zh_small::case01_filter_count_cont_bytes ... bench: 132.74 ns/iter (+/- 14.55) = 272 MB/s +test str::char_count::zh_small::case02_iter_increment ... bench: 84.73 ns/iter (+/- 10.55) = 428 MB/s +test str::char_count::zh_small::case03_manual_char_len ... bench: 13.05 ns/iter (+/- 1.37) = 2769 MB/s +test str::char_count::zh_tiny::case00_libcore ... bench: 35.86 ns/iter (+/- 1.02) = 257 MB/s +test str::char_count::zh_tiny::case01_filter_count_cont_bytes ... bench: 35.08 ns/iter (+/- 1.22) = 257 MB/s +test str::char_count::zh_tiny::case02_iter_increment ... bench: 21.59 ns/iter (+/- 1.57) = 428 MB/s +test str::char_count::zh_tiny::case03_manual_char_len ... bench: 5.12 ns/iter (+/- 1.10) = 1800 MB/s +test str::debug::ascii_escapes ... bench: 628.15 ns/iter (+/- 15.62) +test str::debug::ascii_only ... bench: 335.28 ns/iter (+/- 3.44) +test str::debug::mixed ... bench: 3,778.69 ns/iter (+/- 54.60) +test str::debug::mostly_unicode ... bench: 2,939.57 ns/iter (+/- 114.30) +test str::debug::some_unicode ... bench: 544.24 ns/iter (+/- 21.99) +test str::iter::chars_advance_by_0001 ... bench: 9.93 ns/iter (+/- 0.12) +test str::iter::chars_advance_by_0010 ... bench: 65.59 ns/iter (+/- 3.57) +test str::iter::chars_advance_by_1000 ... bench: 22,039.46 ns/iter (+/- 13,609.47) +test str::str_validate_emoji ... bench: 2,288.79 ns/iter (+/- 61.15) +test tuple::bench_tuple_comparison ... bench: 61.09 ns/iter (+/- 2.55) + +failures: + +---- num::flt2dec::strategy::dragon::bench_big_exact_inf stdout ---- +thread '' panicked at core/src/panic/location.rs:89:9: +range end index 41 out of range for slice of length 40 +note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + +---- num::flt2dec::strategy::dragon::bench_big_shortest stdout ---- +thread '' panicked at core/src/panic/location.rs:89:9: +range end index 22 out of range for slice of length 17 + ---- num::flt2dec::strategy::grisu::bench_big_exact_inf stdout ---- thread '' panicked at core/src/panic/location.rs:89:9: range end index 41 out of range for slice of length 40 @@ -486,6 +985,7 @@ range end index 41 out of range for slice of length 40 failures: num::flt2dec::strategy::dragon::bench_big_exact_inf + num::flt2dec::strategy::dragon::bench_big_shortest num::flt2dec::strategy::grisu::bench_big_exact_inf -test result: FAILED. 0 passed; 2 failed; 0 ignored; 470 measured; 4 filtered out; finished in 1011.01s +test result: FAILED. 0 passed; 3 failed; 0 ignored; 469 measured; 4 filtered out; finished in 735.91s diff --git a/src/compile_test.rs b/src/compile_test.rs index 9a1550f7..bda9027f 100644 --- a/src/compile_test.rs +++ b/src/compile_test.rs @@ -670,7 +670,7 @@ test_lib! {recursive,stable} test_lib! {fn_ptr,stable} test_lib! {tuple,stable} -//test_lib! {structs} +run_test! {bench,iter,stable} run_test! {alloc,abox,stable} run_test! {alloc,raw_vec,stable} run_test! {alloc,slice_to_owned,stable} diff --git a/src/lib.rs b/src/lib.rs index 65f4996e..5abf2729 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -140,8 +140,7 @@ mod verify; pub mod method; /// Handles a MIR operand. mod operand; -/// Method-level CIL opitimizations -pub mod opt; + /// Code handling getting/setting/adressing memory locations. mod place; /// Converts righthandside of a MIR statement into CIL ops. diff --git a/src/opt/mod.rs b/src/opt/mod.rs deleted file mode 100644 index 9fd7c824..00000000 --- a/src/opt/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -#![allow(clippy::similar_names)] - -use cilly::{asm::Assembly, method::Method}; - -pub fn opt_method(_: &mut Method, _: &Assembly) {} diff --git a/test/bench/iter.rs b/test/bench/iter.rs new file mode 100644 index 00000000..bff15610 --- /dev/null +++ b/test/bench/iter.rs @@ -0,0 +1,16 @@ +fn bench_for_each_chain_fold() -> i64 { + let mut acc = 0; + let iter = (0i64..1000000).chain(0..1000000).map(std::hint::black_box); + for_each_fold(iter, |x| acc += x); + acc +} +fn for_each_fold(iter: I, mut f: F) +where + I: Iterator, + F: FnMut(I::Item), +{ + iter.fold((), move |(), item| f(item)); +} +fn main() { + std::hint::black_box(bench_for_each_chain_fold()); +}