You recently changed the hashing algorithm to use CRC, and use intriniscs on modern CPUs. We compile our software to support older hardware (which may or may not have SSE4.2). However, the vast majority of our customers have modern hardware (and thus have no problem using SSE4.2).
A technique widely used is to compile newer intrinsics (if the compiler supports it) and detect whether the CPU currently executing the code can use those intrinsics. If not, fall back to "slow" methods.
Thanks, I had a look how to best integrate it, but decided that it's not really worth it. I've (again) replaced the hash with something that is hopefully good enough and doesn't need any intrinsics.
You recently changed the hashing algorithm to use CRC, and use intriniscs on modern CPUs. We compile our software to support older hardware (which may or may not have SSE4.2). However, the vast majority of our customers have modern hardware (and thus have no problem using SSE4.2).
A technique widely used is to compile newer intrinsics (if the compiler supports it) and detect whether the CPU currently executing the code can use those intrinsics. If not, fall back to "slow" methods.
A common method of "CPU support" for intinisics is something like this: https://github.com/weidai11/cryptopp/blob/master/cpu.cpp#L461