[libcxx-commits] [PATCH] D122780: Modify std::sort: add BlockQuickSort partitioning algorithm for arithmetic types
Nilay Vaish via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Oct 13 01:40:59 PDT 2022
nilayvaish added a comment.
In D122780#3850519 <https://reviews.llvm.org/D122780#3850519>, @ldionne wrote:
> It seems like you rebased onto `main` with the branchless sort changes and also re-ran the benchmarks against that. Looking at the results, it looks like this basically improves the performance by a fairly significant margin for randomly distributed integers, but seems to also decrease the performance quite a bit for integers with some sort of structure (e.g. already sorted, descending or ascending). In particular, I assume the reduction of branch mispredictions is not a huge factor anymore since we introduced branchless sorting, or am I off here? The fact that it doesn't seem to provide improvements across the board definitely make it a trickier change to vet, since we'll have to decide whether we want to make this tradeoff.
>
> As it stands, we basically have to decide whether to optimize for randomly sorted data or to also take into account common patterns IIUC. That's not a super easy call to make, since we're talking about 40-50% improvements and 40-50% regressions in each case. I remember @Morwenn had mentioned pdqsort previously, and that seemed to be an algorithm that would handle both random data and also patterns properly. Would that solve the problems of this algorithm?
>
> Sorry if this isn't super helpful, but I literally don't know how to make this call. I'd very much welcome the perspective of other folks who have given a lot of thought to sorting algorithms.
>
> FWIW, making a major change to `std::sort` isn't a problem, as long as we have sufficient tests to validate its correctness, and that we are confident about its performance.
Below I provide the benchmark numbers for both BlockQuickSort and PdqSort. The baseline in both cases is the current implementation of std::sort. The numbers were collected on Intel's Skylake machines. Each benchmark was executed 20 times. To get to a combined performance number, I have added weights for each of the benchmark. The weights are just some bunch numbers I chose, I do not have any empirical data to justify these. I assumed that randomly permuted inputs have a significantly higher probability and that medium length sequences are also more probable than super short and super long sequences. The weighted average appears at the end: 15% improvement overall. Both PdqSort and BlockQuickSort arrive at a similar weighted average. I genreally think that the two implementations perform close to each other. So we can choose either.
`
BlockQuickSort PdqSort
name old cpu/op new cpu/op delta old cpu/op new cpu/op delta Weight
BM_Sort_uint32_Random_1 4.27ns ± 1% 4.41ns ± 1% 3.16% 4.49ns ±13% 3.77ns ± 2% -16.01% 10
BM_Sort_uint32_Random_4 1.96ns ± 1% 1.96ns ± 1% 0.00% 1.98ns ± 6% 6.25ns ± 3% 216.00% 100
BM_Sort_uint32_Random_16 10.5ns ± 0% 11.2ns ± 0% 6.31% 10.6ns ± 1% 11.3ns ± 2% 6.93% 1000
BM_Sort_uint32_Random_64 18.9ns ± 1% 17.1ns ± 1% -9.36% 19.0ns ± 2% 16.9ns ± 2% -10.94% 1000
BM_Sort_uint32_Random_256 26.6ns ± 1% 21.3ns ± 1% -20.03% 26.5ns ± 1% 20.5ns ± 1% -22.84% 1000
BM_Sort_uint32_Random_1024 34.1ns ± 1% 24.5ns ± 5% -28.15% 34.2ns ± 1% 23.0ns ± 1% -32.61% 1000
BM_Sort_uint32_Random_16384 49.1ns ± 1% 29.8ns ± 0% -39.30% 49.4ns ± 2% 27.4ns ± 1% -44.58% 100
BM_Sort_uint32_Random_262144 63.8ns ± 1% 35.3ns ± 1% -44.61% 64.0ns ± 1% 31.7ns ± 1% -50.51% 10
BM_Sort_uint32_Ascending_1 4.27ns ± 0% 4.42ns ± 1% 3.47% 4.28ns ± 1% 3.78ns ± 1% -11.66% 1
BM_Sort_uint32_Ascending_4 2.05ns ±14% 1.98ns ± 0% -3.68% 1.97ns ± 1% 1.74ns ± 1% -11.46% 1
BM_Sort_uint32_Ascending_16 0.93ns ±13% 0.85ns ± 1% -8.51% 0.89ns ± 0% 0.89ns ± 1% 0.00% 1
BM_Sort_uint32_Ascending_64 1.15ns ±13% 1.29ns ± 1% 11.64% 1.09ns ± 0% 1.52ns ± 1% 38.61% 1
BM_Sort_uint32_Ascending_256 1.29ns ±13% 1.44ns ± 0% 11.95% 1.24ns ± 1% 1.55ns ± 1% 25.71% 1
BM_Sort_uint32_Ascending_1024 1.09ns ±14% 1.26ns ± 1% 15.89% 1.04ns ± 1% 1.37ns ± 3% 31.41% 1
BM_Sort_uint32_Ascending_16384 1.01ns ±13% 1.20ns ± 1% 19.09% 0.96ns ± 0% 1.31ns ± 1% 35.76% 1
BM_Sort_uint32_Ascending_262144 0.96ns ± 1% 1.18ns ± 1% 22.80% 0.96ns ± 1% 1.30ns ± 2% 34.60% 1
BM_Sort_uint32_Descending_1 4.27ns ± 1% 4.42ns ± 1% 3.63% 4.28ns ± 1% 3.77ns ± 1% -11.87% 1
BM_Sort_uint32_Descending_4 1.96ns ± 1% 1.95ns ± 1% 0.00% 2.05ns ±13% 2.44ns ± 1% 18.65% 1
BM_Sort_uint32_Descending_16 4.28ns ±11% 4.32ns ± 2% 0.00% 4.21ns ±13% 4.60ns ± 3% 9.17% 1
BM_Sort_uint32_Descending_64 2.12ns ± 9% 2.95ns ± 1% 38.73% 2.05ns ±13% 3.00ns ± 1% 46.11% 1
BM_Sort_uint32_Descending_256 2.29ns ± 9% 3.01ns ± 0% 31.56% 2.20ns ±14% 2.77ns ± 1% 26.14% 1
BM_Sort_uint32_Descending_1024 2.47ns ± 9% 2.86ns ± 0% 15.65% 2.38ns ±13% 2.58ns ± 2% 8.41% 1
BM_Sort_uint32_Descending_16384 2.15ns ± 9% 2.73ns ± 1% 27.04% 2.07ns ±13% 2.42ns ± 1% 17.10% 1
BM_Sort_uint32_Descending_262144 2.12ns ± 9% 2.71ns ± 1% 27.39% 2.04ns ±13% 2.40ns ± 2% 17.67% 1
BM_Sort_uint32_SingleElement_1 4.66ns ± 9% 4.42ns ± 0% 0.00% 4.44ns ±11% 4.08ns ± 9% -8.09% 1
BM_Sort_uint32_SingleElement_4 2.10ns ±11% 2.08ns ±11% 0.00% 1.94ns ± 1% 1.93ns ±10% 0.00% 1
BM_Sort_uint32_SingleElement_16 0.89ns ± 0% 0.92ns ±10% 0.00% 0.90ns ± 1% 1.05ns ±10% 16.78% 1
BM_Sort_uint32_SingleElement_64 0.73ns ± 0% 1.67ns ±10% 129.82% 0.72ns ± 1% 1.53ns ±10% 111.51% 1
BM_Sort_uint32_SingleElement_256 0.83ns ± 1% 1.43ns ±10% 72.31% 0.83ns ± 1% 1.30ns ±10% 56.47% 1
BM_Sort_uint32_SingleElement_1024 0.76ns ± 2% 1.30ns ±10% 70.36% 0.76ns ± 2% 1.14ns ± 8% 49.38% 1
BM_Sort_uint32_SingleElement_16384 0.66ns ± 1% 1.22ns ±13% 85.32% 0.66ns ± 1% 1.02ns ± 5% 54.70% 1
BM_Sort_uint32_SingleElement_262144 0.65ns ± 1% 1.14ns ± 1% 76.14% 0.65ns ± 1% 0.98ns ± 3% 51.70% 1
BM_Sort_uint32_PipeOrgan_1 4.27ns ± 0% 4.42ns ± 1% 3.43% 4.29ns ± 1% 3.78ns ± 1% -12.01% 1
BM_Sort_uint32_PipeOrgan_4 1.94ns ± 0% 1.97ns ± 1% 1.38% 1.94ns ± 0% 1.89ns ± 1% -2.76% 1
BM_Sort_uint32_PipeOrgan_16 1.77ns ± 0% 1.82ns ± 0% 2.67% 1.77ns ± 1% 2.07ns ± 1% 17.10% 1
BM_Sort_uint32_PipeOrgan_64 4.56ns ±13% 3.49ns ± 0% -23.44% 4.35ns ± 1% 4.50ns ± 1% 3.53% 1
BM_Sort_uint32_PipeOrgan_256 2.71ns ±13% 3.13ns ±13% 15.54% 2.59ns ± 1% 3.80ns ± 1% 46.54% 1
BM_Sort_uint32_PipeOrgan_1024 3.64ns ±13% 6.13ns ±11% 68.19% 3.47ns ± 1% 5.18ns ± 2% 49.18% 1
BM_Sort_uint32_PipeOrgan_16384 4.43ns ±13% 7.65ns ±10% 72.70% 4.21ns ± 0% 6.00ns ± 1% 42.45% 1
BM_Sort_uint32_PipeOrgan_262144 5.28ns ±13% 8.83ns ±11% 67.17% 5.04ns ± 0% 6.79ns ± 1% 34.71% 1
BM_Sort_uint32_QuickSortAdversary_1 4.47ns ±13% 4.70ns ±11% 5.06% 4.27ns ± 0% 3.77ns ± 1% -11.77% 1
BM_Sort_uint32_QuickSortAdversary_4 2.00ns ± 9% 1.98ns ± 1% 0.00% 1.97ns ± 0% 1.74ns ± 1% -11.27% 1
BM_Sort_uint32_QuickSortAdversary_16 0.89ns ± 1% 0.90ns ±16% 0.63% 0.89ns ± 0% 0.93ns ± 1% 4.28% 1
BM_Sort_uint32_QuickSortAdversary_64 13.9ns ± 0% 18.4ns ± 0% 32.53% 14.7ns ±12% 15.5ns ± 1% 5.29% 1
BM_Sort_uint32_QuickSortAdversary_256 20.5ns ± 0% 26.8ns ± 0% 31.00% 21.8ns ±12% 20.6ns ± 1% 0.00% 1
BM_Sort_uint32_QuickSortAdversary_1024 29.3ns ± 0% 37.4ns ± 1% 27.73% 31.1ns ±12% 28.2ns ± 3% -9.36% 1
BM_Sort_uint32_QuickSortAdversary_16384 47.2ns ± 0% 59.7ns ± 2% 26.46% 50.1ns ±12% 44.7ns ± 1% -10.89% 1
BM_Sort_uint32_QuickSortAdversary_262144 66.6ns ± 0% 78.6ns ± 1% 17.96% 70.8ns ±12% 60.0ns ± 1% -15.32% 1
BM_Sort_uint64_Random_1 4.26ns ± 0% 4.41ns ± 1% 3.44% 4.52ns ±13% 3.77ns ± 1% -16.41% 10
BM_Sort_uint64_Random_4 1.96ns ± 0% 1.95ns ± 1% -0.34% 2.06ns ±13% 6.22ns ± 1% 202.72% 100
BM_Sort_uint64_Random_16 10.5ns ± 0% 11.6ns ± 1% 10.77% 10.9ns ±14% 10.5ns ± 1% 0.00% 1000
BM_Sort_uint64_Random_64 18.8ns ± 0% 17.5ns ± 1% -6.60% 18.8ns ± 3% 16.7ns ± 1% -11.33% 1000
BM_Sort_uint64_Random_256 26.4ns ± 0% 21.7ns ± 1% -17.88% 26.4ns ± 0% 20.4ns ± 1% -22.67% 1000
BM_Sort_uint64_Random_1024 33.8ns ± 1% 24.6ns ± 1% -27.15% 33.8ns ± 0% 22.7ns ± 1% -32.91% 1000
BM_Sort_uint64_Random_16384 48.7ns ± 0% 30.1ns ± 1% -38.10% 48.7ns ± 0% 27.1ns ± 1% -44.21% 100
BM_Sort_uint64_Random_262144 63.4ns ± 1% 35.7ns ± 1% -43.71% 63.3ns ± 1% 31.5ns ± 2% -50.24% 10
BM_Sort_uint64_Ascending_1 4.28ns ± 1% 4.41ns ± 1% 3.08% 4.27ns ± 1% 3.77ns ± 1% -11.80% 1
BM_Sort_uint64_Ascending_4 1.96ns ± 1% 1.96ns ± 0% 0.00% 1.95ns ± 0% 1.81ns ± 1% -7.50% 1
BM_Sort_uint64_Ascending_16 0.89ns ± 1% 0.93ns ± 1% 3.79% 0.89ns ± 1% 1.09ns ± 1% 21.85% 1
BM_Sort_uint64_Ascending_64 1.20ns ±13% 1.31ns ± 1% 9.64% 1.15ns ± 1% 1.52ns ± 1% 32.50% 1
BM_Sort_uint64_Ascending_256 1.42ns ±12% 1.50ns ± 1% 5.25% 1.37ns ± 2% 1.50ns ± 3% 9.43% 1
BM_Sort_uint64_Ascending_1024 1.17ns ±12% 1.28ns ± 1% 9.80% 1.13ns ± 1% 1.31ns ± 2% 16.35% 1
BM_Sort_uint64_Ascending_16384 1.05ns ±12% 1.21ns ± 1% 15.72% 1.00ns ± 1% 1.16ns ± 1% 15.71% 1
BM_Sort_uint64_Ascending_262144 1.05ns ±13% 1.20ns ± 1% 14.62% 1.01ns ± 1% 1.15ns ± 1% 14.46% 1
BM_Sort_uint64_Descending_1 4.27ns ± 1% 4.42ns ± 1% 3.41% 4.27ns ± 1% 3.77ns ± 1% -11.74% 1
BM_Sort_uint64_Descending_4 1.95ns ± 0% 1.96ns ± 0% 0.32% 2.04ns ±14% 2.44ns ± 1% 19.76% 1
BM_Sort_uint64_Descending_16 3.87ns ± 1% 4.13ns ± 1% 6.73% 4.08ns ±13% 5.15ns ± 1% 26.21% 1
BM_Sort_uint64_Descending_64 1.98ns ± 5% 2.97ns ± 1% 50.29% 2.05ns ±13% 2.94ns ± 2% 43.02% 1
BM_Sort_uint64_Descending_256 2.18ns ±10% 3.09ns ± 1% 41.56% 2.14ns ±12% 2.88ns ± 2% 34.52% 1
BM_Sort_uint64_Descending_1024 2.46ns ± 9% 2.86ns ± 1% 16.28% 2.36ns ±12% 2.43ns ± 1% 2.65% 1
BM_Sort_uint64_Descending_16384 2.13ns ± 9% 2.75ns ± 2% 29.10% 2.04ns ±13% 2.28ns ± 1% 11.95% 1
BM_Sort_uint64_Descending_262144 2.14ns ± 9% 2.72ns ± 1% 27.48% 2.06ns ±12% 2.30ns ± 1% 11.59% 1
BM_Sort_uint64_SingleElement_1 4.67ns ± 9% 4.42ns ± 0% 0.00% 4.38ns ±10% 4.18ns ±10% 0.00% 1
BM_Sort_uint64_SingleElement_4 2.14ns ± 9% 2.04ns ±14% 0.00% 1.96ns ± 0% 2.01ns ±10% 0.00% 1
BM_Sort_uint64_SingleElement_16 0.89ns ± 1% 0.99ns ±11% 10.85% 0.89ns ± 0% 1.21ns ±10% 35.14% 1
BM_Sort_uint64_SingleElement_64 1.09ns ± 1% 1.83ns ±11% 68.80% 1.09ns ± 1% 1.70ns ± 9% 56.29% 1
BM_Sort_uint64_SingleElement_256 1.26ns ± 3% 1.48ns ±10% 18.25% 1.26ns ± 2% 1.46ns ± 4% 16.46% 1
BM_Sort_uint64_SingleElement_1024 1.09ns ± 1% 1.30ns ±10% 19.87% 1.08ns ± 1% 1.26ns ± 2% 16.01% 1
BM_Sort_uint64_SingleElement_16384 1.04ns ± 1% 1.23ns ±12% 19.17% 1.04ns ± 1% 1.24ns ± 5% 19.30% 1
BM_Sort_uint64_SingleElement_262144 1.01ns ± 1% 1.15ns ± 2% 13.41% 1.01ns ± 1% 1.17ns ± 3% 14.88% 1
BM_Sort_uint64_PipeOrgan_1 4.27ns ± 1% 4.42ns ± 1% 3.40% 4.27ns ± 0% 3.78ns ± 1% -11.58% 1
BM_Sort_uint64_PipeOrgan_4 1.96ns ± 0% 1.96ns ± 1% 0.00% 1.96ns ± 0% 1.97ns ± 1% 0.42% 1
BM_Sort_uint64_PipeOrgan_16 1.82ns ± 9% 1.91ns ± 1% 4.60% 1.81ns ± 0% 2.17ns ± 1% 20.11% 1
BM_Sort_uint64_PipeOrgan_64 4.56ns ±13% 3.48ns ± 4% -23.73% 4.37ns ± 1% 4.30ns ± 1% -1.66% 1
BM_Sort_uint64_PipeOrgan_256 2.81ns ±13% 3.31ns ±10% 17.65% 2.70ns ± 1% 3.69ns ± 1% 37.06% 1
BM_Sort_uint64_PipeOrgan_1024 3.73ns ±14% 6.35ns ±10% 70.14% 3.60ns ± 2% 5.11ns ± 1% 42.01% 1
BM_Sort_uint64_PipeOrgan_16384 4.40ns ±13% 7.91ns ±10% 79.99% 4.20ns ± 1% 5.86ns ± 1% 39.65% 1
BM_Sort_uint64_PipeOrgan_262144 5.30ns ±13% 9.10ns ±10% 71.74% 5.06ns ± 1% 6.68ns ± 1% 32.06% 1
BM_Sort_uint64_QuickSortAdversary_1 4.32ns ± 8% 4.47ns ± 5% 3.35% 4.27ns ± 1% 3.77ns ± 1% -11.70% 1
BM_Sort_uint64_QuickSortAdversary_4 1.95ns ± 0% 1.96ns ± 1% 0.29% 2.03ns ±14% 1.81ns ± 1% -11.02% 1
BM_Sort_uint64_QuickSortAdversary_16 0.89ns ± 1% 0.91ns ± 1% 2.17% 0.95ns ±12% 1.08ns ± 2% 14.17% 1
BM_Sort_uint64_QuickSortAdversary_64 13.9ns ± 0% 18.7ns ± 0% 34.55% 14.7ns ±12% 16.0ns ± 1% 0.00% 1
BM_Sort_uint64_QuickSortAdversary_256 20.6ns ± 1% 26.7ns ± 1% 29.68% 21.9ns ±11% 21.0ns ± 1% 0.00% 1
BM_Sort_uint64_QuickSortAdversary_1024 29.1ns ± 0% 37.3ns ± 1% 28.18% 30.9ns ±12% 28.2ns ± 1% -8.58% 1
BM_Sort_uint64_QuickSortAdversary_16384 47.6ns ± 0% 59.6ns ± 1% 25.26% 51.5ns ±10% 45.7ns ± 1% -11.16% 1
BM_Sort_uint64_QuickSortAdversary_262144 66.9ns ± 1% 80.8ns ± 1% 20.77% 73.2ns ±11% 63.2ns ± 2% -13.65% 1
BM_Sort_pair<uint32, uint32>_Random_1 4.43ns ± 1% 4.42ns ± 1% -0.29% 4.67ns ±13% 3.78ns ± 1% -19.16% 10
BM_Sort_pair<uint32, uint32>_Random_4 6.70ns ± 0% 6.78ns ± 1% 1.18% 6.70ns ± 1% 6.54ns ± 2% -2.42% 100
BM_Sort_pair<uint32, uint32>_Random_16 25.6ns ± 1% 17.3ns ± 2% -32.40% 25.5ns ± 1% 15.3ns ± 1% -39.91% 1000
BM_Sort_pair<uint32, uint32>_Random_64 35.9ns ± 1% 28.4ns ± 1% -20.89% 35.9ns ± 1% 27.6ns ± 1% -23.20% 1000
BM_Sort_pair<uint32, uint32>_Random_256 43.6ns ± 0% 35.6ns ± 1% -18.15% 43.6ns ± 1% 35.1ns ± 1% -19.36% 1000
BM_Sort_pair<uint32, uint32>_Random_1024 51.5ns ± 0% 42.8ns ± 1% -16.76% 51.5ns ± 1% 42.6ns ± 2% -17.35% 1000
BM_Sort_pair<uint32, uint32>_Random_16384 67.6ns ± 1% 58.5ns ± 1% -13.51% 67.8ns ± 2% 58.3ns ± 2% -14.09% 100
BM_Sort_pair<uint32, uint32>_Random_262144 83.9ns ± 4% 74.4ns ± 4% -11.37% 83.7ns ± 4% 73.9ns ± 4% -11.72% 10
BM_Sort_pair<uint32, uint32>_Ascending_1 4.44ns ± 1% 4.42ns ± 1% -0.27% 4.44ns ± 0% 3.78ns ± 1% -14.92% 1
BM_Sort_pair<uint32, uint32>_Ascending_4 2.13ns ± 0% 2.12ns ± 1% 0.00% 2.13ns ± 1% 2.10ns ± 4% -1.26% 1
BM_Sort_pair<uint32, uint32>_Ascending_16 2.23ns ± 0% 1.61ns ± 2% -27.64% 2.22ns ± 1% 1.58ns ± 1% -28.86% 1
BM_Sort_pair<uint32, uint32>_Ascending_64 1.39ns ± 1% 1.50ns ± 1% 7.76% 1.39ns ± 1% 1.66ns ± 1% 19.24% 1
BM_Sort_pair<uint32, uint32>_Ascending_256 1.56ns ±13% 1.57ns ± 2% 0.94% 1.49ns ± 1% 1.81ns ± 2% 21.72% 1
BM_Sort_pair<uint32, uint32>_Ascending_1024 1.43ns ±13% 1.38ns ± 1% 0.00% 1.37ns ± 1% 1.66ns ± 2% 21.47% 1
BM_Sort_pair<uint32, uint32>_Ascending_16384 1.27ns ±13% 1.21ns ± 1% -4.34% 1.21ns ± 1% 1.49ns ± 2% 23.07% 1
BM_Sort_pair<uint32, uint32>_Ascending_262144 1.26ns ±12% 1.21ns ± 2% 0.00% 1.21ns ± 1% 1.48ns ± 1% 22.73% 1
BM_Sort_pair<uint32, uint32>_Descending_1 4.63ns ±13% 4.42ns ± 0% -4.44% 4.43ns ± 1% 3.79ns ± 1% -14.39% 1
BM_Sort_pair<uint32, uint32>_Descending_4 3.00ns ± 1% 2.97ns ± 1% -0.85% 2.99ns ± 1% 3.31ns ± 1% 10.61% 1
BM_Sort_pair<uint32, uint32>_Descending_16 4.83ns ± 1% 7.39ns ± 1% 52.92% 5.02ns ±14% 7.30ns ± 2% 45.36% 1
BM_Sort_pair<uint32, uint32>_Descending_64 3.25ns ± 1% 2.85ns ± 1% -12.27% 3.43ns ±12% 3.12ns ± 1% -8.86% 1
BM_Sort_pair<uint32, uint32>_Descending_256 2.78ns ± 1% 2.78ns ± 1% 0.00% 2.89ns ±13% 3.22ns ± 1% 11.36% 1
BM_Sort_pair<uint32, uint32>_Descending_1024 3.38ns ± 0% 2.32ns ± 1% -31.18% 3.56ns ±13% 2.61ns ± 1% -26.54% 1
BM_Sort_pair<uint32, uint32>_Descending_16384 3.04ns ± 1% 2.12ns ± 1% -30.14% 3.19ns ±13% 2.40ns ± 1% -24.79% 1
BM_Sort_pair<uint32, uint32>_Descending_262144 3.21ns ±13% 2.13ns ± 0% -33.77% 3.21ns ±13% 2.40ns ± 1% -25.28% 1
BM_Sort_pair<uint32, uint32>_SingleElement_1 4.83ns ± 9% 4.42ns ± 0% -8.47% 4.66ns ±13% 3.95ns ±14% -15.29% 1
BM_Sort_pair<uint32, uint32>_SingleElement_4 2.41ns ± 9% 2.13ns ± 0% -11.64% 2.31ns ±13% 2.44ns ±10% 0.00% 1
BM_Sort_pair<uint32, uint32>_SingleElement_16 2.02ns ±23% 1.75ns ± 1% 0.00% 1.74ns ±17% 1.81ns ±10% 0.00% 1
BM_Sort_pair<uint32, uint32>_SingleElement_64 1.53ns ± 9% 1.91ns ±13% 24.46% 1.41ns ± 1% 2.01ns ±11% 43.16% 1
BM_Sort_pair<uint32, uint32>_SingleElement_256 1.71ns ± 8% 2.00ns ±11% 17.25% 1.59ns ± 2% 1.85ns ±10% 16.66% 1
BM_Sort_pair<uint32, uint32>_SingleElement_1024 1.50ns ±13% 1.75ns ±12% 16.59% 1.45ns ± 1% 1.52ns ±10% 0.00% 1
BM_Sort_pair<uint32, uint32>_SingleElement_16384 1.30ns ± 1% 1.71ns ±11% 31.45% 1.31ns ± 1% 1.44ns ±10% 10.59% 1
BM_Sort_pair<uint32, uint32>_SingleElement_262144 1.29ns ± 1% 1.71ns ±11% 32.70% 1.29ns ± 0% 1.37ns ±12% 0.00% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_1 4.43ns ± 0% 4.74ns ±11% 0.00% 4.44ns ± 1% 3.78ns ± 1% -14.72% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_4 2.29ns ± 0% 2.44ns ±11% 0.00% 2.29ns ± 0% 2.35ns ± 1% 2.76% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_16 4.68ns ± 1% 3.01ns ± 1% -35.66% 4.68ns ± 1% 2.83ns ± 1% -39.52% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_64 4.52ns ± 1% 4.05ns ± 1% -10.38% 4.52ns ± 1% 5.29ns ± 1% 17.23% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_256 5.60ns ± 1% 2.80ns ± 1% -49.95% 5.59ns ± 1% 4.33ns ± 1% -22.61% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_1024 6.41ns ± 1% 5.54ns ± 1% -13.62% 6.40ns ± 1% 5.49ns ± 1% -14.31% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_16384 7.27ns ± 1% 6.27ns ± 1% -13.68% 7.26ns ± 0% 5.97ns ± 1% -17.72% 1
BM_Sort_pair<uint32, uint32>_PipeOrgan_262144 8.11ns ± 1% 6.98ns ± 5% -13.96% 8.11ns ± 1% 6.65ns ± 1% -18.00% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_1 4.45ns ± 1% 4.42ns ± 1% -0.71% 4.43ns ± 0% 3.78ns ± 1% -14.72% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_4 2.30ns ± 8% 2.39ns ±12% 0.00% 2.28ns ± 1% 2.28ns ± 1% 0.00% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_16 4.94ns ±13% 3.11ns ±10% -36.97% 4.73ns ± 1% 2.78ns ± 1% -41.18% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_64 7.06ns ±13% 7.96ns ±10% 12.87% 6.74ns ± 0% 7.36ns ± 3% 9.20% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_256 9.69ns ±13% 7.81ns ±11% -19.36% 9.27ns ± 1% 7.41ns ± 1% -20.07% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_1024 11.3ns ±14% 10.0ns ±11% -11.64% 10.9ns ± 1% 9.0ns ± 3% -17.40% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_16384 34.2ns ±13% 24.3ns ±12% -28.84% 32.7ns ± 0% 22.9ns ± 1% -30.03% 1
BM_Sort_pair<uint32, uint32>_QuickSortAdversary_262144 36.3ns ± 0% 26.8ns ±13% -26.00% 36.3ns ± 0% 25.1ns ± 4% -30.91% 1
BM_Sort_tuple<uint32, uint64, uint32>_Random_1 4.78ns ± 1% 4.76ns ± 1% -0.54% 5.07ns ±12% 4.11ns ± 1% -18.90% 10
BM_Sort_tuple<uint32, uint64, uint32>_Random_4 7.20ns ± 0% 7.29ns ± 3% 1.23% 7.91ns ±14% 7.89ns ± 1% 0.00% 100
BM_Sort_tuple<uint32, uint64, uint32>_Random_16 31.6ns ± 1% 19.7ns ± 2% -37.59% 34.3ns ±10% 20.4ns ± 1% -40.67% 1000
BM_Sort_tuple<uint32, uint64, uint32>_Random_64 44.4ns ± 1% 33.7ns ± 1% -24.11% 48.2ns ±11% 33.8ns ± 1% -30.04% 1000
BM_Sort_tuple<uint32, uint64, uint32>_Random_256 51.7ns ± 1% 40.4ns ± 0% -21.84% 56.0ns ±12% 41.2ns ± 1% -26.43% 1000
BM_Sort_tuple<uint32, uint64, uint32>_Random_1024 59.3ns ± 1% 47.1ns ± 1% -20.69% 63.6ns ±11% 48.0ns ± 1% -24.51% 1000
BM_Sort_tuple<uint32, uint64, uint32>_Random_16384 75.6ns ± 1% 63.6ns ± 2% -15.89% 81.0ns ±11% 64.7ns ± 1% -20.16% 100
BM_Sort_tuple<uint32, uint64, uint32>_Random_262144 93.5ns ± 2% 81.1ns ± 5% -13.24% 98.1ns ±13% 81.4ns ± 3% -17.09% 10
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1 4.81ns ± 2% 4.76ns ± 1% -0.94% 4.85ns ± 6% 4.13ns ± 1% -14.86% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_4 2.33ns ± 2% 2.33ns ± 4% 0.00% 2.35ns ± 3% 2.23ns ± 4% -5.15% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16 3.17ns ± 1% 1.74ns ± 2% -45.24% 3.18ns ± 2% 1.61ns ± 2% -49.24% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_64 2.57ns ± 3% 2.50ns ± 5% -2.81% 2.62ns ± 6% 2.77ns ± 2% 6.03% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_256 2.59ns ± 2% 2.49ns ± 4% -3.67% 2.61ns ± 3% 2.88ns ± 3% 10.45% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_1024 2.23ns ± 4% 2.18ns ± 3% -2.32% 2.23ns ± 2% 2.48ns ± 2% 10.98% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_16384 2.10ns ± 2% 2.06ns ± 2% -1.54% 2.11ns ± 2% 2.34ns ± 1% 10.78% 1
BM_Sort_tuple<uint32, uint64, uint32>_Ascending_262144 2.12ns ± 2% 2.08ns ± 2% -1.59% 2.12ns ± 1% 2.32ns ± 2% 9.44% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1 4.81ns ± 1% 4.78ns ± 2% -0.55% 4.84ns ± 2% 4.12ns ± 1% -14.87% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_4 3.89ns ± 3% 3.77ns ± 1% -3.04% 3.89ns ± 1% 4.07ns ± 1% 4.81% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16 5.95ns ±10% 10.26ns ± 1% 72.39% 5.92ns ± 0% 9.28ns ± 3% 56.86% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_64 4.63ns ±12% 4.06ns ± 2% -12.37% 4.48ns ± 3% 4.11ns ± 2% -8.15% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_256 3.82ns ±13% 3.74ns ± 3% 0.00% 3.69ns ± 2% 4.25ns ± 1% 15.14% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_1024 4.56ns ±13% 3.23ns ± 1% -29.31% 4.39ns ± 1% 3.68ns ± 5% -16.16% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_16384 4.23ns ±13% 3.00ns ± 1% -29.09% 4.06ns ± 1% 3.32ns ± 2% -18.30% 1
BM_Sort_tuple<uint32, uint64, uint32>_Descending_262144 4.65ns ± 3% 3.40ns ± 1% -27.01% 4.66ns ± 2% 3.65ns ± 1% -21.53% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1 4.82ns ± 2% 4.77ns ± 2% -1.05% 5.06ns ±14% 4.13ns ± 1% -18.47% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_4 2.50ns ± 2% 2.51ns ± 4% 0.00% 2.64ns ±15% 2.35ns ± 7% -10.75% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16 2.45ns ± 1% 1.99ns ± 2% -18.72% 2.60ns ±12% 1.69ns ± 5% -34.99% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_64 2.78ns ±11% 3.36ns ± 4% 20.88% 2.87ns ±13% 2.94ns ± 5% 0.00% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_256 3.11ns ±24% 3.09ns ± 3% 0.00% 3.05ns ±16% 2.99ns ± 9% 0.00% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_1024 2.70ns ± 9% 2.52ns ± 3% -6.38% 2.63ns ±11% 2.36ns ± 9% -10.36% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_16384 2.48ns ±12% 2.44ns ± 3% 0.00% 2.30ns ± 2% 2.32ns ± 9% 0.00% 1
BM_Sort_tuple<uint32, uint64, uint32>_SingleElement_262144 2.60ns ± 8% 2.45ns ± 7% -5.71% 2.43ns ± 3% 2.38ns ± 9% 0.00% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1 5.73ns ±10% 5.05ns ±13% -11.87% 5.27ns ± 4% 4.61ns ±11% -12.43% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_4 2.71ns ±12% 2.71ns ±13% 0.00% 2.58ns ± 0% 2.95ns ±10% 14.52% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16 5.81ns ± 2% 4.29ns ±13% -26.10% 5.81ns ± 1% 3.64ns ±10% -37.30% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_64 6.05ns ± 3% 5.64ns ±14% -6.68% 6.04ns ± 2% 8.07ns ±13% 33.50% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_256 7.43ns ± 3% 4.01ns ±12% -46.12% 7.45ns ± 1% 5.67ns ± 2% -23.87% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_1024 8.91ns ± 1% 6.92ns ±14% -22.30% 8.98ns ± 1% 7.61ns ± 1% -15.22% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_16384 9.65ns ± 1% 7.87ns ± 1% -18.47% 9.75ns ± 1% 8.66ns ± 1% -11.20% 1
BM_Sort_tuple<uint32, uint64, uint32>_PipeOrgan_262144 11.7ns ± 1% 9.2ns ± 1% -21.28% 11.8ns ± 1% 9.8ns ± 1% -16.53% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_1 4.80ns ± 2% 4.79ns ± 2% 0.00% 4.83ns ± 2% 4.14ns ± 4% -14.23% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_4 2.71ns ± 1% 2.71ns ± 2% 0.00% 2.71ns ± 1% 2.69ns ± 1% -0.74% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_16 5.97ns ± 1% 4.22ns ±13% -29.33% 5.97ns ± 0% 3.98ns ± 1% -33.38% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_64 10.0ns ± 2% 9.3ns ±12% -6.99% 9.95ns ± 1% 9.07ns ± 1% -8.84% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_256 12.5ns ± 1% 10.7ns ±12% -13.94% 12.6ns ± 4% 10.2ns ± 1% -18.73% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_1024 23.2ns ± 2% 15.5ns ±11% -33.05% 23.3ns ± 4% 14.6ns ± 1% -37.55% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_16384 48.5ns ± 1% 41.0ns ±10% -15.46% 48.5ns ± 1% 39.0ns ± 2% -19.70% 1
BM_Sort_tuple<uint32, uint64, uint32>_QuickSortAdversary_262144 53.6ns ± 6% 47.2ns ±10% -11.88% 53.5ns ± 1% 43.7ns ± 1% -18.20% 1
BM_Sort_string_Random_1 5.01ns ± 1% 5.03ns ± 2% 0.00% 5.29ns ±12% 5.82ns ± 1% 10.12% 10
BM_Sort_string_Random_4 16.3ns ± 4% 16.0ns ± 5% 0.00% 17.2ns ±16% 18.2ns ± 5% 5.71% 100
BM_Sort_string_Random_16 48.7ns ± 3% 38.2ns ± 4% -21.57% 52.4ns ±13% 41.5ns ± 4% -20.66% 1000
BM_Sort_string_Random_64 74.6ns ± 3% 65.0ns ± 6% -12.84% 75.5ns ± 3% 66.6ns ± 4% -11.81% 1000
BM_Sort_string_Random_256 96.0ns ± 2% 85.1ns ± 2% -11.35% 96.9ns ± 3% 86.6ns ± 4% -10.59% 1000
BM_Sort_string_Random_1024 119ns ± 3% 105ns ± 4% -11.64% 120ns ± 3% 107ns ± 4% -11.06% 1000
BM_Sort_string_Random_16384 182ns ± 5% 161ns ± 8% -11.68% 186ns ± 5% 163ns ± 6% -12.11% 100
BM_Sort_string_Random_262144 265ns ±17% 230ns ±13% -13.39% 276ns ±22% 227ns ± 9% -17.60% 10
BM_Sort_string_Ascending_1 5.03ns ± 2% 5.00ns ± 1% -0.75% 5.05ns ± 2% 5.81ns ± 1% 15.09% 1
BM_Sort_string_Ascending_4 9.03ns ±12% 8.84ns ±14% 0.00% 8.87ns ± 6% 8.98ns ±14% 0.00% 1
BM_Sort_string_Ascending_16 16.0ns ± 9% 10.9ns ±22% -32.14% 16.5ns ±22% 11.1ns ±12% -32.85% 1
BM_Sort_string_Ascending_64 20.6ns ±17% 19.8ns ±19% 0.00% 20.6ns ±31% 20.0ns ±23% 0.00% 1
BM_Sort_string_Ascending_256 19.6ns ±19% 19.1ns ±20% 0.00% 19.6ns ±14% 20.0ns ±17% 0.00% 1
BM_Sort_string_Ascending_1024 18.7ns ±14% 17.9ns ±23% 0.00% 19.4ns ±18% 19.2ns ±27% 0.00% 1
BM_Sort_string_Ascending_16384 36.4ns ±28% 34.4ns ±46% 0.00% 39.7ns ±17% 38.0ns ±18% 0.00% 1
BM_Sort_string_Ascending_262144 40.3ns ±32% 36.1ns ±49% 0.00% 44.4ns ±21% 38.8ns ±29% -12.62% 1
BM_Sort_string_Descending_1 5.05ns ± 2% 5.03ns ± 2% -0.50% 5.04ns ± 2% 5.81ns ± 2% 15.46% 1
BM_Sort_string_Descending_4 11.3ns ± 7% 11.8ns ±14% 4.51% 11.5ns ± 5% 14.0ns ± 6% 22.42% 1
BM_Sort_string_Descending_16 27.7ns ±13% 47.9ns ±16% 73.17% 27.2ns ± 5% 50.3ns ± 9% 85.19% 1
BM_Sort_string_Descending_64 28.0ns ±19% 26.4ns ±18% 0.00% 28.1ns ±11% 26.3ns ±15% -6.21% 1
BM_Sort_string_Descending_256 25.7ns ±14% 24.5ns ±27% 0.00% 26.9ns ±15% 24.4ns ±19% -9.56% 1
BM_Sort_string_Descending_1024 30.5ns ±16% 23.0ns ±19% -24.39% 32.6ns ±15% 24.3ns ±16% -25.51% 1
BM_Sort_string_Descending_16384 47.9ns ±20% 42.9ns ±37% -10.55% 49.1ns ±42% 42.1ns ±30% -14.24% 1
BM_Sort_string_Descending_262144 69.3ns ±35% 53.2ns ±67% -23.20% 74.0ns ±50% 56.8ns ±47% -23.32% 1
BM_Sort_string_SingleElement_1 5.07ns ± 2% 5.09ns ± 7% 0.00% 5.21ns ±13% 5.81ns ± 1% 11.44% 1
BM_Sort_string_SingleElement_4 8.94ns ± 8% 9.14ns ±12% 0.00% 9.03ns ±13% 9.08ns ±11% 0.00% 1
BM_Sort_string_SingleElement_16 20.1ns ± 6% 9.2ns ±13% -54.12% 20.5ns ± 5% 9.2ns ±11% -55.09% 1
BM_Sort_string_SingleElement_64 27.9ns ±10% 26.9ns ±20% 0.00% 28.2ns ± 9% 25.1ns ±16% -11.04% 1
BM_Sort_string_SingleElement_256 25.9ns ± 8% 24.5ns ±23% -5.43% 26.6ns ± 5% 24.5ns ± 8% -7.90% 1
BM_Sort_string_SingleElement_1024 24.1ns ±17% 21.4ns ±20% -11.23% 25.0ns ± 8% 21.6ns ± 6% -13.53% 1
BM_Sort_string_SingleElement_16384 22.8ns ±16% 21.4ns ±26% 0.00% 24.0ns ±18% 21.7ns ± 9% -9.38% 1
BM_Sort_string_SingleElement_262144 21.0ns ±23% 20.7ns ±28% 0.00% 22.5ns ±35% 21.7ns ±14% 0.00% 1
BM_Sort_string_PipeOrgan_1 5.10ns ± 2% 5.04ns ± 3% -1.02% 5.07ns ± 2% 5.83ns ± 2% 14.89% 1
BM_Sort_string_PipeOrgan_4 9.89ns ±13% 9.61ns ±12% 0.00% 10.0ns ±22% 10.3ns ±15% 0.00% 1
BM_Sort_string_PipeOrgan_16 27.3ns ± 8% 18.8ns ±12% -31.28% 28.4ns ±17% 21.1ns ± 7% -25.66% 1
BM_Sort_string_PipeOrgan_64 39.1ns ±13% 34.3ns ±18% -12.35% 40.3ns ±20% 47.8ns ±11% 18.65% 1
BM_Sort_string_PipeOrgan_256 49.4ns ±13% 27.9ns ±16% -43.50% 49.4ns ± 6% 34.1ns ±15% -30.98% 1
BM_Sort_string_PipeOrgan_1024 59.6ns ±13% 44.5ns ±20% -25.30% 58.2ns ± 8% 48.6ns ±16% -16.42% 1
BM_Sort_string_PipeOrgan_16384 80.8ns ±10% 65.0ns ±19% -19.64% 82.8ns ±26% 76.8ns ±22% -7.21% 1
BM_Sort_string_PipeOrgan_262144 126ns ±26% 92ns ±43% -27.23% 122ns ±33% 106ns ±31% -12.89% 1
BM_Sort_string_QuickSortAdversary_1 5.02ns ± 1% 5.00ns ± 1% -0.40% 5.00ns ± 1% 5.82ns ± 1% 16.23% 1
BM_Sort_string_QuickSortAdversary_4 16.3ns ± 4% 16.9ns ±13% 0.00% 16.4ns ± 4% 18.0ns ± 4% 9.75% 1
BM_Sort_string_QuickSortAdversary_16 49.3ns ± 6% 40.3ns ±13% -18.24% 50.1ns ± 5% 43.3ns ±15% -13.41% 1
BM_Sort_string_QuickSortAdversary_64 79.1ns ±12% 68.6ns ±15% -13.24% 77.2ns ± 5% 66.0ns ± 4% -14.51% 1
BM_Sort_string_QuickSortAdversary_256 97.1ns ± 4% 86.0ns ± 5% -11.42% 97.6ns ± 3% 86.3ns ± 2% -11.57% 1
BM_Sort_string_QuickSortAdversary_1024 119ns ± 3% 106ns ± 8% -11.30% 120ns ± 3% 107ns ± 1% -10.91% 1
BM_Sort_string_QuickSortAdversary_16384 180ns ±13% 158ns ±12% -12.06% 190ns ±17% 162ns ± 6% -14.34% 1
BM_Sort_string_QuickSortAdversary_262144 252ns ±13% 220ns ±13% -12.61% 272ns ±21% 227ns ± 7% -16.38% 1
BM_Sort_float_Random_1 4.10ns ± 0% 4.41ns ± 0% 7.43% 4.34ns ±12% 3.63ns ± 2% -16.37% 10
BM_Sort_float_Random_4 1.72ns ± 0% 1.76ns ± 1% 1.87% 1.83ns ±12% 6.87ns ± 1% 275.77% 100
BM_Sort_float_Random_16 11.0ns ± 1% 11.7ns ± 1% 6.85% 11.0ns ± 2% 12.6ns ± 1% 14.94% 1000
BM_Sort_float_Random_64 19.6ns ± 0% 18.3ns ± 1% -6.60% 19.6ns ± 1% 19.0ns ± 2% -3.13% 1000
BM_Sort_float_Random_256 28.1ns ± 0% 22.5ns ± 0% -19.87% 28.1ns ± 1% 22.9ns ± 1% -18.46% 1000
BM_Sort_float_Random_1024 36.6ns ± 1% 25.5ns ± 0% -30.31% 36.7ns ± 1% 25.9ns ± 1% -29.44% 1000
BM_Sort_float_Random_16384 53.2ns ± 0% 30.9ns ± 1% -42.00% 53.2ns ± 0% 31.1ns ± 1% -41.56% 100
BM_Sort_float_Random_262144 69.5ns ± 2% 36.2ns ± 1% -47.84% 69.5ns ± 2% 36.4ns ± 1% -47.59% 10
BM_Sort_float_Ascending_1 4.11ns ± 1% 4.41ns ± 1% 7.32% 4.11ns ± 1% 3.62ns ± 1% -11.90% 1
BM_Sort_float_Ascending_4 1.73ns ± 0% 1.76ns ± 1% 1.77% 1.73ns ± 1% 2.04ns ± 2% 17.76% 1
BM_Sort_float_Ascending_16 0.94ns ± 1% 0.91ns ± 1% -3.25% 0.94ns ± 0% 1.10ns ± 1% 17.31% 1
BM_Sort_float_Ascending_64 1.15ns ± 1% 1.80ns ± 0% 56.09% 1.15ns ± 0% 1.57ns ± 1% 36.45% 1
BM_Sort_float_Ascending_256 1.27ns ± 2% 1.81ns ± 1% 42.73% 1.27ns ± 1% 1.63ns ± 2% 28.86% 1
BM_Sort_float_Ascending_1024 1.11ns ± 1% 1.65ns ± 1% 49.39% 1.11ns ± 1% 1.44ns ± 3% 29.65% 1
BM_Sort_float_Ascending_16384 1.04ns ± 1% 1.59ns ± 1% 52.25% 1.04ns ± 0% 1.35ns ± 4% 29.89% 1
BM_Sort_float_Ascending_262144 1.03ns ± 1% 1.58ns ± 0% 52.92% 1.03ns ± 0% 1.22ns ± 2% 18.32% 1
BM_Sort_float_Descending_1 4.28ns ±14% 4.41ns ± 1% 2.89% 4.12ns ± 8% 3.62ns ± 1% -12.15% 1
BM_Sort_float_Descending_4 1.73ns ± 1% 1.76ns ± 1% 1.66% 1.80ns ±14% 2.53ns ± 1% 40.19% 1
BM_Sort_float_Descending_16 5.04ns ± 1% 4.72ns ± 1% -6.36% 5.26ns ±14% 4.76ns ± 1% -9.44% 1
BM_Sort_float_Descending_64 2.07ns ± 1% 3.44ns ± 1% 66.02% 2.18ns ±13% 3.47ns ± 1% 59.20% 1
BM_Sort_float_Descending_256 2.02ns ± 1% 3.34ns ± 0% 65.55% 2.12ns ±13% 3.25ns ± 2% 53.09% 1
BM_Sort_float_Descending_1024 2.38ns ± 1% 3.18ns ± 1% 33.86% 2.48ns ±14% 2.83ns ± 1% 14.08% 1
BM_Sort_float_Descending_16384 2.12ns ± 1% 3.08ns ± 1% 45.43% 2.12ns ± 2% 2.57ns ± 2% 21.13% 1
BM_Sort_float_Descending_262144 2.09ns ± 1% 3.07ns ± 1% 46.51% 2.10ns ± 1% 2.57ns ± 1% 22.61% 1
BM_Sort_float_SingleElement_1 4.30ns ±13% 4.47ns ±11% 3.80% 4.11ns ± 1% 3.63ns ± 2% -11.60% 1
BM_Sort_float_SingleElement_4 1.84ns ±11% 1.86ns ±12% 0.93% 1.73ns ± 1% 2.06ns ± 8% 19.13% 1
BM_Sort_float_SingleElement_16 1.02ns ±10% 1.56ns ±13% 53.04% 0.94ns ± 1% 1.18ns ±11% 25.23% 1
BM_Sort_float_SingleElement_64 1.24ns ±12% 2.09ns ±13% 68.70% 1.16ns ± 0% 1.58ns ±10% 35.98% 1
BM_Sort_float_SingleElement_256 1.34ns ±11% 1.91ns ± 3% 42.54% 1.26ns ± 1% 1.41ns ±10% 12.00% 1
BM_Sort_float_SingleElement_1024 1.26ns ±11% 1.80ns ± 3% 42.89% 1.19ns ± 1% 1.28ns ± 9% 0.00% 1
BM_Sort_float_SingleElement_16384 1.18ns ±14% 1.75ns ± 1% 48.21% 1.13ns ± 0% 1.20ns ±10% 0.00% 1
BM_Sort_float_SingleElement_262144 1.13ns ± 2% 1.75ns ± 8% 55.35% 1.12ns ± 0% 1.17ns ±10% 0.00% 1
BM_Sort_float_PipeOrgan_1 4.11ns ± 1% 4.42ns ± 1% 7.55% 4.11ns ± 1% 3.84ns ±12% 0.00% 1
BM_Sort_float_PipeOrgan_4 1.73ns ± 0% 1.78ns ±11% 3.07% 1.73ns ± 1% 2.04ns ± 1% 17.77% 1
BM_Sort_float_PipeOrgan_16 1.96ns ± 1% 2.05ns ±11% 0.00% 1.96ns ± 1% 2.08ns ± 1% 6.46% 1
BM_Sort_float_PipeOrgan_64 6.41ns ± 1% 3.95ns ±11% -38.40% 6.41ns ± 0% 4.97ns ± 1% -22.52% 1
BM_Sort_float_PipeOrgan_256 2.76ns ± 1% 3.56ns ±10% 28.91% 2.76ns ± 0% 4.13ns ± 2% 49.87% 1
BM_Sort_float_PipeOrgan_1024 3.67ns ± 1% 6.24ns ± 9% 70.06% 3.67ns ± 1% 5.72ns ± 1% 56.04% 1
BM_Sort_float_PipeOrgan_16384 4.33ns ± 1% 7.35ns ±10% 69.67% 4.33ns ± 1% 6.51ns ± 1% 50.30% 1
BM_Sort_float_PipeOrgan_262144 5.16ns ± 0% 8.17ns ±11% 58.39% 5.16ns ± 0% 7.33ns ± 1% 42.12% 1
BM_Sort_float_QuickSortAdversary_1 4.13ns ± 8% 4.69ns ±11% 13.50% 4.11ns ± 1% 3.61ns ± 1% -12.03% 1
BM_Sort_float_QuickSortAdversary_4 1.73ns ± 0% 1.85ns ±13% 6.97% 1.73ns ± 1% 1.96ns ± 1% 13.01% 1
BM_Sort_float_QuickSortAdversary_16 0.94ns ± 1% 0.91ns ± 0% -3.23% 0.99ns ±13% 1.06ns ± 2% 7.42% 1
BM_Sort_float_QuickSortAdversary_64 10.9ns ± 1% 15.8ns ± 1% 44.76% 11.5ns ±13% 13.2ns ± 1% 14.68% 1
BM_Sort_float_QuickSortAdversary_256 14.7ns ± 1% 22.9ns ± 0% 55.56% 15.5ns ±13% 16.7ns ± 1% 8.02% 1
BM_Sort_float_QuickSortAdversary_1024 34.1ns ± 3% 38.3ns ± 1% 12.36% 35.9ns ±13% 42.3ns ± 4% 18.04% 1
BM_Sort_float_QuickSortAdversary_16384 65.1ns ± 4% 73.6ns ± 2% 12.99% 68.4ns ±13% 70.1ns ± 1% 2.46% 1
BM_Sort_float_QuickSortAdversary_262144 69.8ns ± 1% 80.9ns ± 1% 15.87% 74.1ns ±11% 81.0ns ± 2% 0.00% 1
Weighted Average -15.93% -15.16%
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D122780/new/
https://reviews.llvm.org/D122780
More information about the libcxx-commits
mailing list