https://pastebin.com/CmnzwUFN The key idea is to avoid using 16 byte NEON and use 8 byte NEON which has lower latency for BitMask::Match. Even though 16 byte NEON achieves higher throughput, in SwissMap it's very important to catch these Matches with low latency as probing on average happens at most once. I also introduced NonIterableMask as ARM has really great cbnz instructions and additional AND on scalar mask had 1 extra latency cycle PiperOrigin-RevId: 453216147 Change-Id: I842c50d323954f8383ae156491232ced55aacb78
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| internal | Loading commit data... | |
| BUILD.bazel | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| btree_benchmark.cc | Loading commit data... | |
| btree_map.h | Loading commit data... | |
| btree_set.h | Loading commit data... | |
| btree_test.cc | Loading commit data... | |
| btree_test.h | Loading commit data... | |
| fixed_array.h | Loading commit data... | |
| fixed_array_benchmark.cc | Loading commit data... | |
| fixed_array_exception_safety_test.cc | Loading commit data... | |
| fixed_array_test.cc | Loading commit data... | |
| flat_hash_map.h | Loading commit data... | |
| flat_hash_map_test.cc | Loading commit data... | |
| flat_hash_set.h | Loading commit data... | |
| flat_hash_set_test.cc | Loading commit data... | |
| inlined_vector.h | Loading commit data... | |
| inlined_vector_benchmark.cc | Loading commit data... | |
| inlined_vector_exception_safety_test.cc | Loading commit data... | |
| inlined_vector_test.cc | Loading commit data... | |
| node_hash_map.h | Loading commit data... | |
| node_hash_map_test.cc | Loading commit data... | |
| node_hash_set.h | Loading commit data... | |
| node_hash_set_test.cc | Loading commit data... | |
| sample_element_size_test.cc | Loading commit data... |