18 #include "benchmark/benchmark.h"
19 #include "absl/algorithm/algorithm.h"
24 constexpr
int kMinBenchmarkSize = 1024;
25 constexpr
int kMaxBenchmarkSize = 8 * 1024 * 1024;
34 explicit EightBits(
int ) :
data(0) {}
35 bool operator==(
const EightBits& rhs)
const {
return data == rhs.data; }
41 std::vector<T> xs(
state.range(0),
T(0));
42 std::vector<T> ys = xs;
43 while (
state.KeepRunning()) {
44 const bool same =
absl::equal(xs.begin(), xs.end(), ys.begin(), ys.end());
51 std::vector<T> xs(
state.range(0),
T(0));
52 std::vector<T> ys = xs;
53 while (
state.KeepRunning()) {
54 const bool same = std::equal(xs.begin(), xs.end(), ys.begin());
61 std::vector<T> xs(
state.range(0),
T(0));
62 std::vector<T> ys = xs;
63 while (
state.KeepRunning()) {
65 std::memcmp(xs.data(), ys.data(), xs.size() *
sizeof(
T)) == 0;
74 std::vector<T> xs(
state.range(0),
T(0));
75 while (
state.KeepRunning()) {
76 const bool same =
absl::equal(xs.begin(), xs.end(), xs.begin(), xs.end());
82 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
84 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
86 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
88 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
91 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
93 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
95 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
97 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
100 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
102 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
104 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
106 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
109 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
111 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
113 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
115 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
118 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
120 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
122 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);
124 ->Range(kMinBenchmarkSize, kMaxBenchmarkSize);