diff --git a/mbo/hash/README.md b/mbo/hash/README.md
index c66c58d..dee2263 100644
--- a/mbo/hash/README.md
+++ b/mbo/hash/README.md
@@ -306,195 +306,259 @@ Everything between the markers is generated per machine by `publish` from the
committed bundles - regenerate it, don't hand-edit:
-
+
-### AMD Ryzen 9 9950X 16-Core Processor · Linux · x86_64 · 10-core · gcc-15 · 80a4c8a8
+### AMD Ryzen 9 9950X 16-Core Processor · Linux · x86_64 · 10-core · gcc-15 · 29b54ccd
-
+
-
+
#### 64-bit latency (ns/hash at exact length, mean of the 3 best of 9 reps; lower is better)
-| Length | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
-| -----: | ----: | --------: | -------: | ----: | ------: | --------: | -------: | ----: |
-| 1 B | 1.38 | 1.70 | 1.08 | 1.49 | 2.37 | 5.33 | **0.36** | 1.12 |
-| 3 B | 1.47 | 1.65 | 1.08 | 2.10 | 2.83 | 5.99 | **0.72** | 1.56 |
-| 5 B | 1.29 | 1.65 | **0.98** | 1.93 | 2.57 | 5.20 | 1.26 | 1.25 |
-| 7 B | 1.29 | 1.70 | **0.99** | 2.59 | 2.57 | 5.15 | 1.55 | 1.25 |
-| 8 B | 1.31 | 1.46 | **0.98** | 1.93 | 2.57 | 6.48 | 1.78 | 1.25 |
-| 11 B | 1.30 | 1.46 | **0.79** | 2.99 | 3.38 | 7.67 | 2.55 | 1.90 |
-| 15 B | 1.29 | 1.46 | **0.79** | 3.53 | 2.98 | 7.15 | 3.72 | 1.40 |
-| 16 B | 1.29 | 1.47 | **0.79** | 2.36 | 2.76 | 8.00 | 4.04 | 1.40 |
-| 19 B | 1.83 | 1.83 | **1.62** | 3.47 | 3.85 | 8.59 | 4.99 | 2.26 |
-| 22 B | 1.86 | 1.83 | **1.62** | 3.63 | 3.54 | 8.19 | 6.09 | 1.78 |
-| 27 B | 1.83 | 1.83 | **1.62** | 4.04 | 4.49 | 10.05 | 8.10 | 2.66 |
-| 32 B | 1.84 | 1.83 | **1.62** | 4.20 | 3.66 | 11.22 | 10.21 | 2.24 |
-| 38 B | 2.02 | **2.01** | 2.51 | 5.81 | 4.47 | 11.27 | 12.71 | 2.68 |
-| 47 B | 2.02 | **2.01** | 2.54 | 7.07 | 4.91 | 12.88 | 18.22 | 3.27 |
-| 48 B | 2.02 | **2.01** | 2.51 | 5.63 | 4.65 | 14.46 | 18.86 | 3.24 |
-| 63 B | 2.29 | **2.19** | 2.51 | 8.59 | 5.76 | 16.16 | 26.38 | 4.23 |
-| 64 B | 2.29 | **2.18** | 2.51 | 5.24 | 5.58 | 17.69 | 26.84 | 4.24 |
-| 127 B | 4.19 | **3.86** | 4.34 | 11.13 | 9.50 | 29.09 | 67.19 | 9.19 |
-| 128 B | 9.98 | **3.85** | 4.31 | 7.14 | 9.48 | 30.60 | 67.82 | 9.17 |
-| 256 B | 11.85 | **5.85** | 55.39 | 11.11 | 18.18 | 56.41 | 163.2 | 21.87 |
-| 1 KiB | 34.91 | **19.25** | 98.66 | 34.75 | 72.44 | 213.9 | 708.3 | 116.9 |
-| 4 KiB | 133.5 | **72.43** | 320.9 | 130.3 | 293.2 | 834.5 | 2886 | 527.5 |
-
-
+| Length | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
+| -----: | -------: | --------: | -------: | ----: | ------: | --------: | -------: | ----: |
+| 1 B | 1.38 | 1.65 | 1.08 | 1.50 | 2.37 | 5.33 | **0.36** | 1.12 |
+| 3 B | 1.47 | 1.65 | 1.08 | 2.09 | 2.83 | 6.01 | **0.72** | 1.56 |
+| 5 B | 1.29 | 1.64 | **0.99** | 1.93 | 2.57 | 5.17 | 1.17 | 1.25 |
+| 7 B | 1.29 | 1.64 | **0.99** | 2.59 | 2.57 | 5.18 | 1.55 | 1.25 |
+| 8 B | 1.29 | 1.47 | **0.98** | 1.93 | 2.57 | 6.49 | 1.77 | 1.25 |
+| 11 B | 1.29 | 1.46 | **0.79** | 3.00 | 3.38 | 7.68 | 2.55 | 1.90 |
+| 15 B | 1.30 | 1.46 | **0.79** | 3.53 | 2.99 | 7.16 | 3.71 | 1.40 |
+| 16 B | 1.30 | 1.47 | **0.79** | 2.35 | 2.77 | 8.02 | 4.05 | 1.40 |
+| 19 B | 1.83 | 1.83 | **1.62** | 3.48 | 3.85 | 8.61 | 4.99 | 2.26 |
+| 22 B | 1.83 | 1.83 | **1.62** | 3.63 | 3.53 | 8.21 | 6.08 | 1.78 |
+| 27 B | 1.83 | 1.83 | **1.62** | 4.04 | 4.49 | 10.07 | 8.11 | 2.66 |
+| 32 B | 1.82 | 1.83 | **1.62** | 4.20 | 3.66 | 11.22 | 10.22 | 2.24 |
+| 38 B | 2.02 | **2.01** | 2.51 | 5.81 | 4.48 | 11.26 | 12.73 | 2.67 |
+| 47 B | **2.01** | 2.01 | 2.51 | 7.07 | 4.91 | 12.89 | 18.05 | 3.30 |
+| 48 B | **2.01** | 2.01 | 2.51 | 5.64 | 4.65 | 14.46 | 18.75 | 3.25 |
+| 63 B | 2.29 | **2.19** | 2.51 | 8.56 | 5.76 | 16.16 | 26.50 | 4.26 |
+| 64 B | 2.29 | **2.19** | 2.51 | 5.24 | 5.57 | 17.67 | 26.93 | 4.29 |
+| 127 B | 4.18 | **3.85** | 4.35 | 11.14 | 9.50 | 29.07 | 67.30 | 9.19 |
+| 128 B | 10.12 | **3.86** | 4.32 | 7.14 | 9.49 | 30.60 | 67.81 | 9.18 |
+| 256 B | 11.84 | **5.86** | 54.94 | 11.11 | 18.17 | 56.42 | 163.2 | 21.92 |
+| 1 KiB | 34.92 | **19.27** | 98.31 | 34.76 | 72.38 | 214.0 | 708.6 | 116.9 |
+| 4 KiB | 133.2 | **72.64** | 319.1 | 130.4 | 293.3 | 834.4 | 2889 | 527.8 |
+
+
#### 64-bit throughput, Short lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
| ------: | ----: | --------: | -------: | ----: | ------: | --------: | ----: | ----: |
-| 8 B | 2.41 | 2.04 | **3.12** | 1.65 | 1.29 | 0.63 | 2.92 | 2.60 |
-| 12 B | 4.27 | 3.73 | **5.75** | 2.51 | 2.05 | 0.98 | 3.02 | 3.80 |
-| 16 B | 6.09 | 5.17 | **8.38** | 3.19 | 2.88 | 1.33 | 3.12 | 5.39 |
-| 23 B | 7.27 | 6.37 | **9.13** | 3.84 | 3.51 | 1.61 | 2.98 | 6.31 |
-| 31 B | 8.61 | 7.75 | **10.6** | 4.46 | 4.11 | 1.87 | 2.96 | 7.20 |
-| 38 B | 8.26 | 7.69 | **10.1** | 4.37 | 4.08 | 1.84 | 2.82 | 7.04 |
-| 53 B | 9.11 | 8.59 | **10.9** | 4.66 | 4.46 | 2.00 | 2.77 | 7.52 |
-| 80 B | 9.14 | 8.58 | **10.9** | 4.70 | 4.47 | 2.00 | 2.74 | 7.47 |
-| 128 B | 9.15 | 8.57 | **10.9** | 4.73 | 4.47 | 2.00 | 2.74 | 7.47 |
-
-
+| 8 B | 2.41 | 2.26 | **3.12** | 1.65 | 1.29 | 0.63 | 2.92 | 2.60 |
+| 12 B | 4.25 | 4.13 | **5.75** | 2.50 | 2.05 | 0.98 | 3.02 | 3.79 |
+| 16 B | 6.16 | 6.03 | **8.37** | 3.19 | 2.89 | 1.33 | 3.12 | 5.37 |
+| 23 B | 7.25 | 7.03 | **9.19** | 3.83 | 3.51 | 1.61 | 2.98 | 6.30 |
+| 31 B | 8.63 | 8.54 | **10.5** | 4.46 | 4.12 | 1.87 | 2.97 | 7.16 |
+| 38 B | 8.25 | 8.47 | **10.1** | 4.36 | 4.08 | 1.84 | 2.82 | 7.03 |
+| 53 B | 9.17 | 9.45 | **10.9** | 4.65 | 4.47 | 2.00 | 2.77 | 7.47 |
+| 80 B | 9.19 | 9.44 | **10.9** | 4.70 | 4.47 | 2.00 | 2.73 | 7.44 |
+| 128 B | 9.15 | 9.42 | **10.9** | 4.72 | 4.47 | 2.00 | 2.74 | 7.46 |
+
+
#### 64-bit throughput, Web lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
| ------: | ----: | --------: | -------: | ----: | ------: | --------: | ----: | ----: |
-| 15 B | 4.82 | 4.21 | **6.54** | 2.80 | 2.39 | 1.14 | 3.26 | 4.53 |
-| 28 B | 7.85 | 7.15 | **9.26** | 4.27 | 3.81 | 1.74 | 2.81 | 6.62 |
-| 45 B | 11.9 | 11.8 | **12.0** | 5.42 | 5.65 | 2.43 | 2.53 | 8.83 |
-| 75 B | 15.8 | **15.9** | 14.6 | 6.46 | 7.00 | 2.86 | 2.14 | 9.88 |
-| 120 B | 17.7 | **18.5** | 16.6 | 7.53 | 7.93 | 3.12 | 1.92 | 9.98 |
-| 220 B | 17.3 | **19.9** | 17.4 | 8.18 | 8.47 | 3.27 | 1.85 | 10.1 |
-| 512 B | 17.7 | **21.4** | 11.3 | 8.98 | 8.82 | 3.36 | 1.74 | 9.47 |
-| 2 KiB | 19.0 | **24.3** | 10.9 | 10.5 | 9.53 | 3.55 | 1.63 | 8.93 |
-| 4 KiB | 18.7 | **23.8** | 10.4 | 10.4 | 9.40 | 3.51 | 1.63 | 8.94 |
-
-
+| 15 B | 4.74 | 4.67 | **6.54** | 2.80 | 2.39 | 1.14 | 3.26 | 4.53 |
+| 28 B | 7.81 | 7.86 | **9.26** | 4.27 | 3.81 | 1.75 | 2.81 | 6.60 |
+| 45 B | 11.9 | **12.9** | 12.0 | 5.43 | 5.65 | 2.43 | 2.47 | 8.81 |
+| 75 B | 15.7 | **16.6** | 14.6 | 6.46 | 7.01 | 2.85 | 2.12 | 9.85 |
+| 120 B | 17.7 | **18.5** | 16.5 | 7.54 | 7.94 | 3.12 | 1.91 | 9.94 |
+| 220 B | 17.3 | **19.9** | 17.4 | 8.18 | 8.47 | 3.27 | 1.84 | 10.0 |
+| 512 B | 17.8 | **21.5** | 11.3 | 8.99 | 8.83 | 3.36 | 1.73 | 9.49 |
+| 2 KiB | 19.0 | **24.3** | 11.0 | 10.5 | 9.55 | 3.55 | 1.63 | 8.94 |
+| 4 KiB | 18.7 | **23.8** | 10.4 | 10.4 | 9.41 | 3.51 | 1.63 | 8.94 |
+
+
#### 128-bit latency (ns/hash at exact length, mean of the 3 best of 9 reps; native-128 only; lower is better)
| Length | jumbo | xxh3 | murmur3 |
| -----: | --------: | -------: | ------: |
-| 1 B | 2.37 | **1.45** | 2.58 |
-| 3 B | 2.38 | **1.45** | 3.05 |
-| 5 B | 2.22 | **1.25** | 2.82 |
-| 7 B | 2.22 | **1.25** | 2.82 |
-| 8 B | 2.21 | **1.25** | 2.82 |
-| 11 B | 2.20 | **1.64** | 3.59 |
-| 15 B | 2.20 | **1.64** | 3.16 |
-| 16 B | 2.20 | **1.64** | 3.02 |
+| 1 B | 2.37 | **1.91** | 2.58 |
+| 3 B | 2.38 | **1.92** | 3.06 |
+| 5 B | 2.22 | **1.53** | 2.82 |
+| 7 B | 2.22 | **1.53** | 2.82 |
+| 8 B | 2.21 | **1.53** | 2.82 |
+| 11 B | 2.20 | **1.81** | 3.59 |
+| 15 B | 2.20 | **1.81** | 3.16 |
+| 16 B | 2.20 | **1.81** | 3.02 |
| 19 B | 2.77 | **2.23** | 4.04 |
-| 22 B | 2.77 | **2.23** | 3.78 |
+| 22 B | 2.77 | **2.24** | 3.78 |
| 27 B | 2.77 | **2.23** | 4.64 |
| 32 B | 2.77 | **2.23** | 3.89 |
-| 38 B | 3.45 | **3.16** | 4.67 |
-| 47 B | 3.44 | **3.13** | 5.07 |
-| 48 B | 3.45 | **3.13** | 4.85 |
-| 63 B | 3.98 | **3.12** | 6.03 |
-| 64 B | 4.66 | **3.13** | 5.83 |
-| 127 B | 6.71 | **5.04** | 9.76 |
-| 128 B | 5.74 | **5.00** | 9.78 |
-| 256 B | **7.97** | 58.27 | 18.47 |
-| 1 KiB | **22.36** | 101.2 | 72.76 |
-| 4 KiB | **80.79** | 322.4 | 293.4 |
-
-### Apple M5 Pro · MacOS · arm64 · 18-core · clang-21 · 80a4c8a8
-
-
-
-
+| 38 B | 3.45 | **3.24** | 4.68 |
+| 47 B | 3.45 | **3.24** | 5.07 |
+| 48 B | 3.45 | **3.24** | 4.85 |
+| 63 B | 3.98 | **3.24** | 6.03 |
+| 64 B | 4.66 | **3.24** | 5.84 |
+| 127 B | 6.72 | **5.23** | 9.77 |
+| 128 B | 5.74 | **5.19** | 9.78 |
+| 256 B | **7.99** | 57.62 | 18.46 |
+| 1 KiB | **22.41** | 100.8 | 72.80 |
+| 4 KiB | **80.89** | 322.0 | 293.5 |
+
+
+
+#### 128-bit throughput, Short lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
+
+| max len | jumbo | xxh3 | murmur3 |
+| ------: | ----: | -------: | ------: |
+| 8 B | 1.50 | **1.91** | 1.21 |
+| 12 B | 2.68 | **3.19** | 1.93 |
+| 16 B | 3.83 | **4.41** | 2.72 |
+| 23 B | 4.65 | **5.27** | 3.32 |
+| 31 B | 5.54 | **6.19** | 3.91 |
+| 38 B | 5.46 | **6.08** | 3.87 |
+| 53 B | 6.01 | **6.68** | 4.25 |
+| 80 B | 6.00 | **6.66** | 4.25 |
+| 128 B | 6.01 | **6.68** | 4.24 |
+
+
+
+#### 128-bit throughput, Web lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
+
+| max len | jumbo | xxh3 | murmur3 |
+| ------: | -------: | -------: | ------: |
+| 15 B | 3.04 | **3.63** | 2.25 |
+| 28 B | 5.06 | **5.71** | 3.63 |
+| 45 B | 7.74 | **8.20** | 5.42 |
+| 75 B | 9.69 | **10.4** | 6.74 |
+| 120 B | 11.0 | **12.1** | 7.67 |
+| 220 B | 12.2 | **13.0** | 8.21 |
+| 512 B | **13.4** | 9.45 | 8.58 |
+| 2 KiB | **15.8** | 9.46 | 9.32 |
+| 4 KiB | **15.4** | 9.01 | 9.17 |
+
+### Apple M5 Pro · MacOS · arm64 · 18-core · clang-21 · 29b54ccd
+
+
+
+
#### 64-bit latency (ns/hash at exact length, mean of the 3 best of 9 reps; lower is better)
| Length | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
| -----: | --------: | --------: | ----: | ----: | ------: | --------: | -------: | -------: |
-| 1 B | 2.20 | 2.00 | 1.83 | 2.06 | 2.74 | 6.49 | **0.49** | 1.58 |
-| 3 B | 2.33 | 1.99 | 1.94 | 2.73 | 2.99 | 6.58 | **1.04** | 2.84 |
-| 5 B | 2.58 | 1.74 | 1.63 | 2.12 | 2.99 | 6.74 | 1.81 | **1.49** |
-| 7 B | 2.59 | 1.74 | 1.64 | 2.82 | 2.96 | 6.90 | 2.66 | **1.47** |
-| 8 B | 2.08 | 1.74 | 1.61 | 2.26 | 3.11 | 9.16 | 2.85 | **1.52** |
-| 11 B | 2.03 | **1.73** | 1.73 | 3.23 | 3.51 | 9.36 | 4.41 | 2.71 |
-| 15 B | 1.96 | **1.74** | 1.74 | 3.64 | 3.57 | 9.35 | 6.15 | 1.93 |
-| 16 B | 2.03 | **1.74** | 1.74 | 2.73 | 3.97 | 12.16 | 6.52 | 1.88 |
-| 19 B | 2.44 | **2.03** | 2.39 | 3.84 | 4.45 | 12.31 | 7.60 | 3.13 |
-| 22 B | 2.44 | **1.97** | 2.39 | 4.00 | 4.38 | 12.31 | 8.99 | 2.47 |
-| 27 B | 2.44 | **2.02** | 2.39 | 4.74 | 5.15 | 15.38 | 11.63 | 3.68 |
-| 32 B | 2.44 | **2.00** | 2.39 | 5.09 | 5.43 | 18.44 | 15.37 | 3.12 |
-| 38 B | 2.84 | **2.43** | 3.79 | 6.88 | 5.92 | 18.66 | 19.29 | 3.67 |
-| 47 B | 2.84 | **2.44** | 3.79 | 8.52 | 6.32 | 21.84 | 27.47 | 4.26 |
-| 48 B | 2.83 | **2.43** | 3.78 | 6.70 | 6.84 | 25.14 | 28.41 | 4.25 |
-| 63 B | 3.36 | **2.96** | 3.79 | 10.31 | 7.99 | 28.70 | 40.24 | 5.78 |
-| 64 B | 3.29 | **2.93** | 3.78 | 6.65 | 8.58 | 32.04 | 41.04 | 5.66 |
-| 127 B | 6.04 | **4.86** | 6.50 | 13.78 | 15.04 | 57.91 | 117.3 | 12.74 |
-| 128 B | 6.55 | **4.87** | 6.51 | 9.64 | 15.95 | 61.38 | 118.4 | 12.57 |
-| 256 B | 8.69 | **7.44** | 26.58 | 16.21 | 33.49 | 121.0 | 287.1 | 31.04 |
-| 1 KiB | 23.74 | **22.48** | 58.64 | 55.42 | 165.2 | 476.6 | 1354 | 194.6 |
-| 4 KiB | **82.36** | 83.87 | 175.4 | 225.4 | 694.5 | 1915 | 5610 | 882.1 |
-
-
+| 1 B | 2.13 | 1.95 | 1.76 | 2.04 | 2.81 | 6.58 | **0.50** | 1.61 |
+| 3 B | 2.31 | 1.88 | 1.79 | 2.67 | 2.98 | 6.73 | **1.04** | 2.75 |
+| 5 B | 2.54 | 1.74 | 1.65 | 2.11 | 3.14 | 6.93 | 1.81 | **1.59** |
+| 7 B | 2.34 | 1.74 | 1.66 | 2.85 | 3.17 | 6.84 | 2.52 | **1.58** |
+| 8 B | 2.09 | 1.71 | 1.64 | 2.24 | 3.16 | 9.15 | 2.87 | **1.56** |
+| 11 B | 2.01 | **1.72** | 1.76 | 3.30 | 3.56 | 9.31 | 4.30 | 3.20 |
+| 15 B | 2.01 | **1.73** | 1.77 | 3.67 | 3.60 | 9.33 | 6.19 | 1.88 |
+| 16 B | 1.99 | **1.73** | 1.74 | 2.76 | 3.99 | 12.16 | 6.65 | 1.88 |
+| 19 B | 2.45 | **2.02** | 2.40 | 3.87 | 4.49 | 12.35 | 7.55 | 3.48 |
+| 22 B | 2.46 | **2.05** | 2.38 | 3.98 | 4.63 | 12.27 | 9.19 | 2.44 |
+| 27 B | 2.45 | **1.99** | 2.40 | 4.74 | 5.17 | 15.34 | 11.77 | 3.85 |
+| 32 B | 2.44 | **2.02** | 2.39 | 5.06 | 5.47 | 18.40 | 15.37 | 3.18 |
+| 38 B | 2.84 | **2.43** | 3.79 | 6.91 | 5.93 | 18.61 | 19.31 | 3.52 |
+| 47 B | 2.84 | **2.45** | 3.79 | 8.51 | 6.36 | 21.90 | 27.43 | 4.25 |
+| 48 B | 2.86 | **2.46** | 3.79 | 6.71 | 6.90 | 25.20 | 28.48 | 4.17 |
+| 63 B | 3.32 | **2.90** | 3.80 | 10.31 | 8.17 | 28.74 | 40.22 | 5.64 |
+| 64 B | 3.47 | **2.88** | 3.83 | 6.75 | 8.60 | 32.04 | 41.05 | 5.73 |
+| 127 B | 6.07 | **4.85** | 6.52 | 13.87 | 15.04 | 58.07 | 118.3 | 12.54 |
+| 128 B | 6.55 | **4.85** | 6.52 | 9.83 | 16.29 | 61.74 | 118.6 | 12.49 |
+| 256 B | 8.68 | **7.51** | 26.66 | 16.23 | 33.70 | 121.3 | 285.0 | 31.45 |
+| 1 KiB | 23.71 | **22.50** | 58.86 | 55.51 | 165.6 | 479.7 | 1352 | 194.5 |
+| 4 KiB | **82.58** | 84.34 | 175.5 | 229.4 | 707.0 | 1914 | 5625 | 883.2 |
+
+
#### 64-bit throughput, Short lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
-| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
-| ------: | ----: | --------: | -------: | ----: | ------: | --------: | ----: | -------: |
-| 8 B | 0.90 | 0.72 | 1.34 | 0.91 | 0.62 | 0.51 | 1.45 | **1.51** |
-| 12 B | 1.85 | 1.44 | **2.26** | 1.45 | 1.06 | 0.75 | 1.61 | 2.15 |
-| 16 B | 2.63 | 2.45 | 3.57 | 2.01 | 2.19 | 1.01 | 1.55 | **3.64** |
-| 23 B | 3.34 | 3.44 | **3.89** | 2.27 | 2.46 | 1.17 | 1.40 | 3.70 |
-| 31 B | 3.89 | 4.48 | **4.58** | 2.70 | 2.84 | 1.32 | 1.41 | 4.44 |
-| 38 B | 3.78 | 4.40 | **4.56** | 2.64 | 2.75 | 1.30 | 1.33 | 4.29 |
-| 53 B | 4.08 | 4.65 | **4.85** | 2.91 | 2.95 | 1.38 | 1.34 | 4.53 |
-| 80 B | 4.08 | 4.71 | **4.93** | 2.91 | 2.94 | 1.38 | 1.37 | 4.73 |
-| 128 B | 4.04 | 4.44 | **4.84** | 2.90 | 2.92 | 1.38 | 1.34 | 4.49 |
+| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
+| ------: | ----: | --------: | ---: | ----: | ------: | --------: | ----: | -------: |
+| 8 B | 0.93 | 0.76 | 1.05 | 0.91 | 0.68 | 0.51 | 1.47 | **1.54** |
+| 12 B | 1.76 | 1.49 | 2.05 | 1.44 | 1.10 | 0.75 | 1.60 | **2.34** |
+| 16 B | 2.51 | 2.49 | 2.76 | 1.99 | 2.01 | 1.01 | 1.60 | **3.44** |
+| 23 B | 3.36 | 3.88 | 3.44 | 2.26 | 2.30 | 1.17 | 1.84 | **3.92** |
+| 31 B | 3.87 | 4.59 | 4.14 | 2.70 | 2.67 | 1.33 | 1.80 | **4.75** |
+| 38 B | 3.76 | 4.33 | 3.98 | 2.64 | 2.59 | 1.30 | 1.62 | **4.67** |
+| 53 B | 4.01 | 4.74 | 4.40 | 2.89 | 2.78 | 1.38 | 1.64 | **4.80** |
+| 80 B | 4.07 | **4.83** | 4.39 | 2.88 | 2.79 | 1.38 | 1.61 | 4.83 |
+| 128 B | 4.02 | 4.58 | 4.31 | 2.88 | 2.76 | 1.37 | 1.57 | **4.80** |
-
+
#### 64-bit throughput, Web lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
-| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
-| ------: | -------: | --------: | -------: | ----: | ------: | --------: | ----: | ----: |
-| 15 B | 2.04 | 1.56 | **2.58** | 1.55 | 1.55 | 0.88 | 1.82 | 2.47 |
-| 28 B | 3.32 | 3.94 | **3.99** | 2.53 | 2.50 | 1.22 | 1.34 | 3.86 |
-| 45 B | 5.52 | **6.19** | 5.95 | 3.65 | 3.98 | 1.57 | 1.27 | 5.83 |
-| 75 B | 7.41 | 6.66 | **8.09** | 4.70 | 5.05 | 1.75 | 1.27 | 7.29 |
-| 120 B | 8.85 | 9.09 | **9.61** | 5.59 | 5.54 | 1.81 | 1.16 | 7.64 |
-| 220 B | 9.90 | **10.3** | 9.92 | 6.21 | 5.80 | 1.85 | 1.11 | 7.65 |
-| 512 B | **11.0** | 10.9 | 9.48 | 6.63 | 5.68 | 1.85 | 1.02 | 7.01 |
-| 2 KiB | 13.0 | **13.5** | 10.5 | 7.64 | 5.71 | 1.88 | 0.92 | 6.28 |
-| 4 KiB | 12.5 | **13.4** | 10.2 | 7.53 | 5.71 | 1.87 | 0.93 | 6.34 |
+| max len | mumbo | rapidhash | xxh3 | xxh64 | murmur3 | siphash24 | fnv1a | dumbo |
+| ------: | -------: | --------: | ---: | ----: | ------: | --------: | ----: | -------: |
+| 15 B | 1.97 | 1.70 | 2.39 | 1.56 | 1.50 | 0.88 | 1.79 | **2.62** |
+| 28 B | 3.32 | 3.98 | 3.52 | 2.51 | 2.36 | 1.22 | 1.70 | **4.01** |
+| 45 B | 5.57 | **6.08** | 5.42 | 3.51 | 3.80 | 1.56 | 1.29 | 5.82 |
+| 75 B | **7.34** | 6.74 | 7.28 | 4.65 | 4.90 | 1.72 | 1.26 | 7.26 |
+| 120 B | 8.91 | **9.00** | 8.68 | 5.53 | 5.36 | 1.81 | 1.15 | 7.44 |
+| 220 B | 9.81 | **10.2** | 9.14 | 6.13 | 5.72 | 1.85 | 1.11 | 7.62 |
+| 512 B | 10.9 | **11.1** | 8.86 | 6.64 | 5.71 | 1.85 | 1.02 | 6.98 |
+| 2 KiB | 12.9 | **13.5** | 9.91 | 7.65 | 5.67 | 1.88 | 0.92 | 6.26 |
+| 4 KiB | 12.4 | **13.2** | 9.61 | 7.00 | 5.58 | 1.86 | 0.92 | 6.26 |
-
+
#### 128-bit latency (ns/hash at exact length, mean of the 3 best of 9 reps; native-128 only; lower is better)
| Length | jumbo | xxh3 | murmur3 |
| -----: | --------: | -------: | ------: |
-| 1 B | 3.12 | **2.32** | 2.75 |
-| 3 B | 3.32 | **2.37** | 2.99 |
-| 5 B | 3.12 | **2.22** | 3.01 |
-| 7 B | 3.04 | **2.24** | 3.01 |
-| 8 B | 2.93 | **2.23** | 3.10 |
-| 11 B | 2.94 | **2.67** | 3.52 |
-| 15 B | 2.93 | **2.67** | 3.53 |
-| 16 B | 2.94 | **2.67** | 3.96 |
-| 19 B | 3.83 | **3.47** | 4.46 |
-| 22 B | 3.82 | **3.46** | 4.40 |
-| 27 B | 3.82 | **3.46** | 5.09 |
-| 32 B | 3.82 | **3.48** | 5.56 |
-| 38 B | **4.44** | 4.97 | 5.86 |
-| 47 B | **4.43** | 4.98 | 6.50 |
-| 48 B | **4.45** | 4.99 | 6.92 |
-| 63 B | 5.30 | **4.98** | 8.01 |
-| 64 B | 6.18 | **4.98** | 8.59 |
-| 127 B | 8.73 | **8.02** | 14.92 |
-| 128 B | **7.45** | 8.02 | 16.09 |
-| 256 B | **10.57** | 28.01 | 33.26 |
-| 1 KiB | **31.59** | 60.37 | 164.7 |
-| 4 KiB | **123.3** | 177.5 | 699.2 |
+| 1 B | 3.13 | **2.55** | 2.80 |
+| 3 B | 3.32 | **2.39** | 3.04 |
+| 5 B | 3.16 | **2.30** | 3.15 |
+| 7 B | 3.12 | **2.23** | 3.14 |
+| 8 B | 2.95 | **2.24** | 3.20 |
+| 11 B | 2.93 | **2.68** | 3.53 |
+| 15 B | 2.92 | **2.66** | 3.64 |
+| 16 B | 2.95 | **2.68** | 4.00 |
+| 19 B | 3.81 | **3.52** | 4.50 |
+| 22 B | 3.82 | **3.51** | 4.58 |
+| 27 B | 3.84 | **3.59** | 5.15 |
+| 32 B | 3.83 | **3.49** | 5.56 |
+| 38 B | **4.46** | 5.00 | 5.90 |
+| 47 B | **4.46** | 5.00 | 6.42 |
+| 48 B | **4.46** | 5.03 | 7.24 |
+| 63 B | 5.29 | **4.98** | 8.26 |
+| 64 B | 6.17 | **5.03** | 8.66 |
+| 127 B | 8.75 | **8.00** | 15.29 |
+| 128 B | **7.50** | 8.05 | 15.93 |
+| 256 B | **10.57** | 28.00 | 33.33 |
+| 1 KiB | **31.72** | 60.92 | 165.3 |
+| 4 KiB | **123.2** | 180.5 | 707.2 |
+
+
+
+#### 128-bit throughput, Short lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
+
+| max len | jumbo | xxh3 | murmur3 |
+| ------: | ----: | -------: | ------: |
+| 8 B | 0.83 | **0.88** | 0.70 |
+| 12 B | 1.54 | **1.76** | 1.16 |
+| 16 B | 2.26 | **2.28** | 1.95 |
+| 23 B | 2.75 | **2.95** | 2.27 |
+| 31 B | 3.49 | **3.62** | 2.64 |
+| 38 B | 3.40 | **3.42** | 2.60 |
+| 53 B | 3.50 | **3.71** | 2.79 |
+| 80 B | 3.47 | **3.75** | 2.79 |
+| 128 B | 3.59 | **3.73** | 2.75 |
+
+
+
+#### 128-bit throughput, Web lengths (GiB/s over lengths <= max, mean of the 3 best of 9 reps; higher is better)
+
+| max len | jumbo | xxh3 | murmur3 |
+| ------: | -------: | -------: | ------: |
+| 15 B | 1.77 | **1.88** | 1.48 |
+| 28 B | 3.05 | **3.18** | 2.35 |
+| 45 B | **4.82** | 4.50 | 3.76 |
+| 75 B | **6.41** | 6.08 | 4.89 |
+| 120 B | **7.20** | 7.20 | 5.39 |
+| 220 B | **8.05** | 7.85 | 5.76 |
+| 512 B | **8.97** | 7.74 | 5.70 |
+| 2 KiB | **10.6** | 8.74 | 5.68 |
+| 4 KiB | **10.2** | 8.35 | 5.59 |
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency128.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency128.svg
index ec5b686..fb0b7bc 100644
--- a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency128.svg
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency128.svg
@@ -1,21 +1,21 @@
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency64.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency64.svg
index 4cb8fa6..eecd039 100644
--- a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency64.svg
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_latency64.svg
@@ -1,31 +1,31 @@
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Short.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Short.svg
new file mode 100644
index 0000000..dcd11eb
--- /dev/null
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Short.svg
@@ -0,0 +1,27 @@
+
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Web.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Web.svg
new file mode 100644
index 0000000..44c1da4
--- /dev/null
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput128_Web.svg
@@ -0,0 +1,34 @@
+
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Short.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Short.svg
index 472948e..beb4c86 100644
--- a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Short.svg
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Short.svg
@@ -1,15 +1,15 @@
diff --git a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Web.svg b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Web.svg
index 4019f59..0ac55c4 100644
--- a/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Web.svg
+++ b/mbo/hash/measurements/charts/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_gcc-15_throughput64_Web.svg
@@ -1,15 +1,15 @@
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency128.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency128.svg
index 69db5c3..68bcaca 100644
--- a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency128.svg
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency128.svg
@@ -1,21 +1,21 @@
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency64.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency64.svg
index c2783c3..1c5932d 100644
--- a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency64.svg
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_latency64.svg
@@ -1,33 +1,33 @@
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Short.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Short.svg
new file mode 100644
index 0000000..bf8a3eb
--- /dev/null
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Short.svg
@@ -0,0 +1,27 @@
+
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Web.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Web.svg
new file mode 100644
index 0000000..97ffcf0
--- /dev/null
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput128_Web.svg
@@ -0,0 +1,36 @@
+
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Short.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Short.svg
index a13d52e..7e8f6f3 100644
--- a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Short.svg
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Short.svg
@@ -1,11 +1,11 @@
diff --git a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Web.svg b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Web.svg
index 81b9a64..99bdf58 100644
--- a/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Web.svg
+++ b/mbo/hash/measurements/charts/macos-arm64-apple-m5-pro_clang-21_throughput64_Web.svg
@@ -1,15 +1,15 @@
diff --git a/mbo/hash/measurements/data/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_10c_gcc-15_29b54ccd_20260715_182532.tgz b/mbo/hash/measurements/data/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_10c_gcc-15_29b54ccd_20260715_182532.tgz
new file mode 100644
index 0000000..d90dc41
--- /dev/null
+++ b/mbo/hash/measurements/data/linux-x86-64-amd-ryzen-9-9950x-16-core-processor_10c_gcc-15_29b54ccd_20260715_182532.tgz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:547264cc043b0d473af82c3d8f229918b6aa687197c15623ad55d0439f84fb00
+size 1529977
diff --git a/mbo/hash/measurements/data/macos-arm64-apple-m5-pro_18c_clang-21_29b54ccd_20260715_191140.tgz b/mbo/hash/measurements/data/macos-arm64-apple-m5-pro_18c_clang-21_29b54ccd_20260715_191140.tgz
new file mode 100644
index 0000000..af7868a
--- /dev/null
+++ b/mbo/hash/measurements/data/macos-arm64-apple-m5-pro_18c_clang-21_29b54ccd_20260715_191140.tgz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:d263c76ab50acaf790dff4ba36c580f64416bfe097d4fcb6ae0e52d846f9105a
+size 934896