On Mon, 19 Jan 2015 08:13:46 +0800 Patrick Lauer wrote:
> On Sunday 18 January 2015 21:44:05 Michał Górny wrote:
> > Hello,
> > 
> > I would like to commit the following flags as cpu_flags_x86_desc.
> > The list combines global USE flags with some local USE flags I've been
> > able to find.
> > 
> > 
> > 3dnow - Use the 3DNow! instruction set
> > 3dnowext - Use the Enhanced 3DNow! instruction set
> 
> Those are kinda mostly dead (no new CPUs have them anymore)

1) Modern AMD CPUs still support them (and can give performance
benefits from using them.
2) I'm writing right now from an old host with CPU supporting them. 

> > aes-ni - Enable support for Intel's AES instruction set (aes in cpuinfo)
> > avx - Adds support for Advanced Vector Extensions instructions
> > avx2 - Adds support for Advanced Vector Extensions 2 instructions
> > fma - Use the Fused Multiply Add instruction set
> 
> > mmx - Use the MMX instruction set
> Not sure if this one needs to be specified - amd64 always has it, and on x86 
> your code should do cpu feature detection anyway

1) No. We have cpudetection USE flag if user wants it.
2) Not all VIA CPUs support MMX.
3) Run-time CPU detection is *always slower* than compiled in code.
(Learn the difference between using GOTs or long jupms and not
using them, especiall on non-amd64 sysmems.)

> > mmxext - Use the Extended MMX instruction set (intersection of Enhanced
> > 3DNow! and SSE instruction sets) (3dnowext or sse in cpuinfo) padlock - Use
> > VIA padlock instructions
> Kinda very dead, even more than 3dnow

So what? There are still people using it.

> > popcnt - Enable popcnt instruction support
> Why?!

Why not? It is an instruction set outside from official SSE4.2
standard, as well as LZCNT by the way.

> > sse - Use the SSE instruction set
> Always exists on amd64, so this would be x86 special
> 
> > sse2 - Use the SSE2 instruction set
> > sse3 - Use the SSE3 instruction set (pni in cpuinfo)
> > sse4 - Enable SSE4 instruction support
> > sse4_1 - Enable SSE4.1 instruction support
> > sse4_2 - Enable SSE4.2 instruction support
> > sse4a - Enable SSE4a instruction support
> > ssse3 - Use the SSSE3 instruction set
> Wow, such a wonderful mess :)

Very productive comment...

> So half of those are obsolete/dead, and the other half you need to do proper 
> feature detection - why do we want that as useflags again?
 
Because we have users interested in these flags, including myself
but not limited to.

Best regards,
Andrew Savchenko

Attachment: pgplC2PtOBYLx.pgp
Description: PGP signature

Reply via email to