Heikki Linnakangas <hlinnaka@iki.fi> writes:
> On 06/05/2015 09:27 PM, Tom Lane wrote:
>> ... However I found out that adding -ansi
>> also caused configure to stop selecting "-msse4.2", which seemed odd,
>> since that switch has no bearing on C language conformance. And it fell
>> back to the slicing-by-8 CRC implementation too.
> Hmm, that's odd. -ansi has no effect on the CRC implementation on my system.
Ummm ... I was reading the diff backwards. Actually it seems that on
dromedary's platform, CFLAGS_SSE42 is set to empty by default, but forcing
"-ansi" makes it get set to "-msse4.2". Evidently, (this) gcc will accept
the _mm_crc32_foo intrinsics by default normally, but if you say -ansi
then it won't accept them unless you also say "-msse4.2".
It looks like the actual reason that we aren't using the runtime-check
CRC implementation is that we can't find a way to do "cpuid" on this
old version of OS X. Not sure if it's worth the time to look for one;
modern versions of OS X do have __get_cpuid().
regards, tom lane