https://pastebin.com/fDvgWgHe After having a chat with Dougall Johnson (https://twitter.com/dougallj/status/1534213050944802816), we realized that __clzll works with zero arguments per documentation: https://developer.arm.com/documentation/101028/0009/Data-processing-intrinsics ``` Returns the number of leading zero bits in x. When x is zero it returns the argument width, i.e. 32 or 64. ``` Codegen improves https://godbolt.org/z/ebadf717Y Thus we can use a little bit different construction not involving CLS but using more understandable CLZ and removing some operations. PiperOrigin-RevId: 453879080 Change-Id: Ie2d7f834f63364d7bd50dd6a682c107985f21942
| Name |
Last commit
|
Last Update |
|---|---|---|
| .. | ||
| internal | Loading commit data... | |
| BUILD.bazel | Loading commit data... | |
| CMakeLists.txt | Loading commit data... | |
| attributes.h | Loading commit data... | |
| bit_cast_test.cc | Loading commit data... | |
| call_once.h | Loading commit data... | |
| call_once_test.cc | Loading commit data... | |
| casts.h | Loading commit data... | |
| config.h | Loading commit data... | |
| config_test.cc | Loading commit data... | |
| const_init.h | Loading commit data... | |
| dynamic_annotations.h | Loading commit data... | |
| exception_safety_testing_test.cc | Loading commit data... | |
| inline_variable_test.cc | Loading commit data... | |
| inline_variable_test_a.cc | Loading commit data... | |
| inline_variable_test_b.cc | Loading commit data... | |
| invoke_test.cc | Loading commit data... | |
| log_severity.cc | Loading commit data... | |
| log_severity.h | Loading commit data... | |
| log_severity_test.cc | Loading commit data... | |
| macros.h | Loading commit data... | |
| optimization.h | Loading commit data... | |
| optimization_test.cc | Loading commit data... | |
| options.h | Loading commit data... | |
| policy_checks.h | Loading commit data... | |
| port.h | Loading commit data... | |
| raw_logging_test.cc | Loading commit data... | |
| spinlock_test_common.cc | Loading commit data... | |
| thread_annotations.h | Loading commit data... | |
| throw_delegate_test.cc | Loading commit data... |