[libcxx-commits] [PATCH] D143596: [libc++] Optmize std::ranges::min for types that are cheap to copy
Nikolas Klauser via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Feb 28 19:38:59 PST 2023
philnik created this revision.
Herald added a project: All.
philnik added a comment.
philnik updated this revision to Diff 497082.
philnik updated this revision to Diff 497083.
philnik retitled this revision from "[libc++] Optmize std::ranges::min for integral types" to "[libc++] Optmize std::ranges::min for types that are cheap to copy".
philnik updated this revision to Diff 501239.
philnik published this revision for review.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
Benchmark results:
----------------------------------------------------------------------
Benchmark old new
----------------------------------------------------------------------
BM_std_min<char>/1 0.396 ns 0.353 ns
BM_std_min<char>/2 1.06 ns 0.941 ns
BM_std_min<char>/3 1.46 ns 1.52 ns
BM_std_min<char>/4 1.94 ns 2.00 ns
BM_std_min<char>/5 1.88 ns 2.47 ns
BM_std_min<char>/6 2.24 ns 3.10 ns
BM_std_min<char>/7 2.64 ns 3.57 ns
BM_std_min<char>/8 3.04 ns 4.39 ns
BM_std_min<char>/9 3.04 ns 5.01 ns
BM_std_min<char>/10 3.44 ns 5.11 ns
BM_std_min<char>/11 3.86 ns 6.76 ns
BM_std_min<char>/12 4.30 ns 6.26 ns
BM_std_min<char>/13 4.47 ns 6.94 ns
BM_std_min<char>/14 4.70 ns 7.58 ns
BM_std_min<char>/15 5.30 ns 8.34 ns
BM_std_min<char>/16 5.69 ns 9.23 ns
BM_std_min<char>/17 5.89 ns 1.41 ns
BM_std_min<char>/18 6.25 ns 1.88 ns
BM_std_min<char>/19 6.68 ns 2.40 ns
BM_std_min<char>/20 7.19 ns 2.86 ns
BM_std_min<char>/21 7.26 ns 3.44 ns
BM_std_min<char>/22 7.64 ns 3.96 ns
BM_std_min<char>/23 8.16 ns 4.65 ns
BM_std_min<char>/24 8.91 ns 5.32 ns
BM_std_min<char>/25 9.13 ns 5.91 ns
BM_std_min<char>/26 9.55 ns 6.62 ns
BM_std_min<char>/27 9.95 ns 7.30 ns
BM_std_min<char>/28 10.5 ns 7.92 ns
BM_std_min<char>/29 10.7 ns 8.77 ns
BM_std_min<char>/30 11.1 ns 9.69 ns
BM_std_min<char>/31 11.5 ns 10.6 ns
BM_std_min<char>/32 12.0 ns 11.3 ns
BM_std_min<char>/64 27.7 ns 11.9 ns
BM_std_min<char>/512 290 ns 17.8 ns
BM_std_min<char>/1024 592 ns 20.9 ns
BM_std_min<char>/4000 2326 ns 37.1 ns
BM_std_min<char>/4096 2368 ns 38.1 ns
BM_std_min<char>/5500 3200 ns 38.7 ns
BM_std_min<char>/64000 37334 ns 487 ns
BM_std_min<char>/65536 38101 ns 498 ns
BM_std_min<char>/70000 40719 ns 530 ns
BM_std_min<short>/1 0.396 ns 0.472 ns
BM_std_min<short>/2 0.792 ns 0.942 ns
BM_std_min<short>/3 1.19 ns 1.27 ns
BM_std_min<short>/4 1.58 ns 1.60 ns
BM_std_min<short>/5 1.98 ns 1.97 ns
BM_std_min<short>/6 2.38 ns 2.60 ns
BM_std_min<short>/7 2.78 ns 2.83 ns
BM_std_min<short>/8 3.17 ns 3.52 ns
BM_std_min<short>/9 3.57 ns 2.09 ns
BM_std_min<short>/10 3.96 ns 2.13 ns
BM_std_min<short>/11 4.35 ns 2.37 ns
BM_std_min<short>/12 4.75 ns 2.68 ns
BM_std_min<short>/13 5.16 ns 3.13 ns
BM_std_min<short>/14 5.54 ns 3.70 ns
BM_std_min<short>/15 5.94 ns 4.31 ns
BM_std_min<short>/16 6.33 ns 4.70 ns
BM_std_min<short>/17 6.73 ns 1.90 ns
BM_std_min<short>/18 7.13 ns 2.13 ns
BM_std_min<short>/19 7.52 ns 2.41 ns
BM_std_min<short>/20 7.92 ns 2.81 ns
BM_std_min<short>/21 8.31 ns 3.32 ns
BM_std_min<short>/22 8.72 ns 3.81 ns
BM_std_min<short>/23 9.15 ns 4.33 ns
BM_std_min<short>/24 9.57 ns 4.82 ns
BM_std_min<short>/25 9.98 ns 2.14 ns
BM_std_min<short>/26 10.4 ns 2.36 ns
BM_std_min<short>/27 10.8 ns 2.63 ns
BM_std_min<short>/28 11.3 ns 2.99 ns
BM_std_min<short>/29 11.7 ns 3.47 ns
BM_std_min<short>/30 12.1 ns 3.97 ns
BM_std_min<short>/31 13.2 ns 4.52 ns
BM_std_min<short>/32 13.0 ns 5.12 ns
BM_std_min<short>/64 28.4 ns 5.86 ns
BM_std_min<short>/512 341 ns 11.2 ns
BM_std_min<short>/1024 699 ns 15.8 ns
BM_std_min<short>/4000 2790 ns 51.1 ns
BM_std_min<short>/4096 2858 ns 52.2 ns
BM_std_min<short>/5500 3847 ns 69.2 ns
BM_std_min<short>/64000 45064 ns 947 ns
BM_std_min<short>/65536 46449 ns 970 ns
BM_std_min<short>/70000 49629 ns 1034 ns
BM_std_min<int>/1 0.398 ns 0.352 ns
BM_std_min<int>/2 0.798 ns 0.939 ns
BM_std_min<int>/3 1.21 ns 1.23 ns
BM_std_min<int>/4 1.58 ns 1.56 ns
BM_std_min<int>/5 1.98 ns 1.88 ns
BM_std_min<int>/6 2.38 ns 2.31 ns
BM_std_min<int>/7 3.37 ns 2.88 ns
BM_std_min<int>/8 3.17 ns 3.47 ns
BM_std_min<int>/9 3.56 ns 3.66 ns
BM_std_min<int>/10 3.96 ns 4.12 ns
BM_std_min<int>/11 4.43 ns 5.09 ns
BM_std_min<int>/12 4.75 ns 5.05 ns
BM_std_min<int>/13 5.15 ns 5.45 ns
BM_std_min<int>/14 5.54 ns 5.93 ns
BM_std_min<int>/15 5.94 ns 6.46 ns
BM_std_min<int>/16 6.33 ns 6.89 ns
BM_std_min<int>/17 6.73 ns 7.50 ns
BM_std_min<int>/18 7.59 ns 8.18 ns
BM_std_min<int>/19 7.52 ns 8.73 ns
BM_std_min<int>/20 7.92 ns 9.38 ns
BM_std_min<int>/21 8.31 ns 9.98 ns
BM_std_min<int>/22 9.27 ns 10.4 ns
BM_std_min<int>/23 9.11 ns 10.9 ns
BM_std_min<int>/24 9.51 ns 11.4 ns
BM_std_min<int>/25 9.91 ns 12.0 ns
BM_std_min<int>/26 10.3 ns 12.5 ns
BM_std_min<int>/27 10.7 ns 13.0 ns
BM_std_min<int>/28 11.1 ns 13.4 ns
BM_std_min<int>/29 11.5 ns 14.1 ns
BM_std_min<int>/30 11.9 ns 14.7 ns
BM_std_min<int>/31 13.2 ns 15.0 ns
BM_std_min<int>/32 12.8 ns 15.6 ns
BM_std_min<int>/64 28.9 ns 19.4 ns
BM_std_min<int>/512 342 ns 29.2 ns
BM_std_min<int>/1024 699 ns 43.6 ns
BM_std_min<int>/4000 2785 ns 114 ns
BM_std_min<int>/4096 2849 ns 118 ns
BM_std_min<int>/5500 3832 ns 147 ns
BM_std_min<int>/64000 44817 ns 1898 ns
BM_std_min<int>/65536 45893 ns 1949 ns
BM_std_min<int>/70000 49026 ns 2068 ns
BM_std_min<long long>/1 0.396 ns 0.353 ns
BM_std_min<long long>/2 0.791 ns 0.938 ns
BM_std_min<long long>/3 1.19 ns 1.17 ns
BM_std_min<long long>/4 1.59 ns 2.33 ns
BM_std_min<long long>/5 2.12 ns 1.87 ns
BM_std_min<long long>/6 3.06 ns 2.33 ns
BM_std_min<long long>/7 2.96 ns 2.73 ns
BM_std_min<long long>/8 3.19 ns 3.14 ns
BM_std_min<long long>/9 3.58 ns 3.61 ns
BM_std_min<long long>/10 3.97 ns 4.10 ns
BM_std_min<long long>/11 4.35 ns 4.54 ns
BM_std_min<long long>/12 4.75 ns 4.96 ns
BM_std_min<long long>/13 5.15 ns 5.43 ns
BM_std_min<long long>/14 5.54 ns 5.90 ns
BM_std_min<long long>/15 5.94 ns 6.46 ns
BM_std_min<long long>/16 6.33 ns 6.91 ns
BM_std_min<long long>/17 6.73 ns 2.70 ns
BM_std_min<long long>/18 7.12 ns 3.13 ns
BM_std_min<long long>/19 7.52 ns 3.47 ns
BM_std_min<long long>/20 7.92 ns 3.85 ns
BM_std_min<long long>/21 8.34 ns 4.26 ns
BM_std_min<long long>/22 8.72 ns 4.86 ns
BM_std_min<long long>/23 9.14 ns 5.53 ns
BM_std_min<long long>/24 9.57 ns 6.18 ns
BM_std_min<long long>/25 9.96 ns 6.68 ns
BM_std_min<long long>/26 10.4 ns 7.24 ns
BM_std_min<long long>/27 10.8 ns 7.74 ns
BM_std_min<long long>/28 11.2 ns 8.37 ns
BM_std_min<long long>/29 11.6 ns 9.10 ns
BM_std_min<long long>/30 12.1 ns 9.74 ns
BM_std_min<long long>/31 13.3 ns 10.5 ns
BM_std_min<long long>/32 13.0 ns 11.2 ns
BM_std_min<long long>/64 28.4 ns 12.6 ns
BM_std_min<long long>/512 342 ns 43.0 ns
BM_std_min<long long>/1024 699 ns 76.5 ns
BM_std_min<long long>/4000 2776 ns 270 ns
BM_std_min<long long>/4096 2844 ns 278 ns
BM_std_min<long long>/5500 3823 ns 374 ns
BM_std_min<long long>/64000 44663 ns 4872 ns
BM_std_min<long long>/65536 45742 ns 4985 ns
BM_std_min<long long>/70000 48852 ns 5476 ns
BM_std_min<__int128>/1 0.396 ns 0.471 ns
BM_std_min<__int128>/2 1.32 ns 1.20 ns
BM_std_min<__int128>/3 2.24 ns 2.01 ns
BM_std_min<__int128>/4 3.17 ns 2.77 ns
BM_std_min<__int128>/5 4.11 ns 3.57 ns
BM_std_min<__int128>/6 5.02 ns 4.46 ns
BM_std_min<__int128>/7 5.96 ns 5.40 ns
BM_std_min<__int128>/8 6.93 ns 6.30 ns
BM_std_min<__int128>/9 7.90 ns 7.24 ns
BM_std_min<__int128>/10 8.84 ns 8.22 ns
BM_std_min<__int128>/11 9.85 ns 9.22 ns
BM_std_min<__int128>/12 10.8 ns 10.2 ns
BM_std_min<__int128>/13 11.8 ns 11.2 ns
BM_std_min<__int128>/14 12.8 ns 12.2 ns
BM_std_min<__int128>/15 13.9 ns 13.2 ns
BM_std_min<__int128>/16 14.8 ns 14.2 ns
BM_std_min<__int128>/17 15.9 ns 15.3 ns
BM_std_min<__int128>/18 24.1 ns 16.4 ns
BM_std_min<__int128>/19 17.8 ns 17.4 ns
BM_std_min<__int128>/20 18.8 ns 18.5 ns
BM_std_min<__int128>/21 19.7 ns 19.5 ns
BM_std_min<__int128>/22 20.8 ns 20.6 ns
BM_std_min<__int128>/23 21.7 ns 21.7 ns
BM_std_min<__int128>/24 22.9 ns 22.7 ns
BM_std_min<__int128>/25 23.7 ns 23.8 ns
BM_std_min<__int128>/26 24.7 ns 24.8 ns
BM_std_min<__int128>/27 25.7 ns 25.9 ns
BM_std_min<__int128>/28 26.8 ns 27.0 ns
BM_std_min<__int128>/29 27.8 ns 28.0 ns
BM_std_min<__int128>/30 28.6 ns 29.1 ns
BM_std_min<__int128>/31 32.9 ns 30.1 ns
BM_std_min<__int128>/32 30.8 ns 31.1 ns
BM_std_min<__int128>/64 63.6 ns 64.7 ns
BM_std_min<__int128>/512 538 ns 542 ns
BM_std_min<__int128>/1024 1082 ns 1084 ns
BM_std_min<__int128>/4000 4244 ns 4242 ns
BM_std_min<__int128>/4096 4353 ns 4326 ns
BM_std_min<__int128>/5500 5841 ns 5823 ns
BM_std_min<__int128>/64000 67872 ns 68063 ns
BM_std_min<__int128>/65536 70434 ns 69720 ns
BM_std_min<__int128>/70000 74210 ns 74484 ns
BM_std_min<unsigned char>/1 0.396 ns 0.354 ns
BM_std_min<unsigned char>/2 1.06 ns 0.953 ns
BM_std_min<unsigned char>/3 1.45 ns 2.08 ns
BM_std_min<unsigned char>/4 1.86 ns 1.56 ns
BM_std_min<unsigned char>/5 1.88 ns 1.93 ns
BM_std_min<unsigned char>/6 2.24 ns 2.34 ns
BM_std_min<unsigned char>/7 2.64 ns 2.76 ns
BM_std_min<unsigned char>/8 3.04 ns 3.23 ns
BM_std_min<unsigned char>/9 3.04 ns 3.67 ns
BM_std_min<unsigned char>/10 3.44 ns 4.15 ns
BM_std_min<unsigned char>/11 3.85 ns 4.59 ns
BM_std_min<unsigned char>/12 4.30 ns 5.09 ns
BM_std_min<unsigned char>/13 4.44 ns 5.59 ns
BM_std_min<unsigned char>/14 4.71 ns 6.12 ns
BM_std_min<unsigned char>/15 5.29 ns 6.57 ns
BM_std_min<unsigned char>/16 5.69 ns 7.10 ns
BM_std_min<unsigned char>/17 5.85 ns 1.42 ns
BM_std_min<unsigned char>/18 6.26 ns 1.77 ns
BM_std_min<unsigned char>/19 6.64 ns 2.01 ns
BM_std_min<unsigned char>/20 7.17 ns 2.36 ns
BM_std_min<unsigned char>/21 7.20 ns 2.77 ns
BM_std_min<unsigned char>/22 7.65 ns 3.29 ns
BM_std_min<unsigned char>/23 8.16 ns 3.75 ns
BM_std_min<unsigned char>/24 8.88 ns 4.31 ns
BM_std_min<unsigned char>/25 9.10 ns 4.80 ns
BM_std_min<unsigned char>/26 9.54 ns 5.34 ns
BM_std_min<unsigned char>/27 9.94 ns 5.82 ns
BM_std_min<unsigned char>/28 10.4 ns 6.36 ns
BM_std_min<unsigned char>/29 10.6 ns 6.85 ns
BM_std_min<unsigned char>/30 11.0 ns 7.32 ns
BM_std_min<unsigned char>/31 12.4 ns 8.01 ns
BM_std_min<unsigned char>/32 12.0 ns 8.68 ns
BM_std_min<unsigned char>/64 27.8 ns 9.23 ns
BM_std_min<unsigned char>/512 292 ns 14.0 ns
BM_std_min<unsigned char>/1024 590 ns 16.0 ns
BM_std_min<unsigned char>/4000 2330 ns 29.6 ns
BM_std_min<unsigned char>/4096 2377 ns 31.6 ns
BM_std_min<unsigned char>/5500 3204 ns 37.1 ns
BM_std_min<unsigned char>/64000 37238 ns 481 ns
BM_std_min<unsigned char>/65536 38185 ns 492 ns
BM_std_min<unsigned char>/70000 40794 ns 526 ns
BM_std_min<unsigned short>/1 0.396 ns 0.377 ns
BM_std_min<unsigned short>/2 0.792 ns 1.18 ns
BM_std_min<unsigned short>/3 1.19 ns 1.70 ns
BM_std_min<unsigned short>/4 1.66 ns 2.19 ns
BM_std_min<unsigned short>/5 2.01 ns 2.76 ns
BM_std_min<unsigned short>/6 2.49 ns 3.30 ns
BM_std_min<unsigned short>/7 2.88 ns 3.81 ns
BM_std_min<unsigned short>/8 3.23 ns 4.24 ns
BM_std_min<unsigned short>/9 3.68 ns 1.49 ns
BM_std_min<unsigned short>/10 4.06 ns 1.76 ns
BM_std_min<unsigned short>/11 5.20 ns 2.18 ns
BM_std_min<unsigned short>/12 5.27 ns 2.65 ns
BM_std_min<unsigned short>/13 6.71 ns 3.16 ns
BM_std_min<unsigned short>/14 6.34 ns 3.77 ns
BM_std_min<unsigned short>/15 7.19 ns 4.24 ns
BM_std_min<unsigned short>/16 7.74 ns 4.76 ns
BM_std_min<unsigned short>/17 7.89 ns 1.65 ns
BM_std_min<unsigned short>/18 8.51 ns 1.96 ns
BM_std_min<unsigned short>/19 7.80 ns 2.41 ns
BM_std_min<unsigned short>/20 8.60 ns 2.96 ns
BM_std_min<unsigned short>/21 8.78 ns 3.45 ns
BM_std_min<unsigned short>/22 9.67 ns 3.99 ns
BM_std_min<unsigned short>/23 11.1 ns 5.66 ns
BM_std_min<unsigned short>/24 11.4 ns 4.94 ns
BM_std_min<unsigned short>/25 12.4 ns 3.02 ns
BM_std_min<unsigned short>/26 12.3 ns 2.15 ns
BM_std_min<unsigned short>/27 12.4 ns 2.65 ns
BM_std_min<unsigned short>/28 13.6 ns 3.10 ns
BM_std_min<unsigned short>/29 13.4 ns 3.62 ns
BM_std_min<unsigned short>/30 13.8 ns 4.28 ns
BM_std_min<unsigned short>/31 14.0 ns 4.74 ns
BM_std_min<unsigned short>/32 14.4 ns 5.24 ns
BM_std_min<unsigned short>/64 29.4 ns 7.18 ns
BM_std_min<unsigned short>/512 318 ns 9.53 ns
BM_std_min<unsigned short>/1024 641 ns 14.8 ns
BM_std_min<unsigned short>/4000 2576 ns 51.6 ns
BM_std_min<unsigned short>/4096 2466 ns 53.2 ns
BM_std_min<unsigned short>/5500 3543 ns 67.8 ns
BM_std_min<unsigned short>/64000 42742 ns 949 ns
BM_std_min<unsigned short>/65536 44433 ns 971 ns
BM_std_min<unsigned short>/70000 47769 ns 1036 ns
BM_std_min<unsigned int>/1 0.398 ns 0.352 ns
BM_std_min<unsigned int>/2 0.791 ns 0.890 ns
BM_std_min<unsigned int>/3 1.19 ns 1.10 ns
BM_std_min<unsigned int>/4 1.58 ns 1.34 ns
BM_std_min<unsigned int>/5 1.98 ns 1.60 ns
BM_std_min<unsigned int>/6 3.27 ns 1.90 ns
BM_std_min<unsigned int>/7 2.78 ns 2.26 ns
BM_std_min<unsigned int>/8 3.18 ns 2.60 ns
BM_std_min<unsigned int>/9 3.56 ns 2.94 ns
BM_std_min<unsigned int>/10 3.96 ns 3.26 ns
BM_std_min<unsigned int>/11 4.35 ns 3.78 ns
BM_std_min<unsigned int>/12 4.75 ns 3.94 ns
BM_std_min<unsigned int>/13 5.15 ns 4.32 ns
BM_std_min<unsigned int>/14 5.54 ns 4.65 ns
BM_std_min<unsigned int>/15 5.94 ns 5.02 ns
BM_std_min<unsigned int>/16 6.33 ns 5.32 ns
BM_std_min<unsigned int>/17 6.73 ns 5.67 ns
BM_std_min<unsigned int>/18 7.25 ns 6.00 ns
BM_std_min<unsigned int>/19 7.52 ns 6.38 ns
BM_std_min<unsigned int>/20 7.92 ns 6.89 ns
BM_std_min<unsigned int>/21 9.26 ns 7.24 ns
BM_std_min<unsigned int>/22 9.44 ns 11.0 ns
BM_std_min<unsigned int>/23 9.11 ns 8.00 ns
BM_std_min<unsigned int>/24 9.51 ns 8.41 ns
BM_std_min<unsigned int>/25 9.91 ns 8.80 ns
BM_std_min<unsigned int>/26 10.3 ns 9.12 ns
BM_std_min<unsigned int>/27 10.7 ns 9.26 ns
BM_std_min<unsigned int>/28 11.1 ns 9.82 ns
BM_std_min<unsigned int>/29 11.6 ns 10.2 ns
BM_std_min<unsigned int>/30 13.3 ns 10.4 ns
BM_std_min<unsigned int>/31 13.7 ns 10.9 ns
BM_std_min<unsigned int>/32 12.8 ns 11.5 ns
BM_std_min<unsigned int>/64 29.4 ns 14.0 ns
BM_std_min<unsigned int>/512 342 ns 24.9 ns
BM_std_min<unsigned int>/1024 700 ns 36.9 ns
BM_std_min<unsigned int>/4000 2783 ns 109 ns
BM_std_min<unsigned int>/4096 2851 ns 112 ns
BM_std_min<unsigned int>/5500 3832 ns 144 ns
BM_std_min<unsigned int>/64000 44828 ns 1895 ns
BM_std_min<unsigned int>/65536 45891 ns 1946 ns
BM_std_min<unsigned int>/70000 49018 ns 2068 ns
BM_std_min<unsigned long long>/1 0.396 ns 0.352 ns
BM_std_min<unsigned long long>/2 0.791 ns 0.824 ns
BM_std_min<unsigned long long>/3 1.21 ns 1.10 ns
BM_std_min<unsigned long long>/4 1.58 ns 1.37 ns
BM_std_min<unsigned long long>/5 1.98 ns 1.61 ns
BM_std_min<unsigned long long>/6 2.37 ns 1.89 ns
BM_std_min<unsigned long long>/7 2.78 ns 2.31 ns
BM_std_min<unsigned long long>/8 3.17 ns 2.81 ns
BM_std_min<unsigned long long>/9 3.56 ns 3.05 ns
BM_std_min<unsigned long long>/10 3.96 ns 3.28 ns
BM_std_min<unsigned long long>/11 4.35 ns 3.60 ns
BM_std_min<unsigned long long>/12 4.75 ns 3.94 ns
BM_std_min<unsigned long long>/13 5.15 ns 4.36 ns
BM_std_min<unsigned long long>/14 5.54 ns 4.65 ns
BM_std_min<unsigned long long>/15 5.94 ns 4.99 ns
BM_std_min<unsigned long long>/16 6.33 ns 5.33 ns
BM_std_min<unsigned long long>/17 6.73 ns 4.11 ns
BM_std_min<unsigned long long>/18 7.12 ns 4.43 ns
BM_std_min<unsigned long long>/19 7.52 ns 4.65 ns
BM_std_min<unsigned long long>/20 7.91 ns 4.96 ns
BM_std_min<unsigned long long>/21 8.31 ns 5.26 ns
BM_std_min<unsigned long long>/22 8.71 ns 5.56 ns
BM_std_min<unsigned long long>/23 9.57 ns 5.93 ns
BM_std_min<unsigned long long>/24 10.1 ns 6.35 ns
BM_std_min<unsigned long long>/25 9.94 ns 6.70 ns
BM_std_min<unsigned long long>/26 10.4 ns 7.02 ns
BM_std_min<unsigned long long>/27 15.8 ns 7.62 ns
BM_std_min<unsigned long long>/28 16.1 ns 8.23 ns
BM_std_min<unsigned long long>/29 11.6 ns 8.60 ns
BM_std_min<unsigned long long>/30 12.0 ns 8.90 ns
BM_std_min<unsigned long long>/31 17.5 ns 9.47 ns
BM_std_min<unsigned long long>/32 12.9 ns 9.95 ns
BM_std_min<unsigned long long>/64 30.8 ns 11.8 ns
BM_std_min<unsigned long long>/512 340 ns 54.4 ns
BM_std_min<unsigned long long>/1024 698 ns 100 ns
BM_std_min<unsigned long long>/4000 2774 ns 370 ns
BM_std_min<unsigned long long>/4096 2842 ns 378 ns
BM_std_min<unsigned long long>/5500 3822 ns 512 ns
BM_std_min<unsigned long long>/64000 44665 ns 6236 ns
BM_std_min<unsigned long long>/65536 45744 ns 6399 ns
BM_std_min<unsigned long long>/70000 48850 ns 7008 ns
BM_std_min<unsigned __int128>/1 0.397 ns 0.469 ns
BM_std_min<unsigned __int128>/2 1.32 ns 1.20 ns
BM_std_min<unsigned __int128>/3 2.24 ns 1.98 ns
BM_std_min<unsigned __int128>/4 3.17 ns 2.71 ns
BM_std_min<unsigned __int128>/5 4.13 ns 3.46 ns
BM_std_min<unsigned __int128>/6 5.02 ns 4.18 ns
BM_std_min<unsigned __int128>/7 5.97 ns 4.88 ns
BM_std_min<unsigned __int128>/8 6.94 ns 5.57 ns
BM_std_min<unsigned __int128>/9 7.89 ns 6.25 ns
BM_std_min<unsigned __int128>/10 8.92 ns 6.97 ns
BM_std_min<unsigned __int128>/11 9.90 ns 7.74 ns
BM_std_min<unsigned __int128>/12 10.9 ns 8.46 ns
BM_std_min<unsigned __int128>/13 11.9 ns 9.19 ns
BM_std_min<unsigned __int128>/14 12.9 ns 9.92 ns
BM_std_min<unsigned __int128>/15 14.0 ns 10.6 ns
BM_std_min<unsigned __int128>/16 15.0 ns 11.3 ns
BM_std_min<unsigned __int128>/17 16.0 ns 12.0 ns
BM_std_min<unsigned __int128>/18 27.9 ns 12.8 ns
BM_std_min<unsigned __int128>/19 18.0 ns 13.3 ns
BM_std_min<unsigned __int128>/20 19.0 ns 14.1 ns
BM_std_min<unsigned __int128>/21 20.0 ns 14.8 ns
BM_std_min<unsigned __int128>/22 21.0 ns 15.5 ns
BM_std_min<unsigned __int128>/23 22.0 ns 16.4 ns
BM_std_min<unsigned __int128>/24 23.0 ns 16.9 ns
BM_std_min<unsigned __int128>/25 24.1 ns 17.6 ns
BM_std_min<unsigned __int128>/26 25.1 ns 18.3 ns
BM_std_min<unsigned __int128>/27 26.2 ns 19.0 ns
BM_std_min<unsigned __int128>/28 27.2 ns 19.7 ns
BM_std_min<unsigned __int128>/29 28.3 ns 20.4 ns
BM_std_min<unsigned __int128>/30 29.4 ns 21.1 ns
BM_std_min<unsigned __int128>/31 41.0 ns 21.9 ns
BM_std_min<unsigned __int128>/32 31.5 ns 22.6 ns
BM_std_min<unsigned __int128>/64 65.6 ns 45.2 ns
BM_std_min<unsigned __int128>/512 538 ns 371 ns
BM_std_min<unsigned __int128>/1024 1089 ns 742 ns
BM_std_min<unsigned __int128>/4000 4261 ns 2889 ns
BM_std_min<unsigned __int128>/4096 4407 ns 2950 ns
BM_std_min<unsigned __int128>/5500 5920 ns 3956 ns
BM_std_min<unsigned __int128>/64000 69070 ns 46258 ns
BM_std_min<unsigned __int128>/65536 70673 ns 47416 ns
BM_std_min<unsigned __int128>/70000 75566 ns 50518 ns
philnik added a comment.
Simplify code
philnik added a comment.
Fix diff
philnik added a comment.
Try to fix CI
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D143596
Files:
libcxx/benchmarks/CMakeLists.txt
libcxx/benchmarks/algorithms/min.bench.cpp
libcxx/include/__algorithm/ranges_max.h
libcxx/include/__algorithm/ranges_min.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D143596.501239.patch
Type: text/x-patch
Size: 5114 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230301/35719dd1/attachment-0001.bin>
More information about the libcxx-commits
mailing list