From 1757ebfa46d3f8c66170b1ca971fa3b8f3f1371d Mon Sep 17 00:00:00 2001 From: Manish Godse <61718172+mangod9@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:43:56 -0700 Subject: [PATCH 1/2] disable optimizations for PopCount avoid using an optimization which might fail on non-SSE4 cpus. --- src/coreclr/jit/utils.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/coreclr/jit/utils.cpp b/src/coreclr/jit/utils.cpp index 2e1c0a52a3d81b..5f729275915174 100644 --- a/src/coreclr/jit/utils.cpp +++ b/src/coreclr/jit/utils.cpp @@ -3192,6 +3192,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) @@ -3244,6 +3249,9 @@ uint32_t BitOperations::PopCount(uint64_t value) return static_cast(result); #endif } +#if defined(_MSC_VER) +#pragma optimize("", on) +#endif // _MSC_VER //------------------------------------------------------------------------ // BitOperations::ReverseBits: Reverses the bits in an integer value From 579a8ce521d477db1992483f8aa00d211a2e9593 Mon Sep 17 00:00:00 2001 From: Manish Godse <61718172+mangod9@users.noreply.github.com> Date: Fri, 15 Mar 2024 08:24:33 -0700 Subject: [PATCH 2/2] remove whitespace for jit-format --- src/coreclr/jit/utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/coreclr/jit/utils.cpp b/src/coreclr/jit/utils.cpp index 5f729275915174..4c9fe6479eca41 100644 --- a/src/coreclr/jit/utils.cpp +++ b/src/coreclr/jit/utils.cpp @@ -3194,7 +3194,7 @@ uint32_t BitOperations::Log2(uint64_t value) // #if defined(_MSC_VER) // Disable optimizations for PopCount to avoid the compiler from generating intrinsics -// not supported on all platforms. +// not supported on all platforms. #pragma optimize("", off) #endif // _MSC_VER uint32_t BitOperations::PopCount(uint32_t value)