PM,

> Though I am not a member of the OpenSSL team, I totally agree with you. 
> As for the AES, the Westmere CPUs have also a new instruction for the 
> GHASH (pclmulqdq / _mm_clmulepi64_si128).

It's not an instruction *for* GHASH, it's an instruction that among
other thing can be used for GHASH.

> This as well is only available 
> as intrinsic or in native assembler.
> 
> So, when I offered some weeks ago a contribution regarding the GHASH for 
> the GCM, (now with a fallback from pclmulqdq to SSE2 to native C), I was 
> instructed that (at least inline) assembler or intrinsics are not an 
> option for OpenSSL. 
> 
>> Inline assembler (or exotic intrinsics) is not considered
>> as viable option for MMX/SSE (or any code bigger than couple of
>> instructions), perlasm code is.

Do you think it's groundless and totally unreasonable? Well, it's more
of a rhetorical question...

> As all major compilers for Intel CPUs support intrinsics and,

Well, I have neither of them. Of course it's not *completely* true, but
 OpenSSL does not assume that availability of such compilers is
universal. And I know it's appreciated.

> if used 
> correctly, optimize to the same instructions as direct assembler,

It's just that we have seen one too many compiler bugs, have observed
how performance varies among compiler versions, how compilers do poor
job allocating registers (and just poor job)...

> IMHO 
> these policies should be reconsidered to keep OpenSSL competitive.

??? Are OpenSSL assembler modules slower than compiler generated code?
Is perlasm less portable than intrinsics?

> For good reasons perlasm is not an option for a company like Intel.

??? OpenSSL is not Intel...

> To get 
> a solution, I now use a self-patched version of OpenSSL with intrinsics 
> which fulfills my and my customer's requirements.

Then fight for it (but not in this thread!). Your SSE2 code was
effectively dismissed, because it was slower. At least it was my
conclusion and as you didn't refute it, I assume it was correct. Well, I
still wouldn't actually accept intrinsic-based code, but ideas could
have been used in assembler. Cheers. A.
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to