Revert "[libc] Use best-fit binary trie to make malloc logarithmic" (#117065)
[llvm-project.git] / libcxx / test / benchmarks / algorithms / min.bench.cpp
blob9928afd56773786a857a7dad62ae1fece5c0253c
1 //===----------------------------------------------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
9 // UNSUPPORTED: c++03, c++11, c++14, c++17
11 #include <algorithm>
12 #include <cassert>
14 #include <benchmark/benchmark.h>
15 #include "test_macros.h"
17 void run_sizes(auto benchmark) {
18 benchmark->Arg(1)
19 ->Arg(2)
20 ->Arg(3)
21 ->Arg(4)
22 ->Arg(5)
23 ->Arg(6)
24 ->Arg(7)
25 ->Arg(8)
26 ->Arg(9)
27 ->Arg(10)
28 ->Arg(11)
29 ->Arg(12)
30 ->Arg(13)
31 ->Arg(14)
32 ->Arg(15)
33 ->Arg(16)
34 ->Arg(17)
35 ->Arg(18)
36 ->Arg(19)
37 ->Arg(20)
38 ->Arg(21)
39 ->Arg(22)
40 ->Arg(23)
41 ->Arg(24)
42 ->Arg(25)
43 ->Arg(26)
44 ->Arg(27)
45 ->Arg(28)
46 ->Arg(29)
47 ->Arg(30)
48 ->Arg(31)
49 ->Arg(32)
50 ->Arg(64)
51 ->Arg(512)
52 ->Arg(1024)
53 ->Arg(4000)
54 ->Arg(4096)
55 ->Arg(5500)
56 ->Arg(64000)
57 ->Arg(65536)
58 ->Arg(70000);
61 template <class T>
62 static void BM_std_min(benchmark::State& state) {
63 std::vector<T> vec(state.range(), 3);
65 for (auto _ : state) {
66 benchmark::DoNotOptimize(vec);
67 benchmark::DoNotOptimize(std::ranges::min(vec));
70 BENCHMARK(BM_std_min<char>)->Apply(run_sizes);
71 BENCHMARK(BM_std_min<short>)->Apply(run_sizes);
72 BENCHMARK(BM_std_min<int>)->Apply(run_sizes);
73 BENCHMARK(BM_std_min<long long>)->Apply(run_sizes);
74 #ifndef TEST_HAS_NO_INT128
75 BENCHMARK(BM_std_min<__int128>)->Apply(run_sizes);
76 #endif
77 BENCHMARK(BM_std_min<unsigned char>)->Apply(run_sizes);
78 BENCHMARK(BM_std_min<unsigned short>)->Apply(run_sizes);
79 BENCHMARK(BM_std_min<unsigned int>)->Apply(run_sizes);
80 BENCHMARK(BM_std_min<unsigned long long>)->Apply(run_sizes);
81 #ifndef TEST_HAS_NO_INT128
82 BENCHMARK(BM_std_min<unsigned __int128>)->Apply(run_sizes);
83 #endif
85 BENCHMARK_MAIN();