Skip to content

Commit

Permalink
disable optimizations for PopCount (dotnet#99796)
Browse files Browse the repository at this point in the history
* disable optimizations for PopCount

avoid using an optimization which might fail on non-SSE4 cpus.

* remove whitespace for jit-format
  • Loading branch information
mangod9 committed Mar 15, 2024
1 parent ad4c7c3 commit aee4957
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/coreclr/jit/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3436,6 +3436,11 @@ uint32_t BitOperations::Log2(uint64_t value)
// Return Value:
// The population count (number of bits set) of value
//
#if defined(_MSC_VER)
// Disable optimizations for PopCount to avoid the compiler from generating intrinsics
// not supported on all platforms.
#pragma optimize("", off)
#endif // _MSC_VER
uint32_t BitOperations::PopCount(uint32_t value)
{
#if defined(_MSC_VER)
Expand Down Expand Up @@ -3488,6 +3493,9 @@ uint32_t BitOperations::PopCount(uint64_t value)
return static_cast<uint32_t>(result);
#endif
}
#if defined(_MSC_VER)
#pragma optimize("", on)
#endif // _MSC_VER

//------------------------------------------------------------------------
// BitOperations::ReverseBits: Reverses the bits in an integer value
Expand Down

0 comments on commit aee4957

Please sign in to comment.