Web lists-archives.com

Re: allowed uses of non-baseline CPU extensions




On Thu, 2017-10-05 at 03:52 +0200, Adam Borowski wrote:
[..]
> The package in question, lepton, is a tool to losslessly recompress JPEG
> files.  It does so faster if your CPU is equipped with SSE4.1, thus the
> upstream build system hard-codes this requirement, even though it seems
> that generic code paths are present, broken only by completely bogus
> ifdeffage: it has gems like:
[...]
> if(SSE_VECTORIZATION)
>   set(VECTOR_FLAGS "-mssse3 -msse4.2")
> else()
>   set(VECTOR_FLAGS "")
> endif()
> 
> (Needless to say, build status is mostly red.)
> 
> In this case, there's no reason to exclude older computers: x86 with no
> SSE4.1 isn't rare (especially on AMD), and it's a legitimate use case:
> people with weak computers also tend to have low bandwidth, so reducing
> file size of photos is nice.
> 
> So, let's list packages that want non-baseline:
> * multiple variants: package src:x provides x-unoptimized, x-sse3 and
>   x-avx1048576.  Clearly legitimate and a good idea.
[...]

This should be unnecessary since gcc 6, as you can easily tell the
compiler to generate and select between multiple versions of the
functions.  See <https://lwn.net/Articles/691932/>.

Ben.

-- 
Ben Hutchings
Make three consecutive correct guesses and you will be considered an
expert.

Attachment: signature.asc
Description: This is a digitally signed message part