[PATCH] D107240: [LLVM][NFC] Make multiple bitwise MathExtras functions constexpr

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 4 16:21:45 PDT 2021


craig.topper added inline comments.


================
Comment at: llvm/include/llvm/Support/MathExtras.h:192
     unsigned long Index;
     _BitScanReverse(&Index, Val);
     return Index ^ 31;
----------------
gAlfonso-bit wrote:
> craig.topper wrote:
> > Does _BitScanReverse work in a constexpr in MSVC? The implementation in clang-cl doesn't work in constexpr, but clang-cl would use __builtin_clz.
> Yes it does. This is one of those exceptions where you can pass a reference because you don't read Index, but only write to it, and Index is in a constexpr anyway
I tried it on godbolt and it didn't seem to work. Am I doing something wrong? https://godbolt.org/z/MnEY763E4


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D107240/new/

https://reviews.llvm.org/D107240



More information about the llvm-commits mailing list