Re: gcc -ansi versus SSE4.2 detection - Mailing list pgsql-hackers

From Tom Lane
Subject Re: gcc -ansi versus SSE4.2 detection
Date
Msg-id 25456.1433531273@sss.pgh.pa.us
Whole thread Raw
In response to Re: gcc -ansi versus SSE4.2 detection  (Heikki Linnakangas <hlinnaka@iki.fi>)
Responses Re: gcc -ansi versus SSE4.2 detection  (Heikki Linnakangas <hlinnaka@iki.fi>)
List pgsql-hackers
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



pgsql-hackers by date:

Previous
From: Petr Jelinek
Date:
Subject: Re: Further issues with jsonb semantics, documentation
Next
From: Heikki Linnakangas
Date:
Subject: Re: gcc -ansi versus SSE4.2 detection