17#include <benchmark/benchmark.h>
19using namespace benchmark;
22constexpr size_t N = 1 << 16;
32 for (
size_t i = 0; i <
N; ++i) {
38struct CorrectnessGuard {
44 for (
size_t i = 0; i <
N; ++i) {
50 std::fprintf(stderr,
"[COMPUTE_SUM CORRECTNESS] scalar != vectorized\n");
55static const CorrectnessGuard correctness_guard;
59static void bench_compute_sum_scalar(State& state)
62 for (
auto _ : state) {
64 for (
size_t i = 0; i <
N; ++i) {
72static void bench_compute_sum_full(State& state)
75 for (
auto _ : state) {
BENCHMARK(bench_compute_sum_scalar)
template fr compute_sum< fr >(const fr *, const size_t)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static field random_element(numeric::RNG *engine=nullptr) noexcept