add uint operator benchmarks (#82)

This commit is contained in:
Benjamin Wasty 2019-01-26 20:16:52 +01:00
parent de3329a160
commit 42ca5e0e9c
1 changed files with 120 additions and 0 deletions

View File

@ -182,6 +182,126 @@ fn u128_mul(b: &mut Bencher) {
});
}
#[bench]
fn u256_bit_and(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U256([2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) & black_box(two)
});
}
#[bench]
fn u512_bit_and(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U512([11707750893627518758, 17679501210898117940, 2472932874039724966, 11177683849610900539, 2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) & black_box(two)
});
}
#[bench]
fn u256_bit_xor(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U256([2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) ^ black_box(two)
});
}
#[bench]
fn u512_bit_xor(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U512([11707750893627518758, 17679501210898117940, 2472932874039724966, 11177683849610900539, 2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) ^ black_box(two)
});
}
#[bench]
fn u256_bit_or(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U256([2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) | black_box(two)
});
}
#[bench]
fn u512_bit_or(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U512([11707750893627518758, 17679501210898117940, 2472932874039724966, 11177683849610900539, 2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) | black_box(two)
});
}
#[bench]
fn u256_not(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
!black_box(one)
});
}
#[bench]
fn u512_not(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
!black_box(one)
});
}
#[bench]
fn u256_shl(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
black_box(one) << 128
});
}
#[bench]
fn u512_shl(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
black_box(one) << 128
});
}
#[bench]
fn u256_shr(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
black_box(one) >> 128
});
}
#[bench]
fn u512_shr(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
b.iter(|| {
black_box(one) >> 128
});
}
#[bench]
fn u256_ord(b: &mut Bencher) {
let one = U256([12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U256([2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) < black_box(two)
});
}
#[bench]
fn u512_ord(b: &mut Bencher) {
let one = U512([8326634216714383706, 15837136097609390493, 13004317189126203332, 7031796866963419685, 12767554894655550452, 16333049135534778834, 140317443000293558, 598963]);
let two = U512([11707750893627518758, 17679501210898117940, 2472932874039724966, 11177683849610900539, 2096410819092764509, 8483673822214032535, 36306297304129857, 3453]);
b.iter(|| {
black_box(one) < black_box(two)
});
}
#[bench]
fn u256_from_le(b: &mut Bencher) {
b.iter(|| {