Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date: Tue, 26 Jun 2012 09:04:36 +0200
From: magnum <>
Subject: Re: precompiled sse-intrinsics vs. -march=native

On 2012-06-26 04:10, Solar Designer wrote:
> On Tue, Jun 26, 2012 at 03:58:19AM +0200, magnum wrote:
>> On 2012-06-26 03:41, Solar Designer wrote:
>>> It appears that we shouldn't use the precompiled sse-intrinsics
>>> files (icc's *.S) in -march=native builds.  Specifically, when I
>>> tried linux-x86-64-gpu on bull where -march=native implies XOP, I
>>> got reporting that XOP intrinsics were being used, whereas in reality
>>> the build used icc-precompiled SSE2 code.
>> My bad, I though I removed -DUSING_ICC_S_FILE from them. Good thing you
>> caught it.
> Ouch, I did not even consider -DUSING_ICC_S_FILE.  Now I see that the
> -x86-64-gpu, etc. targets did not have it, but the -x86-gpu, etc. ones
> did.  Since we're now removing the uses of precompiled sse-intrinsics
> from those targets, we should also remove -DUSING_ICC_S_FILE from them.
> This is not done in the patch that I sent - please do it manually.

I'm glad I took a nap before trying to grasp this. The original problem 
was that I did remove -DUSING_ICC_S_FILE when I added -march=native, but 
forgot to change sse-intrinsics-64.o to sse-intrinsics.o. Yes, this 
explains the segfaults.

I never added -march=native to the 32-bit targets because they benefit 
so much from ICC and building 32-bit is very irrational if your CPU has 
stuff like XOP or AVX. So you actually broke them. I now reverted your 
patch to them, and I kept your changes to the 64-bit ones.


Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.