6 ms·
A smart compiler would have used the test (x & (x - 1)) == 0 to verify that x (assumed non-zero) is a power of two. Don't know why Clang didn't do that here.
by GeertB 2y ago
A smart compiler would have used the test (x & (x - 1)) == 0 to verify that x (assumed non-zero) is a power of two. Don't know why Clang didn't do that here.
- fooker 2y agoThe tricky part is doing this without knowing the value of x! This is why compilers have to rely on static analysis.